nginx已安装,ssl模块未安装的解决方法:
如果需要再linux中安装nginx请参照:LINUX系统下安装nginx
一:开始Nginx的SSL模块
Nginx如果未开启SSL模块,配置Https时提示如下错误:
<span style="color:#000000"><code class="language-js">nginx<span style="color:#999999">:</span> <span style="color:#999999">[</span>emerg<span style="color:#999999">]</span> the <span style="color:#669900">"ssl"</span> parameter requires ngx_http_ssl_module <span style="color:#0077aa">in</span> <span style="color:#a67f59">/</span>usr<span style="color:#a67f59">/</span>local<span style="color:#a67f59">/</span>nginx<span style="color:#a67f59">/</span>conf<span style="color:#a67f59">/</span>nginx<span style="color:#999999">.</span>conf</code></span>
解释:nginx缺少http_ssl_module模块,需要在已安装的nginx中添加ssl模块。
说明:我的nginx安装目录为:/usr/local/nginx , 源码包在/usr/src/nginx-1.5.9目录
Nginx开启SSL模块:
<span style="color:#000000"><code class="language-js">切换到源码包:
cd <span style="color:#a67f59">/</span>usr<span style="color:#a67f59">/</span>src<span style="color:#a67f59">/</span>nginx<span style="color:#990055">-1.5</span><span style="color:#999999">.</span><span style="color:#990055">9</span>
查看nginx原有的模块
<span style="color:#a67f59">/</span>usr<span style="color:#a67f59">/</span>local<span style="color:#a67f59">/</span>nginx<span style="color:#a67f59">/</span>sbin<span style="color:#a67f59">/</span>nginx <span style="color:#a67f59">-</span>V
在configure arguments<span style="color:#999999">:</span>后面显示的原有的configure参数如下:
<span style="color:#a67f59">--</span>prefix<span style="color:#a67f59">=</span><span style="color:#a67f59">/</span>usr<span style="color:#a67f59">/</span>local<span style="color:#a67f59">/</span>nginx <span style="color:#a67f59">--</span><span style="color:#0077aa">with</span><span style="color:#a67f59">-</span>http_stub_status_module</code></span>
二:从新配置SSL模块:
<span style="color:#000000"><code class="language-js">进入nginx源码包目录,运行:
<span style="color:#999999">.</span><span style="color:#a67f59">/</span>configure <span style="color:#a67f59">--</span>prefix<span style="color:#a67f59">=</span><span style="color:#a67f59">/</span>usr<span style="color:#a67f59">/</span>local<span style="color:#a67f59">/</span>nginx <span style="color:#a67f59">--</span><span style="color:#0077aa">with</span><span style="color:#a67f59">-</span>http_stub_status_module <span style="color:#a67f59">--</span><span style="color:#0077aa">with</span><span style="color:#a67f59">-</span>http_ssl_module</code></span>
配置完成后,运行命令make命令:
<span style="color:#000000"><code class="language-js">make</code></span>
注意:此处不能进行make install,否则就是覆盖安装
三:替换已安装好的nginx包
替换之前先备份:
<span style="color:#000000"><code class="language-js">cp <span style="color:#a67f59">/</span>usr<span style="color:#a67f59">/</span>local<span style="color:#a67f59">/</span>nginx<span style="color:#a67f59">/</span>sbin<span style="color:#a67f59">/</span>nginx <span style="color:#a67f59">/</span>usr<span style="color:#a67f59">/</span>local<span style="color:#a67f59">/</span>nginx<span style="color:#a67f59">/</span>sbin<span style="color:#a67f59">/</span>nginx<span style="color:#999999">.</span>bak</code></span>
先停止nginx服务:
<span style="color:#000000"><code class="language-js"><span style="color:#708090">//查询nginx主进程号</span>
$ ps <span style="color:#a67f59">-</span>ef <span style="color:#a67f59">|</span> grep nginx
<span style="color:#708090">//从容停止Nginx:</span>
$kill <span style="color:#a67f59">-</span>QUIT 主进程号
<span style="color:#708090">//快速停止Nginx:</span>
kill <span style="color:#a67f59">-</span>TERM 主进程号
<span style="color:#708090">//强制停止Nginx:</span>
pkill <span style="color:#a67f59">-</span><span style="color:#990055">9</span> nginx</code></span>
将刚刚编译好的nginx覆盖掉原有的nginx
<span style="color:#000000"><code class="language-js">cp <span style="color:#999999">.</span><span style="color:#a67f59">/</span>objs<span style="color:#a67f59">/</span>nginx <span style="color:#a67f59">/</span>usr<span style="color:#a67f59">/</span>local<span style="color:#a67f59">/</span>nginx<span style="color:#ee9900">/sbin/</span></code></span>
然后启动nginx,仍可以通过命令查看是否已经加入成功
<span style="color:#000000"><code class="language-js"><span style="color:#a67f59">/</span>usr<span style="color:#a67f59">/</span>local<span style="color:#a67f59">/</span>nginx<span style="color:#a67f59">/</span>sbin<span style="color:#a67f59">/</span>nginx <span style="color:#a67f59">-</span>V
此时应该显示为即配置成功:
configure arguments<span style="color:#999999">:</span> <span style="color:#a67f59">--</span>prefix<span style="color:#a67f59">=</span><span style="color:#a67f59">/</span>usr<span style="color:#a67f59">/</span>local<span style="color:#a67f59">/</span>nginx <span style="color:#a67f59">--</span><span style="color:#0077aa">with</span><span style="color:#a67f59">-</span>http_stub_status_module <span style="color:#a67f59">--</span><span style="color:#0077aa">with</span><span style="color:#a67f59">-</span>http_ssl_module</code></span>