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

时间:2014-08-11 03:23:36

标签: tomcat nginx amazon-ec2 proxy webserver

我只是将nginx设置为直接代理tomcat应用服务器的网络服务器。 当用户连接到我的网站时,Nginx应该将请求重定向到运行tomcat app服务器的端口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:权限被拒绝)

这绝对是一个用户访问问题,但似乎无法弄明白。看起来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/

提前谢谢你。

2 个答案:

答案 0 :(得分:65)

经过2天的搜索,我找到了解决方案。不知怎的,SELinux不允许Nginx代理我的服务器。运行以下命令修复了问题。

 /usr/sbin/setsebool httpd_can_network_connect true 

答案 1 :(得分:0)

您可以继续查看此问题: stackoverflow questions 23443398

基本上这是套接字权限的问题:

设置unix套接字的权限(如果使用)。在Linux中,读/写 必须设置权限才能允许来自Web服务器的连接...