Я использую 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>
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;