You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何使用Nginx将443端口反向代理至6040端口(SSL配置)

实现步骤与配置示例

这事儿不难,刚好是Nginx最常用的反向代理+SSL部署场景,我给你一步步讲清楚怎么配置:

1. 准备SSL证书

首先你得有可用的SSL证书——生产环境推荐用免费的Let's Encrypt证书;测试环境的话,自签证书也能凑合用。假设你的证书文件路径是:

  • 证书文件:/etc/nginx/ssl/your_domain.crt
  • 私钥文件:/etc/nginx/ssl/your_domain.key

2. 编写Nginx配置

打开你的Nginx配置文件(通常在/etc/nginx/nginx.conf或者/etc/nginx/conf.d/下新建一个your_domain.conf文件),添加以下server块:

server {
    listen 443 ssl;
    server_name your_domain.com; # 替换成你的域名或公网IP

    # SSL证书配置
    ssl_certificate /etc/nginx/ssl/your_domain.crt;
    ssl_certificate_key /etc/nginx/ssl/your_domain.key;

    # 可选:优化SSL性能与安全性
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers HIGH:!aNULL:!MD5;
    ssl_prefer_server_ciphers on;

    # 反向代理核心配置
    location / {
        proxy_pass http://localhost:6040; # 转发到本地6040端口的应用
        proxy_set_header Host $host;
        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;
    }
}

关键配置说明:

  • listen 443 ssl:让Nginx监听443端口并启用SSL服务
  • server_name:替换成你的实际域名(或公网IP,若用IP直接访问)
  • proxy_pass:把所有请求转发到运行在6040端口的应用程序
  • 那些proxy_set_header:是为了让后端应用能获取到真实的请求信息(比如原请求的域名、客户端IP、协议),避免应用出现跳转错误或无法识别真实来源的问题

3. 可选:80端口自动重定向到HTTPS

如果希望用户访问http://your_domain.com时自动跳转到HTTPS,可以再加一个server块:

server {
    listen 80;
    server_name your_domain.com;
    return 301 https://$server_name$request_uri;
}

4. 验证并重启Nginx

配置写完后,先检查配置是否有语法错误:

nginx -t

如果输出test is successful,就可以重启Nginx让配置生效:

systemctl restart nginx # 适用于Ubuntu、CentOS 7+等systemd系统
# 旧系统可以用 service nginx restart

额外注意事项

  • 确保服务器防火墙已经开放443(和80,如果加了重定向的话)端口
  • 自签证书在浏览器会提示不安全,仅适合测试用,生产环境一定要用可信机构颁发的证书
  • 确认6040端口的应用确实在监听localhost(或你指定的地址),且Nginx有权限访问该端口

内容的提问来源于stack exchange,提问作者user3215778

火山引擎 最新活动