要配置 Nginx 将 HTTPS 请求(默认使用 443 端口)反向代理到后端服务的 8000 端口,您需要编辑 Nginx 的配置文件。通常这个文件位于 /etc/nginx/nginx.conf 或者 /etc/nginx/sites-available/default 中,具体取决于您的系统和安装方式。
以下是一个简单的示例配置,假设您已经拥有了一个有效的 SSL 证书,并且已经将其放置在合适的位置(例如 /etc/ssl/certs/ 和 /etc/ssl/private/)。
示例 Nginx 配置
server {
listen 443 ssl; # 监听 HTTPS 请求
server_name yourdomain.com; # 您的域名
# SSL 证书路径
ssl_certificate /etc/ssl/certs/yourdomain.crt;
ssl_certificate_key /etc/ssl/private/yourdomain.key;
# 可选:启用 OCSP Stapling
ssl_stapling on;
ssl_stapling_verify on;
ssl_trusted_certificate /etc/ssl/certs/trusted.pem;
# 安全相关的设置
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers HIGH:!aNULL:!MD5;
# 访问日志和错误日志
access_log /var/log/nginx/yourdomain.access.log;
error_log /var/log/nginx/yourdomain.error.log;
# 反向代理设置
location / {
proxy_pass http://127.0.0.1:8000; # 后端服务地址
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;表示此服务器块监听 443 端口,并开启 SSL 支持。server_name yourdomain.com;设置了该服务器块响应哪个域名的请求。ssl_certificate和ssl_certificate_key分别指定了 SSL 证书及其私钥的路径。location /块定义了如何处理对根路径的请求。这里使用proxy_pass指令将请求转发到本地运行的服务(本例中是运行在 8000 端口上的服务)。proxy_set_header指令用于设置发送给后端服务的 HTTP 头信息,以传递客户端的真实信息。
测试配置并重启 Nginx
在修改完配置文件后,请先测试配置是否正确:
sudo nginx -t
如果配置没有问题,可以重新加载 Nginx 使更改生效:
sudo systemctl reload nginx
或者,如果您使用的是较旧版本的系统,可能需要使用以下命令:
sudo service nginx reload
这样就完成了 Nginx 的配置,使其作为 443 端口上的反向代理,将请求转发到本地的 8000 端口。
79

被折叠的 条评论
为什么被折叠?



