nginx 配置多個 https 域名訪問


需要此操作的原因

  1. 在服務器上部署了 halo blog 以后,這次需要部署另外一個項目,但是又不想使用 ip + port,因此選擇使用 nginx 配置多個域名訪問。

nginx 配置

server {
#    listen 80;
    listen       443 ssl http2 default_server;
        listen       [::]:443 ssl http2 default_server;
        server_name  _;
        root         /usr/share/nginx/html;

        ssl_certificate "pem";
        ssl_certificate_key "key";
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_ciphers PROFILE=SYSTEM;
        ssl_prefer_server_ciphers on;

    server_name  域名;

    client_max_body_size 1024m;

    location / {
        proxy_set_header HOST $host;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

        proxy_pass http://ip:port/;
    }
}


server {
#    listen 80;
    listen       443 ssl http2 default_server;
        listen       [::]:443 ssl http2 default_server;
        server_name  _;

        ssl_certificate "pem";
        ssl_certificate_key "key";
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_ciphers PROFILE=SYSTEM;
        ssl_prefer_server_ciphers on;

    server_name  域名;

    client_max_body_size 1024m;

    location / {
        # if ($uri ~ [A-Z]){
        #     rewrite ^(.*)$ $url last;
        # }
        root /etc/nginx/html/dist;
    }

    location = 訪問路徑 {
        proxy_pass http://ip:port;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   html;
    }
}

上面的配置修改好以后需要注意的地方

  1. 這里使用 nginx -t 測試 conf 配置文件會出現錯誤
[emerg] a duplicate default server for 0.0.0.0:443
  1. 解決錯誤的方法,將下圖中選中的紅色配置信息刪掉即可,刪除任意一個或者兩個刪除都可以
    image.png

nginx 帶給我的好處

  1. 僅開放一個端口,其他端口均從 nginx 轉發,安全性提高了
  2. 可配置多域名訪問不同的項目
  3. 通過 nginx 代理訪問 Java 后端,可以避免跨域問題


免責聲明!

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



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