Я использую apache в качестве внутреннего сервера и nginx во внешнем интерфейсе. Apache прослушивает порт 8080, а nginx - порт 80. Что я делаю, так это корневую точку для общей папки для каждого виртуального хоста:
<VirtualHost *:8080>
ServerAdmin webmaster@localhost
ServerName site.com
ServerAlias site.com *.site.com
DocumentRoot /var/www/site.com/public
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/site.com/public/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
А вот конфиг nginx:
server {
listen 80;
access_log /var/log/nginx.access.log;
error_log /var/log/nginx.error.log;
root /var/www/site.com/public;
index index.php index.html;
server_name site.com *.site.com;
location / {
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_pass http://127.0.0.1:8080;
proxy_cache one;
proxy_cache_use_stale error timeout invalid_header updating;
proxy_cache_key $scheme$host$request_uri;
proxy_cache_valid 200 301 302 20m;
proxy_cache_valid 404 1m;
proxy_cache_valid any 15m;
}
}
location ~ /\.(ht|git) {
deny all;
}
}
Проблема в том, что Apache прекрасно разрешает домен (site.com:8080)
, но вместо этого nginx показывает 502 Неверный шлюз (site.com:80)
. Я попытался посмотреть error_log и access_log, но не могу найти подсказки для почему nginx не работает.
РЕДАКТИРОВАТЬ: Проблема заключалась в том, что я не смог включить эту изолированную конфигурацию для nginx.
От имени какого пользователя работает nginx? Возможно, что пользователь, под которым работает nginx, не может получить доступ к рассматриваемой папке.