使用 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
是否存在一些奇怪的问题是非常有意义的,以防万一。
有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
是否存在一些奇怪的问题是非常有意义的,以防万一。