Прокси Nginx не передает URL в структуре контроллера / действия в Apache2
Я использую Nginx в качестве прокси с Apache2 позади него. Текущий конфиг работает, и я могу получить доступ к сайту. Тем не менее, приложение PHP построено на Zend Framework 2 и использует URL-адреса в / controller / action / structure, и они не передаются в Apache2. Это приводит к тому, что каждая ссылка с домашней страницы на подстраницы не работает и перенаправляет на нашу страницу "Страница не найдена". URL, переданный в Apache2, - это /index.php вместо /controllerX/actionY
Конфигурация Nginx (VirtualHost)
server {
listen 80;
root /var/www/talentina_dev/talentina-alpha-temp/public/;
index index.php index.html index.htm;
server_name dev-aws.talentina.com;
location / {
try_files $uri $uri/ /index.php;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}
location ~ \.php$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
}
location ~ /\.ht {
deny all;
}
}
Требование состоит в том, чтобы исходный URL-адрес был "/", чтобы попасть на домашнюю страницу, и я думаю, что он покрыт структурой location / {..}. Однако, поскольку я очень новичок в этом, я открыт для предложений.
Большое спасибо заранее!
ОБНОВЛЕНИЕ Добавление файла VirtualHost из Apache2
<VirtualHost 127.0.0.1:8080>
ServerAdmin ...
ServerName dev-aws.talentina.com
ServerAlias dev-aws.talentina.com
DocumentRoot /var/www/talentina_dev/talentina-alpha-temp/public/
php_value error_reporting 6135
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
<Directory /var/www/talentina_dev/talentina-alpha-temp/public>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
1 ответ
Try_files строки тормозных URL. Вам не нужно это с прокси - удалите его. И вам, вероятно, этот блок тоже не нужен:
location ~ \.php$ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;