我有一个Ubuntu 12.04 LTS VPS服务器,用Nginx提供静态网站。 我想build立一个可以从子文件夹“foo”访问的rails应用程序。 我使用Passenger来服务rails应用程序
这就是我configurationNginx的方法:
worker_processes 1; events { worker_connections 1024; } http { passenger_root /home/akarki/.rvm/gems/ruby-1.9.3-p429/gems/passenger-4.0.5; passenger_ruby /home/akarki/.rvm/wrappers/ruby-1.9.3-p429/ruby; server_names_hash_bucket_size 64; include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; gzip on; gzip_disable "MSIE [1-6]\.(?!.*SV1)"; gzip_types text/plain application/xml text/css text/js text/xml application/x-javascript text/javascript application/json application/xml+rss; charset UTF-8; error_log /opt/nginx/logs/file.log warn; server { listen 80; server_name www.domain.com; return 301 $scheme://domain.com$request_uri; } server { listen 80; server_name domain.com; index index.html index.htm; root /srv/www/domain.com; passenger_enabled on; passenger_base_uri /foo; try_files $uri.htm $uri.html $uri/ =404; location = / { rewrite ^ /de permanent; } # redirect server error pages to the static page /50x.html error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
静态网站按预期工作,但唯一可访问的Rails应用程序的URL是“ http://domain.com/foo ”
任何其他的url给出了一个404错误。
你有什么build议如何解决这个问题?
find最好的解决scheme后,我find了很多是重新安装和configurationnginx与phusion乘客
sudo apt-get purge nginx nginx-common nginx-full sudo apt-get install nginx sudo nano /etc/nginx/nginx.conf # uncomment 'passenger_root' & 'passenger_ruby' paths accordingly sudo nano /etc/nginx/sites-enabled/default # replace with: server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; server_name mydomain.com; passenger_enabled on; rails_env production; root /home/deploy/myapp/current/public; # redirect server error pages to the static page /50x.html error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } sudo service nginx restart