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)传递给后端服务器。
posted @   玲婉!-_-伟  阅读(16)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示