nginx作为反向代理

时间:2015-04-14 20:19:25

标签: nginx proxy reverse-proxy

我试图将nginx用作Docker容器中部署的几个Web应用程序的反向代理。我只能从docker服务器公开端口80,并希望允许访问造船厂和rabbitMQ管理Web应用程序。

理想情况下,用户可以通过以下方式访问服务: HTTP [:] // 10.10.10.1/shipyard/ HTTP [:] // 10.10.10.1/rabbitmq /

经过相当多的研究,试验和错误,这是我的nginx配置:

upstream rabbitmq {
    server 127.0.0.1:8888;
}

upstream shipyard {
    server 127.0.0.1:8080;
}

server {
    listen 80;
    server_name 10.10.10.1;

    location /rabbitmq/ {
        proxy_http_version      1.1;
        proxy_set_header        X-Forwarded-Host        $host;
        proxy_set_header        X-Forwarded-Server      $host;
        proxy_set_header        X-Forwarded-For         $proxy_add_x_forwarded_for;
        proxy_set_header        Upgrade                 $http_upgrade;
        proxy_set_header        Connection              'upgrade';
        proxy_set_header        Host                    $host;
        proxy_cache_bypass      $http_upgrade;
        proxy_pass      http://rabbitmq/;
        proxy_redirect          default;
    }

    location /shipyard/ {
        proxy_http_version      1.1;
        proxy_set_header        X-Forwarded-Host        $host;
        proxy_set_header        X-Forwarded-Server      $host;
        proxy_set_header        X-Forwarded-For         $proxy_add_x_forwarded_for;
        proxy_set_header        Upgrade                 $http_upgrade;
        proxy_set_header        Connection              'upgrade';
        proxy_set_header        Host                    $host;
        proxy_cache_bypass      $http_upgrade;
        proxy_pass              http://shipyard/;
        proxy_redirect          default;
    }
}

当我访问任一路径的应用程序时,我遇到了几个问题,我认为这些问题可能相关:

  • 造船厂: 试图从http [:] // 10.10.10.1/api/containers加载文件,当它应该是http [:] // 10.10.10.1/shipyard/api/containers

  • 的RabbitMQ: 一切似乎都有效,直到服务器尝试拨打一个安静的电话: +++ PUT:http [:] // 10.10.10.1/rabbitmq/api/queues///test2 服务器响应405(不允许)。起初我认为///是问题,这就是rabbitMQ管理应用程序的工作方式。

0 个答案:

没有答案