Nginx fornece erro 404 para aplicativo de trilhos, exceto a raiz

2

Eu tenho um servidor Ubuntu 12.04 LTS VPS que serve um site estático com o Nginx. Eu gostaria de configurar um aplicativo rails que é acessível a partir da subpasta 'foo'. Eu uso o Passenger para servir o aplicativo rails

Foi assim que configurei o Nginx:

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;
        }
    }
}

O site estático funciona como esperado, mas o único URL do aplicativo rails acessível é a raiz em ' link '

Qualquer outro URL gera um erro 404.

Você tem alguma sugestão de como corrigir isso?

    
por nimportequoi 08.07.2013 / 16:00

1 resposta

0

A melhor solução que consegui encontrar depois de pesquisar bastante foi reinstalar e configurar o nginx com o passageiro de 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
    
por 11.03.2015 / 10:07