NGINX 代理配置

NGINX 代理配置

我有一个运行 rails 应用程序的 unicorn 应用服务器和一个提供 tiles 的 tilestream 服务器,一个监听本地 unix 套接字,另一个监听 127.0.0.1:8888,这是我的配置:

upstream unicorn_server {
   server unix:/var/www/fulcrumapp/tmp/sockets/unicorn.sock;
}

  client_header_buffer_size 128k;
  large_client_header_buffers 4 128k;

  server {
            listen 80;
            server_name servername.com;
            keepalive_timeout 30;
            root   /var/www/servername/public/;
                        location / {
                          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;
                          proxy_redirect off;

                          client_max_body_size 300m;

                          if (!-f $request_filename) {
                                           proxy_pass http://unicorn_server;
                                           break;
                          }
            }
}

upstream tiles {
    server 127.0.0.1:8888;
}

server {
    listen 8080;
    server_name tiles.servername.com;
    access_log /var/www/servername/log/tilestream-tiles.access.log;
    error_log /var/www/servername/log/tilestream-tiles.error.log debug;

    location / {
        proxy_set_header Host $http_host;
        proxy_pass http://tiles;
    }
}

第一个服务器运行正常……“tiles”服务器返回“错误请求”400 错误

在本地服务器上运行:curl 127.0.0.1:8888

按预期获取页面

访问 tiles.servername.com:8080 失败。

这是一个亚马逊 EC2 实例,其中公共 IP 不是本地服务器 IP,但我不认为亚马逊 NAT 层会妨碍它。

服务器操作系统是 ubuntu 11.04

调试 nginx 日志在这里: http://pastie.org/2483294

答案1

明白了,从以下开始:

tilestream server starting with --host tiles.servername.com

然后/etc/hosts/在服务器上编辑:

127.0.0.1  tiles.servername.com

然后代理配置如上所述。

“错误请求”来自 Tilestream 服务器。
指定--host parameter它将接受来自以下主机的连接:

相关内容