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

标签 tomcat nginx amazon-ec2 proxy webserver

我只是将 nginx 设置为直接代理到 tomcat 应用程序服务器的网络服务器。 当用户连接到我的网站时,Nginx 应该将请求重定向到运行 tomcat 应用程序服务器的端口 8080。

我正在运行 Redhat 7 的亚马逊 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 代替本地主机,但没有成功。 我也尝试将 nginx.conf 中的用户更改为 myuser,但仍然没有成功。 当我直接连接到应用程序服务器时,我没有任何问题。

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

提前致谢。

最佳答案

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

 /usr/sbin/setsebool -P httpd_can_network_connect true 

感谢@DaveTrux 添加 -P 标志

关于tomcat - nginx 代理服务器 localhost 权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25235453/

相关文章:

tomcat - 为什么 Chef 没有正确地重新加载我的 Nginx 和 Tomcat 文件?

ssl - letsencrypt/certbot - 多个身份验证器,一个证书

amazon-web-services - 如何以编程方式创建ami实例?

java - 将 Eclipse 替换为 Sublime Text 2/3 for java

tomcat - 多个 Tomcat 实例 : Port already in use: 8086 (tried checking server. xml)

java - 如何从 tomcat 提供静态内容

java - 在 tomcat 服务器中添加 Profiler 脚本

python - 在 Debian 上使用 Python 3 找不到 mkdir 命令

http - 转到 IRIS http frameowrk,我无法正确路由

django - 如何在 Amazon EC2 托管上设置 Django 网站?