需要此操作的原因
- 在服務器上部署了 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;
}
}
上面的配置修改好以后需要注意的地方
- 這里使用 nginx -t 測試 conf 配置文件會出現錯誤
[emerg] a duplicate default server for 0.0.0.0:443
- 解決錯誤的方法,將下圖中選中的紅色配置信息刪掉即可,刪除任意一個或者兩個刪除都可以

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