[运维][服务器][lightsail] Nginx反向代理实现端口映射:将80端口转发至本地5000端口

发布于:2025-05-27 ⋅ 阅读:(161) ⋅ 点赞:(0)

在部署 Web 应用时,通常本地开发环境运行在 localhost:5000 或其他高位端口,但线上用户只能通过标准端口如 80(HTTP)访问。此时就需要用到 Nginx 的反向代理功能,将外部请求的 80 端口转发到内部应用端口(如 5000),实现无缝对接。

本文将手把手教你如何通过 Nginx 实现端口映射,适用于 Ubuntu 系统(如 AWS Lightsail 环境)。


一、为什么需要反向代理?

大多数后端框架(如 Flask、Django、Node.js)默认监听的端口不是 80,而云服务器的开放端口配置和用户访问习惯通常要求监听 80 或 443(HTTPS)。此时通过反向代理实现端口映射,不仅安全、灵活,还能为后续的负载均衡、HTTPS 配置打好基础。


二、准备工作:进入项目配置环境

  1. 推荐进入你的项目文件夹,方便后续操作。

    cd /your/project/folder
    
  2. 打开 Nginx 配置文件进行编辑

    • 常见配置文件路径:

      • /etc/nginx/sites-available/default

      • /etc/nginx/nginx.conf

    • 推荐使用 nano 编辑器:

      sudo nano /etc/nginx/sites-available/default
      

三、编写 Nginx 监听配置

在打开的配置文件中 不要修改原有的 server,而是在文件底部追加以下内容:

server {
    listen 80;
    server_name your-domain.com;  # 改为你的域名或公网 IP

    location / {
        proxy_pass http://127.0.0.1:5000;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
    }
}

编辑提示

  • 输入完成后按下 Ctrl+O 保存文件。

  • 然后按下 Ctrl+X 退出编辑器。


四、使配置生效

  1. 测试配置是否正确

    sudo nginx -t
    

    如果出现 syntax is oktest is successful,说明配置无误。

  2. 重载 Nginx 使配置生效

    sudo systemctl reload nginx
    

五、Lightsail 特殊说明

如果你使用 AWS Lightsail:

  • 你应该编辑的是 /etc/nginx/sites-available/default 文件。

  • 修改时建议 不要动顶部的原始 server 配置,直接 滚动到最下方 添加上面的反向代理配置。

  • 如权限不足,可用 sudo nano 进入编辑。


总结

通过以上步骤,你就完成了将外部请求的 80 端口映射到本地应用 5000 端口的操作,用户访问你的域名或服务器 IP 时,将自动由 Nginx 转发至你的后端服务。此法不仅适用于 Flask、Django,也适用于 Node.js、Go 等任意 Web 服务。


✅ 核心步骤回顾:

  • 进入配置文件:sudo nano /etc/nginx/sites-available/default

  • 添加监听代理配置(监听 80,转发至 127.0.0.1:5000)

  • 测试配置:sudo nginx -t

  • 重载服务:sudo systemctl reload nginx


网站公告

今日签到

点亮在社区的每一天
去签到