Назад | Перейти на главную страницу

Nginx не делает proxy_pass при получении файлов (кроме index.html) из корня документов Apache

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

У меня две машины, одна с обратным прокси-сервером Nginx, а другая - Apache с несколькими виртуальными хостами.

Nginx правильно выполняет proxy_pass, и я могу просматривать index.html, но не любой другой файл, кроме этого.

Я прикрепляю файл conf для хоста nginx (nbte.com.br, (192.168.4.30)) и виртуального хоста apache (SIPREPWWPRESS03.simosa.inet)

NGINX - 083-nbte.conf

server {

listen       80;
server_name  nbte.com.br www.nbte.com.br;

access_log  /var/log/nginx/nbte.access.log;
error_log   /var/log/nginx/nbte.error.log error;

error_page   404 403           /handle404.html;
#error_page   502 503 504  /handle503.html;
error_page   500 502 503 504   /handle500.html;

location = /handle404.html {
     root html/errores-prxy;
}

location = /handle503.html {
     root html/errores-prxy;
}

location = /handle500.html {
     root html/errores-prxy;
}

location = / {
    proxy_pass http://SIPREPWWPRESS03.simosa.inet/;
}

SIPREPWWPRESS03.simosa.inet разрешается до 192.168.16.79

APACHE - 021-nbte.conf

<VirtualHost 192.168.16.79:80>

    ServerName    nbte.com.br
    ServerAlias   nbte.com.br www.nbte.com.br

    DocumentRoot "/apps/htmlsites/nbte"

    ErrorLog "logs/error_nbte.log"
    CustomLog "logs/nbte-access.log" combined

    <LocationMatch "/*">

    </LocationMatch>

    <Directory "/apps/htmlsites/nbte">
            Options +Indexes FollowSymLinks
            #AllowOverride AuthConfig FileInfo
            Order allow,deny
            Allow from all
    </Directory>


    # ModSecurity exceptions
    <LocationMatch "/*">
            SecRuleRemoveById 990011
            SecRuleRemoveById 960017
            SecRuleRemoveById 960015
            SecRuleRemoveById 970013
    </LocationMatch>

У меня почти нет опыта работы с NGINX, я очень новичок в этом, особенно в работе обратного прокси. Тем не менее, я думаю, что это проблема NGINX, поскольку, просматривая файл журнала ошибок, я нахожу строки с ошибками каждый раз, когда запрашивается статический файл:

2015/06/25 12:00:04 [error] 5075#0: *1393 open() "/etc/nginx/html/Informacoes-Financeiras-30-junho-2014-Norte-Brasil-Transmissora-Energia.pdf" failed (2: No such file or directory), client: 192.168.14.1, server: nbte.com.br, request: "GET /Informacoes-Financeiras-30-junho-2014-Norte-Brasil-Transmissora-Energia.pdf HTTP/1.1", host: "nbte.com.br", referrer: "http://nbte.com.br/"


2015/06/25 12:00:04 [error] 5075#0: *1393 open() "/etc/nginx/html/Informacoes-Financeiras-30-junho-2014-Norte-Brasil-Transmissora-Energia.pdf" failed (2: No such file or directory), client: 192.168.14.1, server: nbte.com.br, request: "GET /Informacoes-Financeiras-30-junho-2014-Norte-Brasil-Transmissora-Energia.pdf HTTP/1.1", host: "nbte.com.br", referrer: "http://nbte.com.br/"

Файл Informacoes-Financeiras-30-junho-2014-Norte-Brasil-Transmissora-Energia.pdf находится в корневом каталоге документа Apache / apps / htmlsites / nbte alog с index.html

Спасибо заранее. Любая помощь очень ценится.

это

location = / {
proxy_pass http://SIPREPWWPRESS03.simosa.inet/;
}

Должно быть

location / {
proxy_pass http://SIPREPWWPRESS03.simosa.inet/;
}

Согласно http://wiki.nginx.org/HttpCoreModule#location

location = / {
# соответствует запросу / только.
[конфигурация A]
}

расположение / {
# соответствует любому запросу, так как все запросы начинаются с /, но обычные
# выражения и любые более длинные стандартные блоки будут
# соответствует первым.
[конфигурация B]

Примеры запросов:

/ -> конфигурация A
/index.html -> конфигурация B