我使用unicorn在nginx服务器后面的服务上运行应用程序。
如果我访问http://server.com,我就会启动并运行应用程序...但我仍然可以访问端口8080上的应用程序,例如http://server.com:8080,但这一次,没有资产(由nginx的)
如何阻止在我的产品上直接访问端口8080。服务器
服务器是Ubuntu 12.04
nginx.conf
upstream unicorn {
server 127.0.0.1:8080;
}
server {
listen 80 default deferred;
# server_name example.com;
root /home/deploy/current/public;
location ^~ /assets/ {
gzip_static on;
expires max;
add_header Cache-Control public;
}
try_files $uri/index.html $uri @unicorn;
location @unicorn {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://unicorn;
}
error_page 500 502 503 504 /500.html;
client_max_body_size 4G;
keepalive_timeout 10;
}
答案 0 :(得分:1)
让unicorn和nginx使用域套接字。对于nginx:
upstream unicorn {
server unix:/path/to/socket fail_timeout=0;
}
然后将'-l / path /传递给/ socket'到unicorn,或者改变你的unicorn配置文件:
listen '/path/to/socket'