Linux系統下ngnix使用HTTPS協議啟動報錯:
nginx: [emerg] the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.c
報錯原因:
未安裝SSL模塊--ngx_http_ssl_module
解決方法:
1.先查看nginx原有的模塊: /usr/local/nginx/sbin/nginx -V (或./nginx -V)在configure arguments:后面顯示的參數如下:--prefix=/usr/local/nginx --with-http_stub_status_module ,則代表未安裝SSL模塊
2.那么安裝好的參數應該是這樣:
3.接下來輸入命令:
yum -y install openssl openssl-devel (非必須)
./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module 運行命令即可,
4.等配置完成后,運行命令: make 這里不要進行make install,否則就是覆蓋安裝
5.然后備份原有已安裝好的nginx: cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak
6.然后將剛剛編譯好的nginx覆蓋掉原有的nginx(這個時候nginx要停止狀態): cp ./objs/nginx /usr/local/nginx/sbin/ 然后啟動nginx,仍可以通過命令查看是否已經加入成功 /usr/local/nginx/sbin/nginx -V
最后附上完整安裝nginx方法:
1.安裝nginx前,我們首先要確保系統安裝了g++、gcc、openssl-devel、pcre-devel和zlib-devel軟件,
yum install gcc-c++
yum -y install zlib zlib-devel pcre pcre-devel
yum -y install openssl openssl-devel
2.切換到需要安裝nginx的目錄,我這里在/usr/local/ ,然后下載nginx: wget https://nginx.org/download/nginx-1.11.3.tar.gz
## 如果已安裝nginx,則remove掉 yum remove nginx
3.解壓下載好的nginx包:tar -zxvf nginx-1.11.3.tar.gz
4.開始安裝:/usr/local/nginx-1.11.3 --是nginx的解壓后的源碼包
執行安裝: ./configure --prefix=/usr/local/nginx
安裝https認證模塊(上文未安裝這個導致使用https協議保存):./configure --with-http_ssl_module
再執行:make
最后執行:make install
查看安裝成功:
進入安裝后的包 :
最后進入sbin/nginx目錄,./nginx啟動即可
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; ##這里寫需要轉發的項目地址
}
}