nginx 配置多个 https 域名访问

时间:2023-03-09 07:14:06
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. 解决错误的方法,将下图中选中的红色配置信息删掉即可,删除任意一个或者两个删除都可以

    nginx 配置多个 https 域名访问

nginx 带给我的好处

  1. 仅开放一个端口,其他端口均从 nginx 转发,安全性提高了
  2. 可配置多域名访问不同的项目
  3. 通过 nginx 代理访问 Java 后端,可以避免跨域问题