[英]Getting Nginx to forward to Thin on EC2
我正在努力让Nginx将我的:80流量代理到我的瘦集群上。
此刻..什么都没有发生。 参见http://ec2-50-19-75-170.compute-1.amazonaws.com/
请参阅以下我的配置文件:
我的etc / nginx / sites-enabled / dankit配置文件看起来像这样
upstream thin {
server 0.0.0.0:3000;
server 0.0.0.0:3001;
server 0.0.0.0:3002;
}
server {
listen 80;
server_name ec2-50-19-174-64.compute-1.amazonaws.com;
root /home/ubuntu/apps/dankit-rails;
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 false;
if (-f $request_filename/index.html) {
rewrite (.*) $1/index.html break;
}
if (-f $request_filename.html) {
rewrite (.*) $1.html break;
}
if (!-f $request_filename) {
proxy_pass http://thin;
break;
}
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
然后运行:sudo ln -s sites-available / dankit sites-enabled / dankit
/etc/thin/dankit.yml
pid: tmp/pids/thin.pid
address: 0.0.0.0
timeout: 30
port: 3000
log: log/thin.log
max_conns: 1024
require: []
max_persistent_conns: 512
environment: production
servers: 3
daemonize: true
chdir: /home/ubuntu/apps/dankit-rails
并确认两者都在运行:
ubuntu @ domU-12-31-39-06-7A-F8:/ etc / nginx / sites-available $ ps -ef | grep -i细根923 1 2 16:06? 00:00:09瘦服务器(0.0.0.0:3000)
根934 1 1 16:06? 00:00:09瘦服务器(0.0.0.0:3001)
根945 1 1 16:06 00:00:08瘦服务器(0.0.0.0:3002)
ubuntu 971 817 0 16:14 pts / 0 00:00:00 grep -i Thin ubuntu @ domU-12-31-39-06-7A-F8:/ etc / nginx / sites-available $ ps -ef | grep -i nginx根542 1 0 16:04? 00:00:00 nginx:主进程/ usr / sbin / nginx www-data 545542 0 16:04? 00:00:00 nginx:工作进程
我的瘦服务器启动正常,并且rails目录中的日志没有显示任何错误。
我开始认为这是ec2安全组的安全问题。 但是我为0.0.0.0/0 3000-3030和通常的:80和ssh添加了TCP。
这让我很精神! 任何建议将不胜感激。
I then ran: sudo ln -s sites-available/dankit sites-enabled/dankit
问题可能是两件事之一或两者兼而有之:
我倾向于只使用符号链接的完整路径……也许这是一个好习惯,但是我还发现,如果未正确为已启用的站点配置权限,nginx不会感到满意。
也许将所有0.0.0.0更改为127.0.0.1或指向127.0.0.1的localhost。 0.0.0.0和127.0.0.1之间的区别在于,前者是指本地主机的物理接口,而后者是指软件接口。
查看此URL http://articles.slicehost.com/2008/5/27/ubuntu-hardy-nginx-rails-and-thin和您的配置完全匹配,我认为没有任何问题,尽管我想您验证一些事情。
请验证以下内容:
127.0.0.1
iptables
命令。 CORRECT
排序。
任何可以回答为什么符号链接是问题的人都可以得到答案!
感谢您的所有反馈和帮助。 基本上,如果有人遇到这个问题,这就是问题所在。
我注意到从/ etc / nginx / site-enabled中删除配置时,它影响了服务器。
..OK听起来不错!
现在我注意到,当我重新符号链接从/ etc / nginx / site-available到/ etc / nginx / site-enabled的配置时,它没有任何作用。 甚至默认的nginx默认配置也不起作用。
所以! symlink在这里一定有问题。 我通过将/ etc / nginx / site-available / dankit导入到主要的Nginx配置中进行了快速测试,嘿! 网站启动。
因此,我相信我的symlink命令:
sudo ln -s sites-available/dankit sites-enabled/dankit
是胡扯。 我要研究另一种解决方案。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.