Nginx 配置 SSL,很系統!很完整!解決 Nginx 報錯 nginx: [emerg] unknown directive "ssl" in /usr/local/nginx/conf/nginx.conf


完整記錄在給 Nginx 配置 SSL 操作,起初的 Nginx 配置未引入SSL模塊,現配置 SSL 遇到的問題

1、更改 conf 的配置

server {
 listen 443;                        # 監聽端口
 server_name str.boxxxxeji.cn;        # 站點域名
 ssl on;
 ssl_certificate  /usr/local/nginx/ssl/5983941__boxxxxeji.cn.pem;
 ssl_certificate_key /usr/local/nginx/ssl/5983941__boxxxxeji.cn.key;
 ssl_session_timeout 5m;
 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;
 try_files $uri /index.html;
 charset utf-8;
 gzip on;
 gzip_buffers 32 4K;
 gzip_comp_level 6;
 gzip_min_length 100;
 gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
 gzip_disable "MSIE [1-6]\."; 
 gzip_vary on;

 limit_req zone=allips burst=5 nodelay;

 location / {
  proxy_pass http://127.0.0.1:8086/;
 }
}

 

2、在加入SSL需要的文件

  在 /usr/local/nginx 目錄下創建 ssl 文件夾,並且把域名的證書文件放入其中

 

 

3、重啟 Nginx 

sudo /usr/local/nginx/sbin/nginx -s reload

報錯:nginx: [emerg] unknown directive "ssl" in /usr/local/nginx/conf/nginx.conf:4

其原因是 Nginx 未引入 SSL 模塊

 

4、進入 Nginx 的解壓目錄執行如下代碼

./configure --with-http_ssl_module

PS:如果已經刪了就重新下載對應版本的Nginx吧

Nginx下載地址: https://nginx.org/en/download.html

下載1.18.0為例:wget https://nginx.org/download/nginx-1.18.0.tar.gz

解壓命令: sudo tar -zxvf nginx-1.18.0.tar.gz

進入nginx目錄: cd nginx-1.18.0/

再執行命令:sudo ./configure --with-http_ssl_module

 

5、執行make

sudo make

 

6、備份原來的 Nginx

cp /usr/local/nginx/sbin/nginx /usr/local/nginx/sbin/nginx.bak

 

7、新 Nginx 替換原 Nginx

sudo cp -rfp objs/nginx /usr/local/nginx/sbin/nginx

 

8、檢查Nginx配置

sudo /usr/local/nginx/sbin/nginx -t

 

9、重啟 Nginx

sudo /usr/local/nginx/sbin/nginx -s reload

如果報:nginx: [warn] the "ssl" directive is deprecated, use the "listen ... ssl" directive instead in /usr/local/nginx/conf/server/str.conf:5

修改 conf 配置配置如下:

server {
 listen 443 ssl;                        # 監聽端口
 server_name str.boxxxxeji.cn;        # 站點域名
 ssl_certificate  /usr/local/nginx/ssl/5983941__boxxxxeji.cn.pem;
 ssl_certificate_key /usr/local/nginx/ssl/5983941__boxxxxeji.cn.key;
 ssl_session_timeout 5m;
 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;
 try_files $uri /index.html;
 charset utf-8;
 gzip on;
 gzip_buffers 32 4K;
 gzip_comp_level 6;
 gzip_min_length 100;
 gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
 gzip_disable "MSIE [1-6]\."; 
 gzip_vary on;

 limit_req zone=allips burst=5 nodelay;

 location / {
  proxy_pass http://127.0.0.1:8086/;
 }
}

重啟 Nginx 即可

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM