一招搞定Nginx反向代理!HTTPS配置这么简单,你还在怕什么?

image.png

可以结合我之前的文章:https://zhuanlan.zhihu.com/p/715159112
用域名搭建一个ServerStatus中文版在线网站

要配置 Nginx 作为 HTTPS 反向代理处理流量,可以按照以下步骤进行设置:

步骤一:安装和准备 Nginx

  1. 安装 Nginx

    • 如果您还没有安装 Nginx,可以使用包管理器进行安装。例如,在 Debian/Ubuntu 系统上运行:
      sudo apt update
      sudo apt install nginx
      
  2. 生成或获取 SSL 证书

    • 如果您的 Nginx 服务器本身需要终止 SSL 连接(例如使用自定义 SSL 证书),您需要获取 SSL 证书。可以使用 Let's Encrypt 免费获取证书,或者使用其他证书颁发机构(CA)。
    • 使用 Let's Encrypt 获取证书的命令如下:
      sudo apt install certbot python3-certbot-nginx
      sudo certbot --nginx -d your_domain.com -d www.your_domain.com
      

步骤二:配置 Nginx 反向代理

  1. 创建或编辑 Nginx 配置文件

    • /etc/nginx/sites-available/ 目录下创建或编辑一个配置文件。假设您的域名是 example.com
      sudo nano /etc/nginx/sites-available/example.com
      
  2. 设置反向代理配置

    • 添加以下配置来设置 Nginx 为 HTTPS 反向代理:

      server {
          listen 80;
          listen [::]:80;
          server_name example.com www.example.com;
      
          # Redirect all HTTP requests to HTTPS
          return 301 https://$host$request_uri;
      }
      
      server {
          listen 443 ssl;
          listen [::]:443 ssl;
          server_name example.com www.example.com;
      
          # SSL configuration
          ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
          ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
          ssl_protocols TLSv1.2 TLSv1.3;
          ssl_ciphers HIGH:!aNULL:!MD5;
      
          # Proxy pass configuration
          location / {
              proxy_pass http://127.0.0.1:8080;  # 修改为您的后端服务端口
              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;
          }
      }
      
    • 其中,proxy_pass 应指向您服务的内部 IP 和端口(例如 http://127.0.0.1:8080),ssl_certificatessl_certificate_key 路径指向您的 SSL 证书文件。

  3. 启用配置并重启 Nginx

    • 启用该站点配置:
      sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
      
    • 测试 Nginx 配置的正确性:
      sudo nginx -t
      
    • 如果测试通过,重载 Nginx 使新配置生效:
      sudo systemctl reload nginx
      

步骤三:测试与验证

  1. 测试 HTTPS 访问

    • 通过浏览器访问 https://example.com,确保页面加载正常,且通过 HTTPS 进行访问。
  2. 验证 SSL/TLS

    • 使用 curl 或其他工具测试 SSL 配置是否正确:
      curl -I https://example.com
      
    • 确保返回的头信息中显示 HTTP 状态为 200 OK,并且 SSL 连接正常。

步骤四:监控与优化

  1. 监控 Nginx 日志

    • 检查访问日志和错误日志,确保没有配置错误或其他问题。
      sudo tail -f /var/log/nginx/access.log
      sudo tail -f /var/log/nginx/error.log
      
  2. 进一步优化

    • 根据需求优化 Nginx 的性能设置,例如启用压缩、调整缓冲区大小、使用 HTTP/2 等。

通过上述配置步骤,您的 Nginx 服务器将能够安全、高效地作为 HTTPS 反向代理处理通过浏览器转发的流量。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容