Nginx安装
[root@localhost src]# tar xf nginx-1.14.2.tar.gz [root@localhost src]# ls nginx-1.14.2 nginx-1.14.2.tar.gz [root@localhost nginx-1.14.2]# yum -y install gcc gcc-c++ autoconf automake make #-----------./configure --help查看编译安装时nginx支持的参数 [root@localhost src]# cd nginx-1.14.2 [root@localhost nginx-1.14.2]# ls auto CHANGES.ru configure html man src CHANGES conf contrib LICENSE README [root@localhost nginx-1.14.2]# ./configure --help [root@localhost nginx-1.14.2]# ./configure --prefix=/apps/nginx \ > --user=nginx \ > --group=nginx \ > --with-http_ssl_module \ > --with-http_v2_module \ > --with-http_realip_module \ > --with-http_stub_status_module \ > --with-http_gzip_static_module \ > --with-pcre \ > --with-stream \ > --with-stream_ssl_module \ > --with-stream_realip_modul (./configure --prefix=/apps/nginx --user=nginx--group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module) /* #-------------在安装过程中可能会出现一些错误例如: ./configure: error: SSL modules require the OpenSSL library. You can either do not enable the modules, or install the OpenSSL library into the system, or build the OpenSSL library statically from the source with nginx by using --with-openssl=<path> option ./configure: error: the HTTP rewrite module requires the PCRE library. You can either disable the module by using --without-http_rewrite_module option, or install the PCRE library into the system, or build the PCRE library statically from the source with nginx by using --with-pcre=<path> option. 此时不要着急需要执行如下命令,然后在对configure目录进行编译 */ [root@localhost nginx-1.14.2]# yum -y install pcre-devel [root@localhost nginx-1.14.2]# yum -y install openssl openssl-devel [root@localhost nginx-1.14.2]# make [root@localhost nginx-1.14.2]# make install #创建nginx用户以及nginx用户组并且nginx用户和nginx用户组需要具有/apps/nginx/的权限 [root@localhost apps]# useradd nginx -s /sbin/nologin -u 2000 /* 建议搭建环境时,特别是搭建nginx集群的时候建议所有机器的nginx用户以及nginx用户组的id都是相同且权限相同,以避免因用户权限而导致有些文件不能读取;例如上传文件时,当经过某一台nginx的服务器时,其所属权限为当前nginx的权限;如果其他服务器上的nginx与当前服务器的nginx用户权限不同就会导致如不能查看该文件,或者执行,读或者写的权限,造成应用出现一些非必现的bug */ [root@localhost apps]# chown nginx.nginx -R /apps/nginx/ #创建nginx自启动脚本 [root@localhost system]# vim nginx.service [Unit] Description=nginx - high performance web server Documentation=http://nginx.org/en/docs/ After=network-online.target remote-fs.target nss-lookup.target Wants=network-online.target [Service] Type=forking PIDFile=/apps/nginx/logs/nginx.pid ExecStart=/apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf ExecReload=/bin/kill -s HUP $MAINPID ExecStop=/bin/kill -s TERM $MAINPID [Install] WantedBy=multi-user.target #验证nginx自启动 [root@localhost ~]# systemctl start nginx [root@localhost ~]# ss -tnl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 100 127.0.0.1:25 *:* LISTEN 0 128 *:80 *:* LISTEN 0 128 *:22 *:* LISTEN 0 100 [::1]:25 [::]:* LISTEN 0 128 [::]:22 [::]:* [root@localhost ~]# systemctl stop nginx [root@localhost ~]# ss -tnl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 100 127.0.0.1:25 *:* LISTEN 0 128 *:22 *:* LISTEN 0 100 [::1]:25 [::]:* LISTEN 0 128 [::]:22 [::]:* [root@localhost ~]# ps -ef|grep nginx root 1108 1 0 00:13 ? 00:00:00 nginx: master process /apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf nobody 1117 1108 0 00:14 ? 00:00:00 nginx: worker process root 1120 1052 0 00:15 pts/0 00:00:00 grep --color=auto nginx [root@localhost ~]# systemctl reload nginx [root@localhost ~]# ps -ef|grep nginx root 1108 1 0 00:13 ? 00:00:00 nginx: master process /apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf nobody 1128 1108 0 00:15 ? 00:00:00 nginx: worker process root 1132 1052 0 00:15 pts/0 00:00:00 grep --color=auto nginx ###对比发现worker进程的启动时间发生变化 #将nginx命令软连接到sbin目录下 [root@localhost ~]# ln -sv /apps/nginx/sbin/nginx /usr/sbin/ ?.usr/sbin/nginx?.-> ?.apps/nginx/sbin/nginx? [root@localhost ~]# nginx -s stop [root@localhost ~]# nginx [root@localhost ~]# ps -ef|grep nginx root 1139 1 0 00:19 ? 00:00:00 nginx: master process nginx nobody 1140 1139 0 00:19 ? 00:00:00 nginx: worker process root 1142 1052 0 00:20 pts/0 00:00:00 grep --color=auto nginx
Nginx安装参数详解
#-----------查看nginx的版本 [root@localhost nginx-1.14.2]# /apps/nginx/sbin/nginx -v nginx version: nginx/1.14.2 #-----------查看nginx的版本以及nginx编译安装时所添加的参数 [root@localhost nginx-1.14.2]# /apps/nginx/sbin/nginx -V nginx version: nginx/1.14.2 built by gcc 4.8.5 20150623 (Red Hat 4.8.5-39) (GCC) built with OpenSSL 1.0.2k-fips 26 Jan 2017 TLS SNI support enabled configure arguments: --prefix=/apps/nginx --user=nginx --group=nginx --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_stub_status_module --with-http_gzip_static_module --with-pcre --with-stream --with-stream_ssl_module --with-stream_realip_module #-----------------nginx -t查看当前nginx配置是否正确,在每次修改nginx之后建议都要进行nginx -t以保证在热启动nginx之前,nginx的配置是正确的 [root@localhost ~]# /apps/nginx/sbin/nginx -t nginx: the configuration file /apps/nginx/conf/nginx.conf syntax is ok nginx: configuration file /apps/nginx/conf/nginx.conf test is successful #-----------------(将nginx的配置修改错误使用nginx -t显示如下)直接告诉我们错误发生在地18行 [root@localhost ~]# vi /apps/nginx/conf/nginx.conf [root@localhost ~]# /apps/nginx/sbin/nginx -t nginx: [emerg] directive "http" has no opening "{" in /apps/nginx/conf/nginx.conf:18 nginx: configuration file /apps/nginx/conf/nginx.conf test failed #----------------nginx的停止 [root@localhost ~]# ps -ef|grep nginx root 8442 1 0 22:49 ? 00:00:00 nginx: master process nginx nginx 8443 8442 0 22:49 ? 00:00:00 nginx: worker process root 8445 8411 0 22:49 pts/0 00:00:00 grep --color=auto nginx [root@localhost ~]# nginx -s stop [root@localhost ~]# ps -ef|grep nginx root 8448 8411 0 22:49 pts/0 00:00:00 grep --color=auto nginx #----------------nginx的热启动(只会重启woker进程) [root@localhost ~]# nginx -s reload [root@localhost ~]# ps -ef |grep nginx root 1162 1 0 00:00 ? 00:00:00 nginx: master process /apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf nginx 1221 1162 0 00:18 ? 00:00:00 nginx: worker process root 1223 1044 0 00:18 pts/0 00:00:00 grep --color=auto nginx [root@localhost ~]# nginx -s reload [root@localhost ~]# ps -ef |grep nginx root 1162 1 0 00:00 ? 00:00:00 nginx: master process /apps/nginx/sbin/nginx -c /apps/nginx/conf/nginx.conf nginx 1225 1162 0 00:19 ? 00:00:00 nginx: worker process root 1227 1044 0 00:19 pts/0 00:00:00 grep --color=auto nginx