[运维][服务器][lightsail] Nginx反向代理实现端口映射:将80端口转发至本地5000端口
在部署 Web 应用时,通常本地开发环境运行在 localhost:5000
或其他高位端口,但线上用户只能通过标准端口如 80(HTTP)访问。此时就需要用到 Nginx 的反向代理功能,将外部请求的 80 端口转发到内部应用端口(如 5000),实现无缝对接。
本文将手把手教你如何通过 Nginx 实现端口映射,适用于 Ubuntu 系统(如 AWS Lightsail 环境)。
一、为什么需要反向代理?
大多数后端框架(如 Flask、Django、Node.js)默认监听的端口不是 80,而云服务器的开放端口配置和用户访问习惯通常要求监听 80 或 443(HTTPS)。此时通过反向代理实现端口映射,不仅安全、灵活,还能为后续的负载均衡、HTTPS 配置打好基础。
二、准备工作:进入项目配置环境
-
推荐进入你的项目文件夹,方便后续操作。
cd /your/project/folder
-
打开 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; # 改为你的域名或公网 IPlocation / {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
退出编辑器。
四、使配置生效
-
测试配置是否正确:
sudo nginx -t
如果出现
syntax is ok
和test is successful
,说明配置无误。 -
重载 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