编译安装Nginx

如果要安装Nginx,可以使用yum或者rpm来安装,但需要配置epel源才能安装。本文主要演示Nginx的编译安装过程。


系统环境:

主机:192.168.10.7 (CentOS 7)


一、安装Nginx所依赖到的程序包所对应的开发包


这里的开发包指的是以"devel"结尾的程序包,为了让Nginx支持URI重写、SSL、zlib压缩功能,则需要分别需要安装pcre-devel、openssl-devel、zlib-devel。

[root@web ~]# yum -y install pcre-devel openssl-devel zlib-devel


注意:pcre的全称为perl compatible regular expressions,意为“perl兼容正则表达式”。这里选择安装pcre-devel是为了使Nginx能够支持URI重写功能的rewrite模块,而URI重写是非常常用的功能。pcre的官网为http://www.pcre.org/。


二、编译安装Nginx


Nginx的官网为http://nginx.org/,本文以编译安装nginx-1.10.3为例。

[root@web ~]# tar xf nginx-1.10.3.tar.gz
[root@web nginx-1.10.3]# cd nginx-1.10.3
[root@web nginx-1.10.3]# ./configure --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf 
--user=nginx --group=nginx --error-log-path=/var/log/nginx/error.log --http-log-path=/var
/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock 
--with-http_ssl_module --with-http_gzip_static_module --with-debug --with-http_stub_status_module
[root@web nginx-1.10.3]# make -j 4 && make install
[root@web nginx-1.10.3]# ll /usr/local/nginx/
total 0
drwxr-xr-x. 2 root root 40 Jul 17 10:52 html
drwxr-xr-x. 2 root root 19 Jul 17 10:52 sbin


导出nginx程序文件路径。

[root@web ~]# vim /etc/profile.d/nginx.sh
export PATH=/usr/local/nginx/sbin:$PATH    # 修改PATH环境变量
[root@web ~]# . /etc/profile.d/nginx.sh
[root@web ~]# echo $PATH            # 查看修改后的PATH变量
/usr/local/nginx/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin


下面是本次编译使用的参数说明(可用./configure --help查看)。

--prefix=PATH                    set installation prefix        # 设置安装目录路径
--conf-path=PATH                 set nginx.conf pathname        # 设置配置文件路径名
--user=USER                      set non-privileged user for    # nginx进程的用户权限
--group=GROUP                    set non-privileged group for   # nginx进程的用户组权限
--error-log-path=PATH            set error log pathname         # 设置错误日志路径名
--http-log-path=PATH             set http access log pathname   # 设置访问日志路径名
--pid-path=PATH                  set nginx.pid pathname         # 设置nginx进程的pid文件路径名
--lock-path=PATH                 set nginx.lock pathname        # 设置nginx进程的锁文件路径名
--with-http_ssl_module           enable ngx_http_ssl_module     # 启用ssl功能
--with-http_gzip_static_module   enable ngx_http_gzip_static_module
                                                                # 启用gzip压缩功能
--with-http_stub_status_module   enable ngx_http_stub_status_module
                                                                # 启用状态信息输出功能
--with-debug                     enable debug logging           # 启用日志排错功能

如果要查看当前使用的Nginx程序在编译时使用的参数,可使用-V选项。

[root@web ~]# nginx -V
nginx version: nginx/1.10.3
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf 
--user=nginx --group=nginx --error-log-path=/var/log/nginx/error.log --http-log-path=/var
/log/nginx/access.log --pid-path=/var/run/nginx/nginx.pid --lock-path=/var/lock/nginx.lock 
--with-http_ssl_module --with-http_gzip_static_module --with-debug --with-http_stub_status_module


三、启动服务并测试


安装完Nginx之后还无法提供web服务,需要启动Nginx才行,具体操作如下。


(1)启动前需要检查nginx配置文件的语法。

[root@web ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful


注意:启动前检查配置文件的语法错误很重要,可以防止因为配置错误而导致网站重启或重载配置文件等对用户的影响。


(2)启动服务。

[root@web ~]# nginx


(3)查看nginx服务对应的端口是否启动。

[root@web ~]# ss -tnl | egrep "^State|80"
State      Recv-Q Send-Q          Local Address:Port            Peer Address:Port
LISTEN     0      128                         *:80                         *:*
[root@web ~]# lsof -i :80
COMMAND   PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
nginx   16078  root    6u  IPv4 268024      0t0  TCP *:http (LISTEN)
nginx   16079 nginx    6u  IPv4 268024      0t0  TCP *:http (LISTEN)


(4)浏览Nginx提供的web页面。

在Windows下打开浏览器,输入http://192.168.10.7(192.168.10.7为刚才安装Nginx服务的IP地址)。回车后可看到如下内容。

wKioL1lsMD3ABz74AAAnxldzT6Y524.png

说明Nginx服务搭建成功了。


注意:在本次测试中selinux和iptables是关闭的。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章