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

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

Я настроил nginx в качестве основного сервера и использую его для обратного прокси-сервера к Apache на порту :8080. Вот мой файл конфигурации nginx для apache.example.io

#
# apache.example.io
# Testing apache + nginx
#

server {
        listen 80; 

        root /var/www/apache-example-io; 
        index index.php index.html index.htm;

        server_name apache.example.io www.apache.example.io; 

        location / {
            try_files $uri $uri/ /index.php;
        }   

        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;
        }
}

А вот мой файл для Apache VirtualHost

<VirtualHost 127.0.0.1:8080>
    ServerName apache.example.io
    ServerAlias www.apache.example.io
    ErrorLog /var/www/apache-example-io/errror.log
    DocumentRoot /var/www/apache-example-io/public_html
    <Directory "/var/www/apache-example-io/public_html">
       # Order allow,deny
       # Allow from all
       # New directive needed in Apache 2.4.3: 
       # Require all granted
       AllowOverride All
    </Directory>
</VirtualHost>

Они отлично работают, если я иду вhttp://apache.example.io/index Но я получу ошибку 403 nginx, если зайдуhttp://apache.example.io/ Я не уверен, как это исправить, логи ошибок nginx выглядят следующим образом:

2018/03/14 21:25:24 [ошибка] 24730#0:6 индекс каталога "/var/www/" запрещен, клиент: 211., сервер: apache.example.io, запрос: "GET / HTTP/1.1", хост: "apache.example.io"

Поиск в Google и попытки исправить ситуацию оказались безрезультатными :(

решение1

Оказывается, поскольку я просто перенаправлял определенные домены, которые у меня были, напрямую на мой сервер, я не настроил маршрут по умолчанию.

я открыл

/etc/nginx/conf.d/default.conf

И добавил это в:

server {
  listen 80 default_server; 
  return 404;
}

Это заставит все неуказанные подстановочные домены и тому подобное просто перенаправляться на 404. Когда я хочу добавить новый домен, я создаю для него новый файл либо с помощью nginx (приложение NodeJS) и перенаправляю на этот IP, либо создаю виртуальный хост Apache для обслуживания PHP-контента. :)

Связанный контент