【问题标题】:Multiple apps on nginxnginx 上的多个应用程序
【发布时间】:2011-10-24 22:28:30
【问题描述】:

我正在尝试在 nginx 上的多个上游服务器之间路由流量,如下所示:

upstream app_a {
    server unix:/tmp/app_a.sock fail_timeout=10;
    # For a TCP configuration:
    # server localhost:8000 fail_timeout=0;
}
server {
    #listen   80; ## listen for ipv4; this line is default and implied
    #listen   [::]:80 default ipv6only=on; ## listen for ipv6

    index index.html index.htm;

    server_name localhost;

    root /home/ubuntu/app_a/www/staging/static;

    location ~ ^/app_a/(.*)$ {
        try_files $1 @proxy_to_app_a;
    }

    location @proxy_to_app_a {
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_host;
        proxy_redirect off;

        proxy_pass   http://app_a;
    }

不幸的是,这些应用程序不知道完整的 uris 并期望坐在 root 上 - 这意味着我需要在传递给应用程序时重新编写 uri,这就是为什么我认为这可能会起作用:

   location ~ ^/app_a/(.*)$ {
        try_files $1 @proxy_to_app_a;
    }

如果位置只是/(由于上述根本问题),该应用程序可以正常工作,但是这种基于正则表达式的解决方案似乎不起作用。我需要做什么才能让应用在网址中获得/ 而不是app_a

谢谢

【问题讨论】:

    标签: nginx


    【解决方案1】:
    location /app_a/ {
        rewrite /app_a/(.*) /$1 break;
        proxy_set_header Host $http_host;
        proxy_pass http://app_a;
    }
    

    【讨论】:

      猜你喜欢
      • 2017-01-10
      • 1970-01-01
      • 1970-01-01
      • 2012-12-19
      • 2016-07-10
      • 2022-09-27
      • 2018-09-04
      • 2016-01-28
      • 1970-01-01
      相关资源
      最近更新 更多