如何使用 nginx 为单个域名在同一服务器上的多个端口进行 SSL

问题描述 投票:0回答:1

我使用 let's encrypt 来获取 SSL 证书,并使用 nginx 作为反向代理。下面是我正在使用的 nginx conf 文件:

server { 
    listen 443 http2 ssl; 
    server_name example.com; 
    access_log /var/log/nginx/example.com.log; 
    error_log /var/log/nginx/example.com.log; 
    location /.well-known/acme-challenge/ { 
        root /var/www/html/grafana; # Temp for generating letsencrypt 
        default_type text/plain; 
    } 
    
    location / { 
        proxy_set_header Host $host:$server_port; 
        proxy_set_header X-Real-IP $remote_addr; 
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
        proxy_set_header X-Forwarded-Proto $scheme; 
    
        #Fix the “It appears that your reverse proxy set up is broken” error. 
    
        proxy_pass http://127.0.0.1:3000; 
        proxy_read_timeout 90; 
        proxy_redirect http://127.0.0.1:3000 http://example.com/; 
    
        #Required for new HTTP-based CLI 
    
        proxy_http_version 1.1; 
        proxy_request_buffering off; 
    } 
    
    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; # managed by Certbot 
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; # managed by Certbot 
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot 
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot 
} 
    
server { 
    if ($host = example.com) { 
        return 301 https://$host$request_uri; 
    } # managed by Certbot 
    
    listen 80; 
    server_name example.com; 
    return 404; # managed by Certbot 
}

============

我的要求是:

我在此服务器上运行多个应用程序,例如 Jenkins、Gitlab、Grafana。这些应用程序正在侦听不同的端口。上面的文件让我将 https://example.com 重定向到 http://example.com:3000。但我想像这样重定向我的连接:

https://example.com:3000 -> http://example.com:3000
https://example.com:8080 -> http://example.com:8080
https://example.com:81 -> http://example.com:81

我见过一个环境这样做。但不明白这是怎么做到的。

nginx nginx-reverse-proxy lets-encrypt
1个回答
0
投票

我看到很多人问类似的问题。我找到了解决方案并发布在我的博客中:

https://the-tech-guy.in/2021/09/20/setup-ssl-certificate-for-multiple-ports-nginx-letsencrypt/

© www.soinside.com 2019 - 2024. All rights reserved.