Ustawiłem Nginx jako mój główny serwer internetowy i mam za sobą dwa serwery oparte na Mochiweb. Niektóre żądania są odwracane do tych dwóch serwerów. teraz, chcę uzyskać dostęp do phpmyadmin (zlokalizowanego w/var/www/nginx-default/phpMyAdmin) za pomocą nginx, ale ciągle mówi się, że nie znaleziono błędu 404. Czy tu brakuje czegoś oczywistego?Dyrektywa lokalizacyjna Nginx wydaje się nie działać. Czy czegoś brakuje?
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;
}
}
Dzięki za odpowiedź! Próbowałem tego dawno temu, ale wtedy nigdy nie działało. Zawsze miałem błędy HTTP 404. Dopiero teraz zrozumiałem problem. Miałem pliki phpmyadmin w/var/www/nginx-default/phpmyadmin. Kiedy nginx przetwarza dyrektywę dla pliku php, wyszukuje wewnątrz/var/www/nginx-default/phpmyadmin/phpmyadmin drugi phpmyadmin będący tym z żądania. To z katalogu głównego, szuka katalogu względnego, który jest ponownie phpmyadmin. Musiałem więc stworzyć inny katalog wewnątrz phpmyadmin i umieścić tam wszystkie pliki. Teraz działa! – ErJab
+1 Właśnie spłonęły ostatnie 2 godziny próbując dowiedzieć się problemu z moim nginx.conf i WRESZCIE skończyły się tutaj ... Jestem nowy dla nginx i to jest bardzo frustrujące, aby wszystko było w porządku ... – dlamotte
Świetnie odpowiedź. Nie zdawałem sobie sprawy, że Nginx zawsze wybiera tylko jedną lokalizację, nawet jeśli pasuje więcej niż jedna. Muszę przyznać, że zostało to jasno określone w dokumentacji. –