我只是将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/
先谢谢你了。
3条答案
按热度按时间toe950271#
经过两天的搜索,我找到了解决方案。不知何故,SELinux不允许Nginx代理我的服务器。运行下面的命令解决了这个问题。
感谢@DaveTrux添加-P标志
kadbb4592#
你可以看看这个问题:stackoverflow questions 23443398
基本上是socket的权限问题:
7vhp5slm3#
我的NGINX代理80到8080(tomcat)错误“crit 37000#37000 132连接到8080失败13连接到上游客户端服务器请求“GET /favicon.ico HTTP/1.1”时权限被拒绝”
我禁用SELinux:
成功了!