nginx 对外的80端口对应我2个不同的应用8081 8082 怎么做
在 Nginx 中,你可以通过配置不同的 location 块或使用不同的 server_name 来将外部的 80 端口请求转发到内部不同的应用端口(如 8081 和 8082)。以下是两种常见的实现方式:
方法 1:通过 location 路径区分应用
如果你的两个应用可以通过不同的路径区分(例如 /app1 和 /app2),可以使用 location 块来实现。
示例配置:
nginx
复制
server {
listen 80;
server_name example.com;
# 应用1:8081
location /app1 {
proxy_pass http://127.0.0.1:8081;
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;
}
# 应用2:8082
location /app2 {
proxy_pass http://127.0.0.1:8082;
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;
}
}
说明:
访问 http://example.com/app1 的请求会被转发到 8081 端口。
访问 http://example.com/app2 的请求会被转发到 8082 端口。
方法 2:通过 server_name 区分应用
如果你有两个不同的域名(或子域名),可以通过 server_name 来区分应用。
示例配置:
nginx
复制
应用1:8081
server {
listen 80;
server_name app1.example.com;
location / {
proxy_pass http://127.0.0.1:8081;
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;
}
}
应用2:8082
server {
listen 80;
server_name app2.example.com;
location / {
proxy_pass http://127.0.0.1:8082;
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;
}
}
说明:
访问 http://app1.example.com 的请求会被转发到 8081 端口。
访问 http://app2.example.com 的请求会被转发到 8082 端口。
server {
listen 80;
server_name example.com;
location / {
proxy_pass http://backend_server;
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 80;
监听 80 端口(HTTP)。
server_name example.com;
定义服务器名称,匹配请求的 Host 头。
location / {}
定义请求路径的匹配规则,/ 表示匹配所有路径。
proxy_pass http://backend_server;
将请求转发到后端服务器,backend_server 可以是 IP 地址、域名或 upstream 名称。
proxy_set_header
设置转发请求时的 HTTP 头信息:
Host $host;:将客户端请求的 Host 头传递给后端服务器。
X-Real-IP $remote_addr;:将客户端的真实 IP 地址传递给后端服务器。
X-Forwarded-For $proxy_add_x_forwarded_for;:追加客户端的 IP 地址到 X-Forwarded-For 头。
X-Forwarded-Proto $scheme;:将请求的协议(HTTP 或 HTTPS)传递给后端服务器。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?