资讯专栏INFORMATION COLUMN

Linux环境下安装nginx

IT那活儿 / 2417人阅读
Linux环境下安装nginx

点击上方“IT那活儿”公众号,关注后了解更多内容,不管IT什么活儿,干就完了!!!


Nginx简介

Nginx(发音同 engine x)是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。由俄罗斯的程序设计师Igor Sysoev所开发,供俄国大型的入口网站及搜索引擎Rambler(俄文:Рамблер)使用。
其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好.中国大陆使用nginx网站用户有:新浪、网易、 腾讯等。

支持的操作系统:

  • FreeBSD 3.x,4.x,5.x,6.x i386; FreeBSD 5.x,6.x amd64;
  • Linux 2.2,2.4,2.6 i386; Linux 2.6 amd64;
  • Solaris 8 i386; Solaris 9 i386 and sun4u; Solaris 10 i386;
  • MacOS X (10.4) PPC;
  • Windows XP,Windows Server 2003和Windows 7中。

Nginx在一些Linux发行版和BSD的各个变种版本的安装包仓库中都会有,通过各个系统自带的软件包管理方法即可安装。


nginx安装部署

在安装nginx之前,首要要先了解其中的模块依赖性,其中的模块需要第三方库的支持,主要如下:

  • gzip模块需要 zlib 库;
  • rewrite模块需要 pcre 库;
  • ssl 功能需要openssl库。
其中针对于我们,在已有的环境下面只需要安装prce库就可以(如有需要也要安装其他两个库,具体安装步骤会在附录里面介绍),具体的安装方法如下:

第一步:安装pcre库

1)获取pcre编译安装包,在ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/上可以获取当前最新的版本。
2)通过上传工具,上传到指定目录解压缩pcre-xx.tar.gz包,要给权限,解压命令tar -zxvf pcre-8.21.tar.gz(tar –zxvf  压缩包名称),解压的时候要注意文件后缀,解压的路径可以根据自己需要去指定,如tar -zxvf pcre-8.21.tar.gz –c usr/local/。
最常用的包如(需要安装包的读者请留言获取):

3)cd命令进入解压缩目录,执行./configure。安装nginx。
4)安装完成后make。
5)make执行完以后执行make install。
具体这几项指令是做什么的呢,会在附录之中说明。
安装成功后,就开始第二步。

第二步:安装nginx

1)获取nginx,在http://nginx.org/download/上可以获取当前最新的版本。

2)通过工具上传,然后进行解压:tar –zxvf 压缩包名称。

3)进入解压缩目录,执行./configure。

4)make编译。

5)编译成功后执行make install。

最常用的包(需要安装包的读者请留言获取):

上述操作执行结束后,安装基本完成,下面需要进行一些简单的配置,配置的文件主要为nginx.conf,切换到文件目录下面,然后打开。
nginx.conf是主配置文件,默认配置去掉注释之后的内容如下图所示:
  • worker_process表示工作进程的数量,一般设置为cpu的核数。
  • worker_connections表示每个工作进程的最大连接数。
  • server{}块定义了虚拟主机。
  • listener监听端口。
  • server_name监听域名。
  • location{}是用来为匹配的 URI 进行配置,URI 即语法中的“/uri/”。location  / { }匹配任何查询,因为所有请求都以 / 开头。
  • root指定对应uri的资源查找路径,这里html为相对路径,完整路径为/opt/ opt/nginx-1.7.7/html/..
  • index指定首页index文件的名称,可以配置多个,以空格分开。如有多个,按配置顺序查找。
具体的标准如下所示:
#user nobody;
worker_processes  1;


events {
    worker_connections  1024;
}


http {
    upstream etrading{
      server 10.10.4.1:7001;
    }
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
 
    keepalive_timeout  65;

    server {
        listen       80;
        server_name  localhost;

        location /etrading {
    proxy_redirect off;
    proxy_redirect http:// $scheme://;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    # proxy_set_header WL-PROXY-SSL true;
    #add_header WL-Proxy-SSL true;
    proxy_pass  http://etrading;
            root   html;
            index  index.html index.htm;
        }
  location  ~ ^/etrading/(.*.do)$ {
                proxy_pass      http://etrading;
                                proxy_set_header  X-Real-IP $remote_addr;
        }
  location ~ .*.(php|php5)$ {
            root           wordpress;
            fastcgi_pass   unix:/tmp/php-cgi.sock;
            fastcgi_index  index.php;
            #fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
            include        fastcgi_params;
        }
  location / {
  proxy_pass http://etrading;
  proxy_redirect off;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  index index.jsp index.html index.htm;
  }

       
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

   
    }

}
详细的配置可以参考一下。
配置结束以后进行第三步。

第三步:开启nginx,进行测试

开启nginx的方式很简单,只需要切换到make后的地址如/usr/local/nginx,然后执行./nginx就可以开启nginx,然后进入到Internet下面进行测试,测试网页链接问题,登录问题。


可能遇到的问题

问题描述1启动nginx时报错,如下:
./nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory
问题原因:没有安装PCRE库,或安装了PCRE库而没有配置PCRE共享库。
解决方案:配置PCRE共享库:
1)查找pcre库的位置
[root@server06 ~]# cd /lib
[root@server06 lib]# find / -type f -name *libpcre.so.*
/lib64/libpcre.so.0.0.1
/usr/local/lib/libpcre.so.1.2.4
/opt/nginx/pcre-8.36/.libs/libpcre.so.1.2.4
2)将PCRE库进行软连接
RedHat 64位机器读取的pcre文件为/lib64/libpcre.so.0.0.1文件。
[root@server06 ~]# ln -s /usr/local/lib/libpcre.so.1 /lib64/
[root@server06 ~]# cd /usr/local/nginx/sbin/
[root@server06 sbin]# ./nginx
如32位机器操作方式类型,可能软连接的地址为:ln -s /lib/libpcre.so.0.0.1 /lib/libpcre.so.1
问题描述2:成功启动nginx,连接页面后,无法进入登录或者其他界面,查看日志,显示get……”_”.
问题原因:nginx.conf配置出现错误。

解决方案:重新进行配置,查看ip等,如果不行可用正确的文档直接覆盖。


部分nginx相关指令

开启:切换至目录下执行 ./nginx

关闭:查看进程,ps –ef|grep nginx

  • nginx -h #帮助  
  • nginx -v #显示版本  
  • nginx -V #显示版本和配置信息  
  • nginx -t #测试配置  
  • nginx -q #测试配置时,只输出错误信息  
  • nginx -s stop #停止服务器  
  • nginx -s reload #重新加载配置


附 录

5.1 zlib库,openssl库的安装方法

1)安装zlib库
cd /usr/local/ 
wget http://zlib.net/zlib-1.2.8.tar.gz
tar -zxvf zlib-1.2.8.tar.gz cd zlib-1.2.8
./configure
make
make install
2)安装ssl
cd /usr/local/
wget http://www.openssl.org/source/openssl-1.0.1c.tar.gz
tar -zxvf openssl-1.0.1c.tar.gz
./config
make
make install

5.2 部分指令操作描述

1)configure,这一步一般用来生成 Makefile,为下一步的编译做准备,你可以通过在 configure 后加上参数来对安装进行控制,比如代码:./configure –prefix=/usr 意思是将该软件安装在 /usr 下面,执行文件就会安装在 /usr/bin (而不是默认的 /usr/local/bin),资源文件就会安装在 /usr/share(而不是默认的/usr/local/share)。同时一些软件的配置文件你可以通过指定 –sys-config= 参数进行设定。有一些软件还可以加上 –with、–enable、–without、–disable 等等参数对编译加以控制,你可以通过允许 ./configure –help 察看详细的说明帮助。
2)make,这一步就是编译,大多数的源代码包都经过这一步进行编译(当然有些perl或python编写的软件需要调用perl或python来进行编译)。如果 在 make 过程中出现 error ,你就要记下错误代码(注意不仅仅是最后一行),然后你可以向开发者提交 bugreport(一般在 INSTALL 里有提交地址),或者你的系统少了一些依赖库等,这些需要自己仔细研究错误代码。
3)make insatll,这条命令来进行安装(当然有些软件需要先运行 make check 或 make test 来进行一些测试),这一步一般需要你有 root 权限(因为要向系统写入文件)。
Linux的用户可能知道,在Linux下安装一个应用程序时,一般先运行脚本configure,然后用make来编译源程序,在运行make install,最后运行make clean删除一些临时文件。
使用上述三个自动工具,就可以生成configure脚本。运行configure脚本,就可以生成Makefile文件,然后就可以运行make、make install和make clean。
configure是一个shell脚本,它可以自动设定源程序以符合各种不同平台上Unix系统的特性,并且根据系统叁数及环境产生合适的Makefile文件或是C的头文件(header file),让源程序可以很方便地在这些不同的平台上被编译连接。
这时,就可运行configure脚本了,运行configure脚本,就可产生出符合GNU规范的Makefile文件了:$ ./configure.
 


本文作者:夏 立(上海新炬王翦团队)

本文来源:“IT那活儿”公众号

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/129176.html

相关文章

  • 虚拟机Linux Centos7搭建web环境(LNMP)

    摘要:本文内容是,如何在下快速搭建环境。虚拟机实体机环境都可以。按照提示,输入。 本文内容是,如何在Linux centos7下快速搭建LNMP环境。虚拟机、实体机环境都可以。另外,安装教程参考的是,下面这篇文章进行文字排版和内容扩充,感谢hcchanqing作者。CentOS6.2 yum安装配置LNMP服务器(Nginx+PHP+MySQL) 特别提醒:本文系统用的Centos7,是7!...

    Enlightenment 评论0 收藏0
  • 虚拟机Linux Centos7搭建web环境(LNMP)

    摘要:本文内容是,如何在下快速搭建环境。虚拟机实体机环境都可以。按照提示,输入。 本文内容是,如何在Linux centos7下快速搭建LNMP环境。虚拟机、实体机环境都可以。另外,安装教程参考的是,下面这篇文章进行文字排版和内容扩充,感谢hcchanqing作者。CentOS6.2 yum安装配置LNMP服务器(Nginx+PHP+MySQL) 特别提醒:本文系统用的Centos7,是7!...

    Cristic 评论0 收藏0
  • Linux环境安装Nginx

    摘要:本次介绍使用源码编译安装,安装前需要安装编译环境,可使用以下命令安装下载地址安装需要个依赖包模块需要模块需要需要安装的作用是让支持功能。启动浏览器访问,看到下图则说明安装并启动成功。 Nginx 是一个高性能的HTTP和反向代理服务器,官方地址为http://nginx.org/,这里不多做介绍。本次介绍使用源码编译安装,安装Nginx前需要安装C++编译环境,可使用以下命令安装: C...

    王笑朝 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<