同一臺伺服器部署多個專案,實現不同域名訪問

hamigua2016發表於2020-12-01

場景:

  • 同一臺伺服器部署兩套專案,用到不同的域名。並且埠都是443預設埠。

解決辦法:

  1. 配置nginx反向代理來解決。
  2. 登入阿里雲後,進入SSL證書(應用安全),此證書需與域名繫結。然後下載對應的證書(選擇Nginx下載方式)(此處,證書繫結的是二級域名)。
  3. 將***.pem 和 ***.key證書放到 D:\nginx-1.18.0\conf\cert目錄下(cert 目錄需新建)。
  4. 配置nginx.conf檔案如下:(注意:此處需要將http請求轉發為https請求。確保請求不會為空路徑)
	server{
        listen       443 ssl;
        server_name  www.***1.com; #監聽kjpj.etm.org.cn域名
        root html;
        index index.html index.htm;
        ssl_certificate   cert/***.pem;
        ssl_certificate_key  cert/***.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;
        location / {
                proxy_pass http://127.0.0.1:8080/; 
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
	}
	
	server{
         listen       443 ssl;
         server_name  www.***2.com; #監聽www.baidu.com域名
         root html;
         index index.html index.htm;
         ssl_certificate   cert/***.pem;
         ssl_certificate_key  cert/***.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;
         location / {
                proxy_pass http://127.0.0.1:8081/; 
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
	}
     
     #http轉發為https
     server {
         listen       80;
         server_name  www.****1.com; #修改為申請證書繫結的域名
         rewrite ^(.*)$ https://${server_name}$1 permanent; 
     }
     server {
         listen       80;
         server_name  www.****2.com; #修改為申請證書繫結的域名
         rewrite ^(.*)$ https://${server_name}$1 permanent; 
     }

相關文章