我的第一篇Nginx日记
因为在课程的小组作业中需要部署Rails,所以我开始学习Nginx。
一位对网络一无所知的学生,在Nginx、Unicorn和Rails的帮助下,记录了自己在AWS上部署的日记(只是个人备忘录,可能比较杂乱)。
第一天 (dì yī
-
- 用vagrant创建CentOS7.0环境
-
- 安装nginx
-
- 将/etc/nginx/conf.d/default.conf复制到/etc/nginx/conf.d/local.conf
- 将/etc/nginx/conf.d/default.conf备份为/etc/nginx/conf.d/default.conf.bk
尝试修改 /etc/nginx/conf.d/local.conf
server {
listen 80;
server_name localhost;
access_log /var/log/nginx/access.log;
location / {
root /usr/share/nginx/html;
index index.htm;
proxy_pass http://localhost:80;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
重新启动nginx并尝试使用curl命令访问http://localhost。我本以为会返回index.html,但是却什么都没有返回。
在日志中,有很多条记录写着 127.0.0.1 – – [17/Jun/2016:10:11:36 +0200] “GET / HTTP/1.0” 499 0 “-” “curl/7.29.0″。
第二天
时间虽然变得空闲了,但我会努力的。
暂时先确保能在Vagrant上运行rails s。
-
- 使用rbenv安装ruby
-
- 在mysql安装过程中遇到问题,但在这里得到解决
-
- 安装git flow
- 由于防火墙相关的问题导致失败,但在参考1和参考2中解决了。
检查防火墙设置,可以使用vi /etc/sysconfig/iptables命令。
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 3000 -j ACCEPT
-A INPUT -p tcp -m tcp --dport 80 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT
可以将dport周围指定为想要使用的端口。
使用的话,英文命令是:systemctl start iptables.service,通过这个命令可以重新启动 iptables。
能夠啟動並從Mac訪問
独角兽的设置
使用Rails 4.2 + Unicorn + Nginx搭建应用程序服务器,只需参考这里就可以完成。
nginx的配置
应该将运行Nginx的用户更改为root。
(Chinese translation)
将独角兽的袜子和Nginx的袜子合在一起。
从主机PC能够看到
一想到就被责怪了。
设置生产的秘密内容
我看到了,但没有预编译资产。
bundle exec rake assets:precompile RAILS_ENV=production
然而,不行
似乎需要在Nginx的位置块中添加资源。
location /assets/ {
root /rails_root/public; # 明示的にこれを追加
}
做到了!
请参考
在Centos上搭建Rails环境。
如何在CentOS上安装git-flow。