Problème avec la configuration nginx et les servers en amont

J'essaie de configurer deux applications pour être servies par nginx. Le premier semble fonctionner correctement et j'ai dupliqué la configuration pour la seconde, mais j'ai des problèmes.

Je gère un server Sinatra avec Unicorn en utilisant des sockets pour transmettre les informations en amont. Je peux atteindre le domaine racine bien (api.richardson.co.nz) et tout semble fonctionner ok, mais dès que j'essaie d'accéder à un path d'access au domaine racine (api.richardson.co.nz/games) I get une erreur «non trouvée».

Voici mon file nginx conf:

worker_processes 1; user nginx web; pid /tmp/nginx.pid; error_log /var/www/knowyourgenre.com/shared/log/nginx.error.log; events { worker_connections 1024; # increase if you have lots of clients accept_mutex off; # "on" if nginx worker_processes > 1 use epoll; # enable for Linux 2.6+ } http { include mime.types; default_type application/octet-stream; access_log /tmp/nginx.access.log combined; sendfile on; tcp_nopush on; # off may be better for *some* Comet/long-poll stuff tcp_nodelay off; # on may be better for some Comet/long-poll stuff gzip on; gzip_http_version 1.0; gzip_proxied any; gzip_min_length 500; gzip_disable "MSIE [1-6]\."; gzip_types text/plain text/html text/xml text/css text/comma-separated-values text/javascript application/x-javascript application/atom+xml; upstream app_server { server unix:/var/www/knowyourgenre.com/current/unicorn.sock fail_timeout=0; server localhost:8080 fail_timeout=0; } upstream api { server unix:/var/www/api/unicorn.sock fail_timeout=0; server localhost:8081 fail_timeout=0; } server { listn 80; # for Linux client_max_body_size 4G; server_name .knowyourgenre.com; keepalive_timeout 5; root /var/www/knowyourgenre.com/current/public/; try_files $uri/index.html $uri.html $uri @app; location @app { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://app_server; } error_page 500 502 503 504 /500.html; location = /500.html { root /path/to/app/current/public; } } server { listn 80; # for Linux client_max_body_size 4G; server_name .richardson.co.nz; keepalive_timeout 5; root /var/www/api; try_files $uri/index.html $uri.html $uri @app; location @app { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://api; } # Rails error pages error_page 500 502 503 504 /500.html; location = /500.html { root /path/to/app/current/public; } } } 

Une erreur dans le server en amont entraînerait-elle un return "non trouvé"? Je suis tout à fait sûr que tout fonctionne au sein du server Sinatra mais j'ai peut-être manqué quelque chose.

One Solution collect form web for “Problème avec la configuration nginx et les servers en amont”

Ajoutez une barre oblique à la fin de la valeur de racine.

 root /var/www/api/; 

De plus, je recommand d'envelopper 'try_files' dans un location.

 location / { try_files $uri/index.html $uri.html $uri @app; } 
  • Les travailleurs de licorne disparaissent
  • Un nombre optimal de process de licorne CPU
  • Nginx Returning 504 Error
  • Unicorn reprend avec le même PID sur USR2
  • L'application a été pressée, puis les servers ont été détenus. J'ai ajouté 8 servers de plus, toujours trop lent
  • Comment lancer unicorn_rails en tant que script de démarrage avec rvm installé sur ma machine ubuntu 12.04?
  • Unicorn Shared Socket
  • Apache / Unicorn: comment get Apache pour servir des files statiques
  • Comment sont ces benchmarks AB pour un ruby ​​/ unicorn / nginx / application en cours d'exécution sur ec2?
  • Applications multiples Nginx + Unicorn avec location - routing
  • Redhat quittant le process ne fonctionne jamais toujours doit le tuer
  • Les astuces du serveur de linux et windows, tels que ubuntu, centos, apache, nginx, debian et des sujets de rĂ©seau.