Подтвердить что ты не робот

Разрешено локальное разрешение прокси-сервера nginx

Я просто настраиваю nginx как веб-сервер, который прокси-серверы напрямую подключается к серверу приложений tomcat. Когда пользователь подключается к моему сайту, Nginx должен перенаправить запрос на порт 8080, где работает сервер приложений tomcat.

Я делаю все на экземпляре amazon ec2, на котором работает Redhat 7.

До сих пор я так:

nginx.conf file

user nginx;
worker_processes  1;

server {
 listen 80;
 server_name mydomainname;
 access_log  /var/log/nginx/example.log;
 error_log /var/log/nginx/example.error.log;

 location / {
  proxy_pass http://localhost:8080/example/;
 }
}

Ошибка, которую я получаю, (13: Permission denied) при подключении к восходящему потоку, клиент

Это определенно проблема доступа пользователей, но, похоже, не может понять это. Кажется, что nginx не имеет доступа к перенаправлению на порт 8080.

Кроме того, nginx работает под myuser

root     15736   nginx: master process   /usr/sbin/nginx
myuser  15996   nginx: worker process
root     16017   grep --color=auto nginx

Я попытался поставить 127.0.0.1 вместо localhost, но не повезло. Я также попытался сменить пользователя в nginx.conf на myuser, но не повезло. Когда я подключаюсь непосредственно к серверу приложения, у меня нет проблем.

Example URL of my tomcat http://mydomain:8080/example/

Заранее спасибо.

4b9b3361

Ответ 1

Через 2 дня поиска я смог найти решение. Как-то SELinux не разрешал Nginx прокси-серверу на моем сервере. Выполнение приведенной ниже команды устранило проблему.

 /usr/sbin/setsebool httpd_can_network_connect true 

Ответ 2

вы можете перейти к этой проблеме: вопросы о стекеповерхности 23443398

В основном это проблема разрешения для сокета:

Установите разрешения для unix-сокета, если он используется. В Linux разрешения на чтение и запись должны быть установлены, чтобы разрешать подключения с веб-сервера...