使用 Tarantool http 作为 Nginx 上游服务器 - 出现错误 13:权限被拒绝

Using Tarantool http as Nginx upstream server - got error 13: Permission denied

有Nginx yum 安装 Nginx

有 Tarantool + Cartridge

nginx.conf

upstream tarantool_httpd {
server 172.16.72.18:8082 max_fails=1 fail_timeout=15s;
keepalive 32;   
}

  server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;


        location / {
        }

    location = /redirections
    {
        proxy_pass http://tarantool_httpd;
    }
    location = /admin
    {
        proxy_pass http://tarantool_httpd;
    }


        error_page 404 /404.html;
        location = /404.html {
        }

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }

当我请求 URL http://172.16.72.18/admin 时,我在 access.log 中收到错误 502,在 Nginx error.log

中收到错误
connect() to 172.16.72.18:8082 failed (13: Permission denied) while connecting to upstream, client: 172.16.72.32

似乎启用了 SELinux。

sestatus检查它并用sudo setenforce 0

暂时禁用

如果问题得到解决,您可以通过编辑 /etc/selinux/config 并将 SELINUX 设置为 disabled

来永久禁用它

如果你不想完全禁用 SELinux(我不推荐,除非你真的需要这样做),使用这个命令应该足以允许 nginx与后端的连接数:

sudo setsebool -P httpd_can_network_connect on

然而,您可能会遇到其他一些 SELinux 不兼容问题,因此在进一步处理之前检查 sudo setenforce 0 是否存在一些奇怪的问题是非常有意义的,以防万一。