Alias в Nginx - помогите разобраться

M2
На сайте с 11.01.2011
Offline
341
5103

Основные сайты в /var/www/sites

phpmyadmin: /usr/share/phpmyadmin

делаю так:


location /phpmyadmin {
internal;
root /usr/share/;
index index.php;
allow all;
}

есть такое:


location ~ \.php$ {
proxy_pass http://127.0.0.1:67;
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;

proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;

proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;

}

в итоге 404 ошибка в ответ на файл, который существует. Не могу понять главное: откуда сервак пытается взять файл.... собирал nginx из сырцов, сейчас перекомпилировал с поддержкой debug, однако в error-файле не пишется информация откуда конкретно была попытка взять файл.

Подскажите или перекиньте на чтиво, как правильно сделать алиас в nginx?

---------- Добавлено 31.01.2015 в 20:28 ----------

а, увидел... путь такой:


/usr/share/phpmyadmin/phpmyadmin/
------------------- Крутые VPS и дедики. Качество по разумной цене ( http://cp.inferno.name/view.php?product=1212&gid=1 ) VPS25OFF - скидка 25% на первый платеж по ссылке выше
Andron_buton
На сайте с 19.07.2007
Offline
270
#1

mark2011, так как скрипты выполняются в локейшине ~ \.php, то надо всего лишь в правильный алиас для картинок:

location ~ ^/phpmyadmin/(.+\.(?:gif|jpe?g|png|ico|css|zip|tgz|gz|rar|bz2|tar|js))$ {
alias /usr/share/phpmyadmin/$1;
}

PS надеюсь в апаче алиас настроен?

Glueon
На сайте с 26.07.2013
Offline
172
#2

Зачем вам internal location?

Делайте как написал Andron_buton, только по-моему alias здесь не обязателен:


location ~ ^/phpmyadmin/(.+\.(?:gif|jpe?g|png|ico|css|zip|tgz|gz|rar|bz2|tar|js))$ {
root /usr/share/;
}

Также если код расположить после "\.php" можно и вовсе обойтись:


location ~ ^/phpmyadmin/.+ {
root /usr/share;
}

Либо весь трафик (и php и статику) пустить на Apache, который со своим alias-ом разберется сам. PHPMyadmin явно особой нагрузки не создаст и его можно проксировать целиком. Никто не пострадает.

Есть много IP-сетей в аренду под прокси, парсинг, рассылки (optin), vpn и хостинг. Телега: @contactroot ⚒ ContactRoot команда опытных сисадминов (/ru/forum/861038), свой LIR: сдаем в аренду сети IPv4/v6 (/ru/forum/1012475).
Andron_buton
На сайте с 19.07.2007
Offline
270
#3
Glueon:
Также если код расположить после "\.php" можно и вовсе обойтись:
Код:

location ~ ^/phpmyadmin/.+ {
root /usr/share;
}

Так нельзя, скрипты не будут выполняться, а будут отдаваться как текст.

Glueon
На сайте с 26.07.2013
Offline
172
#4
Glueon:
Также если код расположить после "\.php" можно и вовсе обойтись

Т.е.:


location ~ \.php$ {
proxy_pass http://127.0.0.1:67;
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;

location ~ ^/phpmyadmin/.+ {
root /usr/share;
}

Если это регулярные выражения приоритет у них в порядке следования.

M2
На сайте с 11.01.2011
Offline
341
#5

ребят, я решил вопрос, тема более не актуальна.

Andreyka
На сайте с 19.02.2005
Offline
822
#6

А как решил?

Не стоит плодить сущности без необходимости

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий