NGINX代理configuration

我有一个独angular兽的应用程序服务器运行一个rails应用程序和一个tilestream服务器服务瓷砖一听本地unix套接字,另一个在127.0.0.1:8888这里是我的conifg:

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

第一台服务器工作正常…“瓷砖”服务器踢回“坏请求”400错误

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

按预期提取页面

击中tiles.servername.com:8080失败。

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

服务器操作系统是Ubuntu 11.04

debuggingnginx日志在这里: http : //pastie.org/2483294

知道了,开始与:

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

然后编辑服务器上的/etc/hosts/

 127.0.0.1 tiles.servername.com 

然后代理configuration如上。

“错误的请求”来自tilestream服务器。
--host parameter指定它将接受连接的唯一主机。