Я попытался настроить nginx в качестве реверсивного прокси с apache / httpd на виртуальном сервере centOS 7. Но я всегда получаю ошибку 403. Сценарий: один виртуальный сервер Centos 7 с двумя доменами (domain1.com и domain2.com). Оба домена имеют разные ip-адреса. domain1.com должен обслуживать контент с nginx веб-сервера, на данный момент с порта 80, позже с SSL от 443. домен2.com должен пересылаться с nginx на httpd и обслуживать контент httpd, на данный момент с порта 8080, позже с SSL из порта 8443. php 7.2 установлен.
nginx конфигурация: домен 1:
server {
listen 80;
root /var/www/domain1.com/html;
index index.php index.html index.htm;
server_name domain1.com www.domain1.com;
location / {
try_files $uri $uri/ =404;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ .php$ {
try_files $uri =404;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
домен2:
server {
listen 80;
root /var/www/domain2.com/html;
index index.php index.html index.htm;
server_name domain2.com www.domain2.com;
location / {
root /var/www/domain2.com/html;
index index.html index.htm;
proxy_pass https://127.0.0.1:8080;
proxy_redirect off;
proxy_read_timeout 1200;
proxy_send_timeout 1200;
proxy_connect_timeout 75;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header Host $host;
}
location ~* ^.+\.(jpg|gif|jpeg|ico|avi|mpeg|mpg|wmv|png|css|js|xml)$ {
root /var/www/domain2.com/html;
}
}
Сервер по умолчанию закомментирован в /etc/nginx/nginx.conf
Конфигурация httpd для domain2.com:
<VirtualHost 127.0.0.1:8080>
<Proxy "unix:/var/run/php-fpm/domain2.com.sock|fcgi://php-fpm">
# we must declare a (any) parameter in here
# or it won't register the proxy ahead of time
ProxySet disablereuse=off
</Proxy>
<FilesMatch ".+\.php$">
SetHandler proxy:fcgi://php-fpm
</FilesMatch>
ServerName www.domain2.com
ServerAlias domain2.com
DocumentRoot /var/www/domain2.com/html
ErrorLog /var/www/domain2.com/log/error.log
CustomLog /var/www/domain2.com/log/requests.log combined
</VirtualHost>
Для порта установлено значение 8080 в /etc/httpd/conf/httpd.conf. SE Linux отключен, для тестирования. / var / www/domain1.com/html и / var / www/domain2.com/html принадлежат root (был установлен по умолчанию при установке httpd) и имеют разрешения на выполнение для пользователя, группы и других. Порт брандмауэра 80 и 8080 открыт.
Проблема в том, что когда я запускаю все службы (httpd, nginx, php -fpm), я просто получаю ошибку 403 при попытке проверить домен2. ком с любым браузером. В журнале nginx написано:
directory index of "/var/www/" is forbidden, client: xx.xx.xx.xx, server: domain2.com, request: "GET / HTTP/1.1", host: "domain2.com"
Поскольку я впервые использую nginx и обращаюсь через прокси, я понятия не имею, что пошло не так. Я искал в Google и пробовал некоторые решения, но ничего не помогло. Может кто-нибудь сказать мне, где я сделал ошибку, пожалуйста, и как решить эту проблему или дать хорошее руководство? Был бы очень благодарен.