nginx重定向(或代理)到localhost上的另一个应用程序

时间:2016-07-21 10:20:47

标签: nginx proxy

我想使用nginx将请求从7443重定向(或代理)到8443。

https://serverIP:7443/oldApp/  ==> https://serverIP:8443/new/app/

我尝试了一些设置,但仍然有404或空页。

这是我的nginx配置:

//ssl settings ..

server {
     listen [::]:7443 ipv6only=off ssl;
     server_name  localhost;
     location /oldApp/ {    
          proxy_set_header  Accept-Encoding        "";
          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;
          #proxy_set_header X-Forwarded-Port       8443;
          #add_header       Front-End-Https        on;

          proxy_pass      https://127.0.0.1:8443/new/app;
     }}

以下是一些可能有助于指令使用的假设:

  1. 用于不同的端口/方案=>使用proxy_pass(或proxy_redirect)

  2. 用于不同的虚拟主机/子域/文件夹=>使用sub_filter(或重写?)

  3. 这些假设是否正确?

    提前致谢!

1 个答案:

答案 0 :(得分:0)

我将其修改如下:

server {
    listen [::]:7443 ipv6only=off ssl;
    server_name  localhost;

    location ^~ /oldApp {
        proxy_pass https://127.0.0.1:8443/new/app/;

        # Here is the trick: add the port behind $host
        proxy_set_header    Host            $host:8443;

        # This make sure your session won't lose  
        proxy_cookie_path   ~*^/.* /;

    }}

非常感谢