我只是将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:权限被拒绝)
这绝对是一个用户访问问题,但似乎无法解决。好像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天的搜索,我能够找到解决方案。SELinux不知何故不允许Nginx代理到我的服务器。运行以下命令可解决此问题。
/usr/sbin/setsebool httpd_can_network_connect true