问题描述
|
我正在努力让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站点可用/ dankit站点启用/ 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薄
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 545 542 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
问题可能是两件事之一或两者兼而有之:
ln -s / etc / nginx / sites-available / dankit / etc / nginx / sites-enabled / dankit
chown没有人:没人/ etc / nginx / 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之间的区别在于,前者是指localhost的物理接口,而后者是指软件接口。
, 查看此URL http://articles.slicehost.com/2008/5/27/ubuntu-hardy-nginx-rails-and-thin和您的配置完全匹配,我认为没有任何问题,尽管我会喜欢你来验证几件事。
请验证以下内容:
更改瘦地址以指向127.0.0.1
确保防火墙的瘦端口号为OPEN,TCP连接的防火墙号为80。不是通过查看亚马逊控制台而是通过运行iptables
命令。
最后,确保您的公共DNS是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
是胡扯。我要研究另一种解决方案。