开发者

Multiple apps on nginx

I'm trying to route traffic across multiple upstream servers on nginx like so:

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;
    }

Unfortunately the apps have no knowledge of full uris and expect to be sitting on root - which means i need to re-write the uri when passing to the app, which is why i thought this might work:

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

the app works fine if location is just / (because of the aforementioned root issue), but this regex based solution doesnt seem to work. What do i need to do so the app gets / instead of app_a in the url?

Thanks


location /app_a/ {
    rewrite /app_a/(.*) /$1 break;
    proxy_set_header Host $http_host;
    proxy_pass http://app_a;
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜