当前位置: 首页 > news >正文

Nginx 代理Https服务

Nginx 代理转发 HTTPS 服务配置指南

要使用 Nginx 代理转发 HTTPS 服务,你需要进行以下配置:

基本 HTTPS 代理配置

server {listen 443 ssl;server_name yourdomain.com;# SSL 证书配置ssl_certificate /path/to/your/certificate.crt;ssl_certificate_key /path/to/your/private.key;# SSL 优化参数ssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers 'ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256...';ssl_prefer_server_ciphers on;ssl_session_cache shared:SSL:10m;ssl_session_timeout 10m;location / {proxy_pass https://backend-server:port;  # 目标 HTTPS 服务地址# 基本代理头设置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;# HTTPS 代理特定设置proxy_ssl_verify off;  # 是否验证后端证书,生产环境建议开启proxy_ssl_server_name on;proxy_ssl_session_reuse off;}
}

高级配置选项

‌1. 证书验证‌(生产环境推荐):

proxy_ssl_verify on;
proxy_ssl_trusted_certificate /path/to/trusted_ca_cert.crt;
proxy_ssl_verify_depth 2;

‌2. WebSocket 代理支持‌:

proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

‌3. 负载均衡‌:

upstream backend {server backend1.example.com:443;server backend2.example.com:443;
}server {...location / {proxy_pass https://backend;...}
}

HTTP 自动跳转 HTTPS(可选)

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

注意事项

  1. 确保 Nginx 安装了 --with-http_ssl_module 模块
  2. 后端服务证书如果是自签名的,需要在 Nginx 配置中信任该证书
  3. 生产环境建议开启证书验证以提高安全性
  4. 根据实际需求调整缓冲区大小和超时时间

配置完成后,使用 nginx -t 测试配置是否正确,然后 nginx -s reload 重新加载配置。

nginx 代理https服务但是对外提供http服务

要实现 Nginx 代理 HTTPS 后端服务但对外提供 HTTP 访问,可以通过以下配置实现:

基础配置方案

server {listen 80;server_name yourdomain.com;location / {proxy_pass https://backend-server;  # 后端HTTPS服务地址# 必要代理头设置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;# HTTPS代理特定配置proxy_ssl_verify off;  # 生产环境建议开启验证proxy_ssl_server_name on;}
}

关键配置说明

1‌. 监听HTTP端口‌
配置listen 80表示只对外提供HTTP服务

‌2. 代理HTTPS后端‌
proxy_pass指向HTTPS协议的后端地址,Nginx会自动处理HTTPS连接

‌3. 协议头处理‌
X-Forwarded-Proto $scheme确保后端服务能识别原始请求协议

高级配置建议

1‌. SSL证书验证‌(生产环境推荐):

proxy_ssl_verify on;
proxy_ssl_trusted_certificate /path/to/ca.crt;

‌2. WebSocket支持‌:

Copy Code
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";

3‌. 性能调优参数‌:

proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;

注意事项

  1. 确保后端HTTPS服务证书有效,否则需设置proxy_ssl_verify off
  2. 如需同时支持HTTP/HTTPS对外访问,需分开配置监听端口
  3. 正向代理HTTPS需要特殊模块支持,反向代理无需额外模块
  4. 生产环境建议开启证书验证以提高安全性

这种配置模式常见于内部服务代理、API网关等场景,既能保证后端通信安全,又能简化前端配置

相关文章:

  • 关于pgSQL配置后Navicat连接不上的解决方法
  • vue页面目录菜单有些属性是根据缓存读取的。如果缓存更新了。希望这个菜单也跟着更新。
  • 第二十二次博客打卡
  • 前端vscode学习
  • 关于如何在Springboot项目中通过excel批量导入数据
  • CentOS安装最新Elasticsearch8支持向量数据库
  • openEuler 22.03 LTS-SP3 系统安装 docker 26.1.3、docker-compose
  • 大队项目流程
  • 关于WPS修改默认打开设置
  • scikit-learn pytorch transformers 区别与联系
  • 推荐一个Excel与实体映射导入导出的C#开源库
  • C++(28):容器类 <map>
  • 前端学习笔记element-Plus
  • GaussDB(PostgreSQL)查询执行计划参数解析技术文档
  • 嵌入式学习的第二十六天-系统编程-文件IO+目录
  • AJAX get请求如何提交数据呢?
  • 阿里巴巴 MCP 分布式落地实践:快速转换 HSF 到 MCP server
  • Ajax01-基础
  • 数据仓库工具箱第三版——读书笔记(未完)
  • jvm安全点(五)openjdk17 c++源码垃圾回收之安全点阻塞状态线程在安全点同步中无需调用block函数的详细流程解析
  • windows不能用wordpress/长清区seo网络优化软件
  • 网站建设百度推广开户/seo关键词排名优化软件
  • 自己做网站有名/我想自己建立一个网站
  • 国际网站建设的目的/百度快照客服
  • 做电影网站被告版权/百度top排行榜
  • 做淫秽网站有事情吗/深圳市前十的互联网推广公司