我有在4个不同端口上侦听的应用程序,我想根据uri选择合适的服务器。
这是不同的端口
localhost:9090
localhost:9091
localhost:9092
localhost:9093
localhost:9090定义了1条路由:/ home
localhost:9091定义了2条路由:/ save和/ update
localhost:9092定义了2条路由:/ list和/ delete
localhost:9093定义了3条路由:/ closed,/ pending和/ active
我使用nginx代理使这些网址无法从外部访问,就像这样:
server_tokens off;
upstream backend{
server localhost:9090;
server localhost:9091;
server localhost:9092;
server localhost:9093;
}
server {
listen 8887;
server_name localhost;
location / {
proxy_pass http://backend;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
}
server {
listen 8888;
server_name localhost;
location / {
proxy_pass http://backend;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
}
}
如果用户在浏览器中键入 localhost:8887 / home ,我希望选择 localhost:9090 。
如果他键入 localhost:8888 / save或localhost:8888 / update ,我希望选择 localhost:9091 。
如果他键入 localhost:8888 / list或localhost:8888 / delete ,我希望选择 localhost:9092 。
我制作了一个与location部分中的if测试一起使用的版本,但我必须使用上游指令来实现。
预先感谢您的帮助。