Linux系統下ngnix使用HTTPS協議啟動報錯:
nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.c
報錯原因:
<code>未安裝SSL模塊--ngx_http_ssl_module/<code>
解決方法:
1.先查看nginx原有的模塊: /usr/local/nginx/sbin/nginx -V (或./nginx -V)在configure arguments:後面顯示的參數如下:--prefix=/usr/local/nginx --with-http_stub_status_module ,則代表未安裝SSL模塊
2.那麼安裝好的參數應該是這樣:
3.接下來輸入命令:
<code>yum -y install openssl openssl-devel (非必須)/<code>
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module 運行命令即可,
4.等配置完成後,運行命令: make 這裡不要進行make install,否則就是覆蓋安裝
5.然後備份原有已安裝好的nginx:
<code>cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak/<code>
6.然後將剛剛編譯好的nginx覆蓋掉原有的nginx(這個時候nginx要停止狀態): cp ./objs/nginx /usr/local/nginx/sbin/ 然後啟動nginx,仍可以通過命令查看是否已經加入成功
<code> /usr/local/nginx/sbin/nginx -V /<code>
最後附上完整安裝nginx方法:
1.安裝nginx前,我們首先要確保系統安裝了g++、gcc、openssl-devel、pcre-devel和zlib-devel軟件,
<code>yum install gcc-c++
yum -y install zlib zlib-devel pcre pcre-devel
yum -y install openssl openssl-devel/<code>
2.切換到需要安裝nginx的目錄,我這裡在/usr/local/ ,然後下載nginx:
<code>wget https://nginx.org/download/nginx-1.11.3.tar.gz/<code>
## 如果已安裝nginx,則remove掉 yum remove nginx
3.解壓下載好的nginx包:
<code>tar -zxvf nginx-1.11.3.tar.gz /<code>
4.開始安裝:/usr/local/nginx-1.11.3 --是nginx的解壓後的源碼包
<code> 執行安裝: ./configure --prefix=/usr/local/nginx /<code>
安裝https認證模塊(上文未安裝這個導致使用https協議保存):./configure --with-http_ssl_module
<code> 再執行:make
最後執行:make install/<code>
查看安裝成功:
進入安裝後的包 :
<code> 最後進入sbin/nginx目錄,./nginx啟動即可/<code>
<code>
5.配置nginx https代理請求:
server {
server_name yuming.cn; ##需要代理的域名
listen 443 ssl;
ssl on; ##如果安裝的是新版本下不需要
ssl_certificate certPath/cert.pem; ##SSL證書地址
ssl_certificate_key certPath/cert.key;##SSL證書公鑰
ssl_session_timeout 3m;##超時時間
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://120.xx.xx.xx:9006; ##這裡寫需要轉發的項目地址
}
}
/<code>
閱讀更多 達升笑聊IT 的文章