1.首先,找到Nginx安装包的位置。比如,我的是:/usr/local/src/nginx-1.15.1
cd /usr/local/src/nginx-1.15.1
如果忘记安装包放哪里了,可以find命令找一下。
如果还是找不到(比如删除了)。可以查看当前Nginx的版本号,重新下载一个。
【查看Nginx版本命令】/usr/local/nginx/sbin/nginx -V (/usr/local/nginx/是你Nginx服务器的实际位置)
2.生成新的Nginx配置。执行
/usr/local/nginx/sbin/nginx -V
查看configure arguments:后边有没有值,如果有,就复制下来。
然后执行
./configure --原来有的模块(如果有的话) --with-http_ssl_module
make
3.关闭现在运行的Nginx服务器。
/usr/local/nginx/sbin/nginx -s stop
由于我的配置文件报错,缺少
nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf:121
所以无法关闭。于是,我尝试把新的正确的nginx.conf替换出问题的nginx.conf。
再次执行关闭,成功。
4.OK,执行最后的步骤。把编译好的nginx覆盖掉原有的nginx。
cp ./objs/nginx /usr/local/nginx/sbin/
系统会提示是否覆盖,输入y。
我运行时,系统提示Text file busy,执行失败。
没关系!
ps -A
找到所有Nginx的进程。
Kill 1234
再次执行
cp ./objs/nginx /usr/local/nginx/sbin/
没有报错。把正确的nginx.conf文件夹上传。
启动nginx。
./nginx -c /usr/local/nginx/conf/nginx.conf
运行成功!!
P.S:我这里,由于页面中引入了部分http资源导致提示,全部引入https资源即可显示绿色小锁。
参考资料:https://www.cnblogs.com/ghjbk/p/6744131.html
(本文比参考资料更详细,记录了我实际碰上的问题。希望对你有帮助)