依赖
如果都已经安装过,忽略。
安装编译器,用于编译nginx
[nginx@service tools]$ yum -y install gcc gcc-c++
安装pcre,让nginx支持正则表达式(在nginx.conf配置中会用到)
[nginx@service tools]$ yum -y install pcre pcre-devel
安装zlib依赖库,让nginx支持gzib压缩
[nginx@service tools]$ yum -y install zlib zlib-devel
安装openssl,让nginx支持SSL协议以及加密功能等
[nginx@service tools]$ yum -y install openssl openssl-devel
下载
下载地址:http://nginx.org/en/download.html
解压
下载下来是个源码压缩包,需要解压。
[nginx@service tools]$ tar -xvf nginx-1.16.1.tar.gz
配置
进入解压目录,执行"configure"进行配置。
“--prefix”用于设置安装位置(更多配置参数:http://nginx.org/en/docs/configure.html)
[nginx@service nginx-1.16.1]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
编译、安装
[nginx@service nginx-1.16.1]# make && make install
目录结构
安装完成后,目录结构如下。
其中有两个重要目录,一个是conf,配置文件存放目录,常用文件是nginx.conf,虚拟主机就在该配置文件中配置;另一个是sbin目录,启动命令就在该目录下,即nginx。
[nginx@service local]$ tree -L 2 nginx/
nginx/
├── client_body_temp
├── conf
│ ├── fastcgi.conf
│ ├── fastcgi.conf.default
│ ├── fastcgi_params
│ ├── fastcgi_params.default
│ ├── koi-utf
│ ├── koi-win
│ ├── mime.types
│ ├── mime.types.default
│ ├── nginx.conf
│ ├── nginx.conf.default
│ ├── scgi_params
│ ├── scgi_params.default
│ ├── uwsgi_params
│ ├── uwsgi_params.default
│ └── win-utf
├── fastcgi_temp
├── html
│ ├── 50x.html
│ └── index.html
├── logs
│ ├── access.log
│ ├── error.log
│ └── nginx.pid
├── proxy_temp
├── sbin
│ └── nginx
├── scgi_temp
└── uwsgi_temp
常用操作
启动
进入安装后的目录,执行如下命令启动nginx。
-c,指定要加载的配置文件(不指定,默认配置文件是conf/nginx.conf)
[nginx@service nginx]$ ./sbin/nginx -c ./conf/nginx.conf
验证配置
验证nginx.conf配置是否正确,不带-c参数验证默认配置文件(conf/nginx.conf)。
[nginx@service nginx]$ ./sbin/nginx -t -c ./conf/nginx.conf
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
重新加载配置
nginx.conf有修改,无需关闭再重启,重新加载即可。
[nginx@service nginx]$ ./sbin/nginx -s reload
停止服务
[nginx@service nginx]$ ./sbin/nginx -s stop
平滑重启
命令:kill -HUP <nginx进程ID>
通过kill的HUP参数让nginx服务挂起,重新加载配置,然后复位,从而达到无需关闭即可重启nginx的目的。
这种方式nginx的master进程不会被关闭,worker进程会重新生成。下面的演示中,nginx的master进程ID是2024,worker进程ID是2025,“kill -HUP 2024”之后,master进程还是master那个进程,而worker进程则变成了进程ID为26993的进程。
[nginx@service nginx]$ ps -ef | grep nginx
nginx 2024 1 0 18:48 ? 00:00:00 nginx: master process ./sbin/nginx -c ./conf/nginx.conf
nginx 2025 2024 0 18:48 ? 00:00:00 nginx: worker process
[nginx@service nginx]$ kill -HUP 2024
[nginx@service nginx]$ ps -ef | grep nginx
nginx 2024 1 0 18:49 ? 00:00:00 nginx: master process ./sbin/nginx -c ./conf/nginx.conf
nginx 26993 2024 0 18:49 ? 00:00:00 nginx: worker process
强制关闭
直接杀掉进程,命令:kill -9 <nginx进程ID>
[nginx@service nginx]$ ps -ef | grep nginx
nginx 2024 1 0 18:48 ? 00:00:00 nginx: master process ./sbin/nginx -c ./conf/nginx.conf
nginx 2025 2024 0 18:48 ? 00:00:00 nginx: worker process
[nginx@service nginx]$ kill -9 2024