说明:
因为后续的相关的Python web需要依赖于nginx做相关的反向代理和负载均衡,所以我们的这里需要学习如何安装和配置以及如何动态新增模块的安装。
PS:安装模块的时候会覆盖会覆盖原来的编译的文件,所以再重新安装新增的模块的时候,记得要先把已有的模块 也一起安装上
--with-http_secure_link_module
configure arguments: --prefix=/usr/local/nginx --add-module=/data/bak/nginx-accesskey --with-http_secure_link_module
第1步:nginx相关依赖的安装
#yum install -y pcre-devel
#yum install -y opensslopenssl-devel
#yum install gcc gcc-c++ncurses-devel perl
#yum -y install zlib zlib-devel
#yum -y install nano
#yum install wget
或者:
yum install -y perl-ExtUtils-Embed readline-devel zlib-devel pam-devel libxml2-devel libxslt-devel openldap-devel python-devel gcc-c++ openssl-devel cmakepcre-develnanowget gcc gcc-c++ ncurses-devel perl
第2步:新建用于存放下载文件的地方
# mkdik -p /data/bak/
# cd /data/bak/
第3步:下载nginx
#wget http://nginx.org/download/nginx-1.10.3.tar.gz
第3步:解压并安装
#tar -zxvf nginx-1.10.3.tar.gz
#cd nginx-1.10.3
#./configure&& make && make install
PS:在执行./configure&& make && make install的时候可能会出现的问题有:
(1)make这一步的时候只出现了一行“make[1]: Leaving directory`/usr/local/nginx-1.xx.xxx;”提示,不用管它,继续走make install ;
(2)./configure&& make && make install 可以分布进行命令执行
第4步:安装成功后,可以弄一个软连接指向 /usr/bin/nginx(非必须)
#ln -s /usr/local/nginx/sbin/nginx /usr/bin/nginx
第5步:启动nginx
#nginx
第6步:检查相关的进程是否有启动
查看进程启动情况 :
[root@localhost nginx-1.10.3]# ps -ef|grep nginx
root 5674 1 0 21:14 ? 00:00:00 nginx: master process nginx
nobody 5675 5674 0 21:14 ? 00:00:00 nginx: worker process
root 5683 2043 0 21:16 pts/0 00:00:00 grep --color=auto nginx
[root@localhost nginx-1.10.3]#
查看端口情况 (第一种方式):
[root@localhost nginx-1.10.3]# netstat -antup | grep nginx
tcp 0 0 0.0.0.0:19082 0.0.0.0:* LISTEN 5674/nginx: master
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 5674/nginx: master
tcp 0 0 0.0.0.0:8081 0.0.0.0:* LISTEN 5674/nginx: master
tcp 0 0 0.0.0.0:8089 0.0.0.0:* LISTEN 5674/nginx: master
[root@localhost nginx-1.10.3]#
查看端口情况 (第二种方式):
[root@localhost nginx-1.10.3]# lsof -i:80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 5674 root 6u IPv4 23504 0t0 TCP *:http (LISTEN)
nginx 5675 nobody 6u IPv4 23504 0t0 TCP *:http (LISTEN)
[root@localhost nginx-1.10.3]#
第7步:防火墙处理-线上环境不需要关闭
systemctl stop firewalld
PS:(非线上环境可关闭防火墙进行测试)
第8步:访问nginx默认的主页
查看返回:webcome to nginx 则表示成功!
一些注意事项:
在进行python web 项目端口使用绑定的时候 !需要留意查看nginx绑定出错!如果提示绑定出错的!!可能reload也不会提示!所以一般建议是去查看错误日志和请求日志!
如果启动的失败的话!!!!!!有可能导致整个的nginx就挂了!
新增模块的安装
因为一开始我们的安装的时候是直接的使用./configure的方式进行安装的,但是我们的在后期需要新增一些模块的时候是需要重新编译的,这里记录一下如何动态增加模块
第1步:查看nginx编译的时候安装了哪些模块
[root@localhost ~]# nginx -V
nginx version: nginx/1.10.3
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC)
configure arguments:
[root@localhost ~]#
image.png
PS:
nginx -V | tr ' ' '\n'|grep ssl
第2步:如何涉及到第三方模块安装,就下载对应的模块
第3步:加入需要安装的模块,重新编译
[root@localhost ~]# cd /data/bak/nginx-1.10.3
[root@localhost nginx-1.10.3]# ./configure --prefix=/usr/local/nginx --with-http_secure_link_module
image.png
第4步:再重新make,
注意:(PS不需要make install)
[root@localhost nginx-1.10.3]#make
第5步:再查看相关模块安装的情况
发现没有增加上去
[root@localhost nginx-1.10.3]# nginx -V
nginx version: nginx/1.10.3
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC)
configure arguments:
[root@localhost nginx-1.10.3]#
第6步:重新复制一份新编译的到对应的nginx目录下,替换nginx二进制文件:
# cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
# cp ./objs/nginx /usr/local/nginx/sbin/
[root@localhost nginx-1.10.3]# cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
[root@localhost nginx-1.10.3]# cp ./objs/nginx /usr/local/nginx/sbin/
cp: overwrite ‘/usr/local/nginx/sbin/nginx’? y
[root@localhost nginx-1.10.3]#
PS:
如果提示“cp:cannot create regular file `/usr/local/nginx/sbin/nginx': Text file busy”
建议使用如下语句cp
cp -rfp objs/nginx /usr/local/nginx/sbin/nginx
第7步:再次查看
[root@localhost nginx-1.10.3]# nginx -V
nginx version: nginx/1.10.3
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-16) (GCC)
configure arguments: --prefix=/usr/local/nginx --with-http_secure_link_module