CentOS 7 nginx httpd запрещено / var / www - PullRequest
0 голосов
/ 22 апреля 2020

Я попытался настроить 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 и пробовал некоторые решения, но ничего не помогло. Может кто-нибудь сказать мне, где я сделал ошибку, пожалуйста, и как решить эту проблему или дать хорошее руководство? Был бы очень благодарен.

1 Ответ

0 голосов
/ 22 апреля 2020

С помощью nginx -T я нашел скрытый файл конфигурации для виртуального хоста. Удалил и все заработало. Благодаря Ричарду Смиту

...