背景:1,第一次亲身部署。
2,迫切想看到成果,找点自信。
因为是第一次部署,想大概了解部署的一个过程,于是找了找 rails 的部署方案,最终找到了这一篇:
https://github.com/ruby-china/ruby-china/wiki/Ubuntu-12.04-%E4%B8%8A%E4%BD%BF%E7%94%A8-Nginx-Passenger-%E9%83%A8%E7%BD%B2-Ruby-on-Rails
然后一步一步的跟着走,期间有遇到问题,最终通过 Google 解决了,之后来到了 Welcome to Nginx
这一步,于是很清楚的知道前面的操作应该没错,但有一个问题,怎么没有看到自己的网站。然后又找了找问题,最后出现了这个错误:
查看错误日志:
感觉没有报错……
不知道是什么原因,第一次没有这方面经验,所以求助社区朋友
nginx
server {
listen 80;
server_name chaxun.com;
location / {
proxy_pass http://127.0.0.1:3000;
}
}
进到 rails 项目里
bundle exec puma -p 3000 -e production -d config.ru
测试的时候这么启动的,正常应该加到自启动。
如果你改了 Nginx 的配置,最好先运行 sudo service nginx reload,再运行 sudo service nginx restart
#18 楼 @Rei #19 楼 @liwei78 /etc/nginx/sites-enabled/jyootai.com.conf
server {
listen 80 default;
server_name jyootai.com;
root /var/www/jyootai.com/computer/public;
passenger_enabled on;
}
/etc/nginx/nginx.conf
#user jyootai;
worker_processes 4;
pid /var/run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
##
# Gzip Settings
##
gzip on;
gzip_disable "msie6";
passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
passenger_ruby /home/deploy/.rvm/wrappers/ruby-2.0.0-p247/ruby;
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
这样配置过后,需要运行 rails s
或 rails s -e production
后才能输入 http://ip:3000 打开网站
或者不删除 default,把 /etc/nginx/sites-enabled/jyootai.com.conf
里面的 listen 80 default;
修改成 listen 80;
,这样只能通过域名访问,看你喜欢。
#27 楼 @Rei 项目部署已能正常运行,点击其它按钮时均正常,但点击搜索按钮时就会报错
Elasticsearch::Transport::Transprot::Errors::ServiceUnavailable in Topics#search
{"error":"ClusterBlockException[blocked by: [SERVICE_UNAVAILABLE/1/state not recovered / initialized];[SERVICE_UNAVAILABLE/2/no master];]","status":503}
我知道这应该是 elasticsearch 的问题,后台也在运行,不知道哪出了错
{
"status" : 503,
"name" : "Antonio",
"version" : {
"number" : "1.1.2",
"build_hash" : "e511f7b28b77c4d99175905fac65bffbf4c80cf7",
"build_timestamp" : "2014-05-22T12:27:39Z",
"build_snapshot" : false,
"lucene_version" : "4.7"
},
"tagline" : "You Know, for Search"
}
在自己机子上就没有这样的错,这就是服务器端 elasticsearch 出了问题吧
#32 楼 @Rei 到处找了一下问题的解决方案,发现这个比较有用 http://stackoverflow.com/questions/18588927/elasticsearch-503-error-when-checking-server-status
但现在 503 -> 404
ActionView::Template::Error ([404] {"error":"IndexMissingException[[topics] missing]","status":404}):