【发布时间】:2013-10-20 04:25:34
【问题描述】:
我在 Amazon EC2 上有一个使用 nginx 和 unicorn 的 Rails 应用程序。
当我访问 request.remote_ip 或 request.env['REMOTE_ADDR'] 时,输出始终为 127.0.0.1。 p>
这是我的nginx.conf
user www-data;
worker_processes 1;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
# multi_accept on;
}
http {
include /etc/nginx/mime.types;
access_log /var/log/nginx/access.log;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
tcp_nodelay on;
gzip on;
gzip_disable "MSIE [1-6]\.(?!.*SV1)";
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
upstream example.com {
server 127.0.0.1:8080;
}
server{
listen 80;
server_name example.com _;
root /home/deployer/example/public;
location / {
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 Host $http_host;
if (!-f $request_filename) {
proxy_pass http://example.com;
break;
}
if (-f $document_root/system/maintenance.html) {
return 503;
}
}
}
}
我尝试添加这些行:
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
但不幸的是,结果还是一样 - 127.0.0.1
我做错了什么?有没有其他BUG?
【问题讨论】:
-
这里也一样!使用 Tornado Web 服务器作为上游。任何帮助将不胜感激!
标签: ruby-on-rails nginx amazon-ec2 ip unicorn