事情的来源是,公司要将网站从HTTP升级到HTTPS,由于历史遗留原因,才发现现有的Nginx是通过源码安装的,并没有安装SSL模块,需要现安装SSL模块,这个Nginx是整个公司最前端的一个代理,涉及到很多部门,因为之前没有操作过,还是小心点为妙,下面是在虚拟机上演示的。
1,先安装后面所需的一些包
yum install gcc-c++
yum install pcre pcre-devel
yum install zlib zlib-devel
yum install openssl openssl--devel
2,下载nginx源码
wget -c https://nginx.org/download/nginx-1.11.4.tar.gz
3,解压,编译,安装
tar -zxvf nginx-1.11.4.tar.gz
cd nginx-1.11.4
./configure
make
make install
4,安装成功后,就可以在浏览器中访问了,默认安装在/usr/local/nginx 下面
5,由于用的是默认安装,我们通过命令查看nginx包含的模块,并没有ssl模块
/usr/local/nginx/sbin/nginx -V
6,下面就是怎么在这种情况发生之后,怎么后续安装一些模块,比如ssl模块
7,进入源码包,重新执行 之前的模块,注意一定不要执行 make install,否则就覆盖了
cd nginx-1.11.4
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
make
8,安装模块,编译之后,先备份之前的nginx ,以备不时之需,然后替换编译好的nginx
cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/bak/nginx
cp ./objs/nginx /usr/local/nginx/sbin/
9,现在再查看Nginx已经安装的模块
成功,Over,如果是通过rpm包安装的,好像默认是包含这些模块的,如果通过源码安装,而且忘了安装一些模块的话,就只能后续安装这些模块了,如果你有更好的方式,希望批评指正。
Ngxin做http强制跳转https后接口的POST请求变成GET https://www.linuxidc.com/Linux/2018-03/151547.htm
Linux 下 Nginx 安装部署 Let's Encrypt 证书实现 HTTPS https://www.linuxidc.com/Linux/2018-08/153410.htm
Linux下源码安装Nginx(Ubuntu和CentOS通用) https://www.linuxidc.com/Linux/2018-07/153296.htm
Nginx实现端口转发 https://www.linuxidc.com/Linux/2018-07/153122.htm
使用Nginx+Docker配置HTTPS负载均衡 https://www.linuxidc.com/Linux/2018-06/152855.htm
CentOS 7.2下Nginx+PHP+MySQL+Memcache缓存服务器安装配置 https://www.linuxidc.com/Linux/2017-03/142168.htm
Nginx 的详细介绍:请点这里
Nginx 的下载地址:请点这里
Linux公社的RSS地址:https://www.linuxidc.com/rssFeed.aspx