gpt4 book ai didi

NGINX => 在具有子 URI 的单个主机名上提供多个应用程序

转载 作者:行者123 更新时间:2023-12-04 18:48:21 25 4
gpt4 key购买 nike

我想为来自同一台服务器的多个应用程序提供服务,通过 nginx 进行反向代理。我希望这些应用程序可以通过带有子 uri 的单个域名使用。

例如
www.mydomain.com/nodejs=> 被监听 80 端口的 nginx 捕获并提供给在端口 3001 上运行的 node.js 应用程序
www.mydomain.com/rails=> 被监听 80 端口的 nginx 捕获并提供给在端口 3002 上运行的 rails 应用程序

我的第一个尝试是从两个上游开始:

# /etc/nginx/sites-available/mydomain.com

upstream nodejs {
server 127.0.0.1:3001;
}

upstream rails {
server 127.0.0.1:3002;
}

server {
listen 80 default deferred;

# What do I put here so that
# mydomain.com/nodejs is proxied to the nodejs upstream and
# mydomain.com/rails is proxied to the rails upstream ???
}

有谁知道这一点或指出我正确的方向?

最佳答案

怎么样:

upstream nodejs {
server 127.0.0.1:3001;
}

upstream rails {
server 127.0.0.1:3002;
}

server {
listen 80;

location /nodejs {
proxy_pass http://nodejs;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

location /rails {
proxy_pass http://rails;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

}

或不久:
server {   
listen 80;

location /nodejs {
proxy_pass http://127.0.0.1:3001;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}

location /rails {
proxy_pass http://127.0.0.1:3002;
proxy_redirect off;
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_passproxy_redirect )但很有用。

关于NGINX => 在具有子 URI 的单个主机名上提供多个应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10197774/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com