Обратный прокси-сервер Nginx Apache перенаправляет в неправильный каталог

372
MattR

Я следовал этому руководству, чтобы настроить Nginx с обратным прокси для Apache. У меня проблемы с получением моего доменного имени для перенаправления на правильную страницу. У меня также есть несколько поддоменов, и некоторые из них перенаправляют правильно, а другие нет. У меня есть следующая структура файлов, где я размещаю файлы моего сайта:

/var/www/ html index.php mysite.com public_html index.php sub1 public_html index.php sub2 public_html index.html 

ПРИМЕЧАНИЕ. У меня более двух поддоменов, но для простоты я перечислил только два. Вы можете предположить, что остальные подчиняются той же базовой структуре, что и один или другой из поддоменов, перечисленных здесь. В каждом каталоге больше файлов, чем просто index.php / index.html.

Мне кажется, что серверные блоки, которые работают, имеют index.html, а те, которые не работают, имеют index.php.

Когда я говорю, что они «не работают», я имею в виду, что он перенаправляет /var/www/html/index.phpвместо правильного файла index.php в соответствующий каталог сервера.

Например, если я захожу на mysite.com, вместо того, чтобы отвезти меня туда /var/www/mysite.com/public_html/index.php, он меня и заберет var/www/html/index.php.

Точно так же, когда я посещаю sub1.mysite.com, меня посещают var/www/html/index.php.

Когда я посещаю sub2.mysite.com, я попадаю на var/www/sub2/public_html/index.html.

Я думаю, что это как-то связано с конфигурацией на шаге 11, где файлы PHP перенаправляются в Apache, но я не могу понять, как перенаправить их в правильный каталог.

Вот мои конфигурационные файлы (с субтитрами PII):

/ И т.д. / Nginx / сайты Недоступные / апач

server { listen 80; server_name mysite.com www.mysite.com; root /var/www/mysite.com/public_html; index index.php index.htm index.html;  location / { try_files $uri $uri/ /index.php; }  location ~ \.php$ { proxy_pass http://<server-ip>:8080; 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_set_header X-Forwarded-Proto $scheme; }  location ~ /\.ht { deny all; } }  server { listen 80; server_name sub1.mysite.com www.sub1.mysite.com; root /var/www/sub1/public_html; index index.php index.htm index.html;  location / { try_files $uri $uri/ /index.php; }  location ~ \.php$ { proxy_pass http://<server-ip>:8080; 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_set_header X-Forwarded-Proto $scheme; }  location ~ /\.ht { deny all; } }  server { listen 80; server_name sub2.mysite.com www.sub2.mysite.com; root /var/www/sub2/public_html; index index.php index.htm index.html;  location / { try_files $uri $uri/ /index.php; }  location ~ \.php$ { proxy_pass http://<server-ip>:8080; 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_set_header X-Forwarded-Proto $scheme; }  location ~ /\.ht { deny all; } } 

/etc/apache2/sites-available/mysite.com.conf

<VirtualHost *:8080> ServerName mysite.com ServerAlias www.mysite.com DocumentRoot /var/www/mysite.com/public_html <Directory /var/www/mysite.com/public_html> AllowOverride All </Directory> </VirtualHost> 

/etc/apache2/sites-available/sub1.conf

<VirtualHost *:8080> ServerName sub1.mysite.com ServerAlias www.sub1.mysite.com DocumentRoot /var/www/sub1/public_html <Directory /var/www/sub1/public_html> AllowOverride All </Directory> </VirtualHost> 

/etc/apache2/sites-available/sub2.conf

<VirtualHost *:8080> ServerName sub2.mysite.com ServerAlias www.sub2.mysite.com DocumentRoot /var/www/sub2/public_html <Directory /var/www/sub2/public_html> AllowOverride All </Directory> </VirtualHost> 

Я создал символическую ссылку между /etc/apache2/sites-available/и /etc/apache2/sites-enabled/так же как между /etc/nginx/sites-available/и /etc/nginx/sites-enabled/как описано в руководстве.

0

0 ответов на вопрос

Похожие вопросы