Рейтинг:0

Настройка обратного прокси-сервера nginx — 500 Internal Server Error

флаг mp

Я пытаюсь настроить обратный прокси-сервер с помощью nginx 1.20.1 на Fedora Server 35, но все, что я пробовал до сих пор, приводит к ошибке:

[root@proxy nginx]# curl -I -H "Хост: www.example.com" http://10.0.19.1/
HTTP/1.1 500 Внутренняя ошибка сервера
Сервер: nginx/1.20.1
Дата: среда, 10 ноября 2021 г., 19:54:39 ​​по Гринвичу
Тип содержимого: текст/html; кодировка = UTF-8
Соединение: Keep-alive
X-Powered-By: PHP/8.0.12

10.0.19.1 — это адрес сервера nginx, а 10.0.20.1 — это сервер Apache, который я пытаюсь проксировать. Если я запускаю ту же команду curl, что и выше, но использую 10.0.20.1 для URL-адреса, она работает нормально, поэтому я думаю, что безопасно исключить проблемы с подключением между двумя серверами и любые проблемы с хостом Apache. Журнал ошибок nginx пуст.

нгинкс -т Не находит проблем с конфигурационными файлами (воспроизведены ниже). Я также установил для SELinux разрешающий режим, чтобы исключить это как причину.

Я создал простую (не прокси) конфигурацию сервера для тестирования, и она работала нормально, поэтому, будучи новичком в nginx, я чувствую, что это, вероятно, очень тривиальная проблема с моим файлом proxy.conf.

nginx.conf:

пользователь nginx;
рабочие_процессы авто;
error_log /var/log/nginx/error.log предупреждение;
pid /run/nginx.pid;

включить /usr/share/nginx/modules/*.conf;

События {
    worker_connections 1024;
}

http {
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                      '$статус $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log /var/log/nginx/access.log основной;

    отправить файл включен;
    tcp_nopush включен;
    tcp_nodelay включен;
    keepalive_timeout 65;
    типы_хэш_макс_размер 4096;

    включить /etc/nginx/mime.types;
    default_type application/octet-stream;

    включить /etc/nginx/conf.d/*.conf;
}

conf.d/proxy.conf:

сервер {
    слушать 80;
    имя_сервера www.example.com;
    место расположения / {
        прокси_пароль http://10.0.20.1;
    }
}
Richard Smith avatar
флаг jp
На каком сервере работает PHP? Ошибка 500 исходит от PHP, как вы можете видеть в ответе `curl`.
флаг us
Посмотрите `error.log` проксируемого веб-сервера.
user3623992 avatar
флаг mp
Прокси-сервер вообще не получает запросы - журнал ошибок и журнал доступа пусты.
user3623992 avatar
флаг mp
Я предполагаю (знаю, плохо), что заголовок PHP существует просто потому, что я установил nginx из репозитория Fedora, а PHP установлен как зависимость. Я говорю как человек с нулевым опытом работы с nginx.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.