У меня работает Apache на моем сервере через порт 8080 с NginX, работающим в качестве резервного прокси на порту 80. Я пытаюсь заставить NginX обслуживать статические HTML-файлы для определенных URL-адресов.Я изо всех сил пытаюсь написать конфигурацию NginX, которая делает это.У меня есть конфликтующие директивы, поскольку мои URL-адреса вложены друг в друга.
Вот что я хочу получить:
Один URL-адрес находится на /example/
, и я хочу, чтобы NginXобслуживать статический HTML-файл, расположенный на моем сервере на /path/to/www/example-content.html
, вместо того, чтобы позволить Apache обслуживать страницу для NginX.
Другой URL-адрес находится на /example/images/
, и я хочу, чтобы Apache обслуживал эту страницудля NginX, так же как и для остальной части сайта.
Я настроил свой файл nginx.conf так:
server {
listen 80;
server_name localhost;
# etc...
location / {
proxy_pass http://127.0.0.1:8080/;
}
# etc...
Моя попыткаСлужить статическому файлу в /example/
из NginX было следующим образом:
location /example/ {
alias /path/to/www/;
index example-content.html;
}
Это работает, но это означает, что все, что после URL /example/
(например, /example/images/
), также связано с этим локальным путем.
Я бы хотел использовать вместо этого регулярное выражение, но я не нашел способа подать файл специально, только папку.Я хочу сказать что-то вроде этого:
location ~ ^/example/$ {
alias /path/to/www/example-content.html;
}
Это специально соответствует папке /example/
, но использование такого имени файла является недопустимым синтаксисом.Использование явного location = /example/
в любом случае также не работает.
Если я напишу это:
location ~ ^/example/$ {
alias /path/to/www/;
index example-content.html;
}
location ~ /example/(.+) {
alias /path/to/www/$1;
}
Вторая директива пытается отменить повреждение первой директивы, но этов итоге переопределяет первую директиву и не может обработать статический файл.
Так что я немного растерялся.Любые советы вообще приветствуются!Большое спасибо.