Ho configurato Nginx come server Web principale e due server basati su Mochiweb. Alcune richieste sono inverse con proxy a questi due server. ora, voglio accedere a phpmyadmin (che si trova in/var/www/nginx-default/phpMyAdmin) usando nginx, ma continua a dire che l'errore 404 non è stato trovato. Mi sto perdendo qualcosa di ovvio qui?La direttiva sulla posizione di Nginx non sembra funzionare. Mi sto perdendo qualcosa?
server {
############### General Settings ####################
listen 80;
server_name localhost;
access_log /home/me/dev/wwwaccess.log;
############## Document Root #######################
location/{
root /home/me/dev;
index index.html index.htm index.php;
}
############## PHPMyAdmin #######################
location /phpmyadmin {
root /var/www/nginx-default/phpMyAdmin;
index index.html index.htm index.php;
}
############## Proxy Settings for FastCGI Server #####
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /home/me/dev$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
############# Proxy Settings for Mochi1 ###############
location /mochi1 {
proxy_pass http://127.0.0.1:8000;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 3600;
proxy_buffering off;
}
############# Proxy Settings for Mochi2 ###############
location /mochi2 {
proxy_pass http://127.0.0.1:8001;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 3600;
proxy_buffering off;
}
############# Error redirection pages ################
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /home/me/dev;
}
}
Grazie per la risposta! Ho provato questo tempo indietro ma non ha funzionato mai allora. Ho sempre avuto errori HTTP 404. Solo ora ho capito il problema. Ho avuto i file phpmyadmin in/var/www/nginx-default/phpmyadmin. Quando nginx elabora la direttiva per un file php, cerca all'interno di/var/www/nginx-default/phpmyadmin/phpmyadmin il secondo phpmyadmin che è quello della richiesta. Quello è dalla directory principale, cerca la directory relativa che è di nuovo phpmyadmin. Quindi ho dovuto creare un'altra directory all'interno di phpmyadmin e mettere tutti i file lì. Ora funziona! – ErJab
+1 Ho appena bruciato le ultime 2 ore cercando di capire il problema con il mio nginx.conf e FINALMENTE finì qui ... Sono nuovo di nginx ed è molto frustrante ottenere le cose nel modo giusto ... – dlamotte
Grande risposta. Non mi rendevo conto che Nginx sceglie sempre solo una posizione, anche se più di una partita. Devo ammettere che è stato chiaramente indicato nella documentazione. –