nginx代理服务器localhost权限被拒绝

wsxa1bj1  于 2023-10-17  发布在  Nginx
关注(0)|答案(3)|浏览(243)

我只是将nginx设置为直接代理到tomcat应用服务器的web服务器。当用户连接到我的网站时,Nginx应该将请求重定向到tomcat应用服务器运行的8080端口。
我在运行Redhat 7的Amazon EC2示例上执行所有操作。
到目前为止,我得到的是:

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)while connecting to upstream,client**
这肯定是一个用户访问问题,但似乎无法弄清楚。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/

先谢谢你了。

toe95027

toe950271#

经过两天的搜索,我找到了解决方案。不知何故,SELinux不允许Nginx代理我的服务器。运行下面的命令解决了这个问题。

/usr/sbin/setsebool -P httpd_can_network_connect true

感谢@DaveTrux添加-P标志

kadbb459

kadbb4592#

你可以看看这个问题:stackoverflow questions 23443398
基本上是socket的权限问题:

  • 设置unix socket的权限(如果使用了)。在Linux中,必须设置读/写权限才能允许从Web服务器进行连接. *
7vhp5slm

7vhp5slm3#

我的NGINX代理80到8080(tomcat)错误“crit 37000#37000 132连接到8080失败13连接到上游客户端服务器请求“GET /favicon.ico HTTP/1.1”时权限被拒绝”
我禁用SELinux:

  1. sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
  2. grubby --update-kernel ALL --args selinux=0
  3. init 6 # restart
    成功了!

相关问题