uwsgi始终绑定到80端口。即使配置为不

时间:2018-12-16 00:11:53

标签: sockets binding port uwsgi

我正在尝试在自定义8008端口上启动uwsgi侦听。如security section of uwsgi docs中所述,我使用了uidgid参数来由www-data用户

创建
uwsgi --http-socket :8008 --uid=www-data --gid=www-data

但是我不断遇到错误

bind(): Permission denied [core/socket.c line 769]

解决这个问题后,我发现uwsgi尝试绑定到80端口,即使我选择另一个端口。

经过多次尝试,它似乎始终绑定到80端口。连同我选择的端口。

例如(以超级用户身份运行)

的输出
uwsgi --http-socket :8008

包含

thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket 0 bound to TCP address :80 fd 3
uwsgi socket 1 bound to TCP address :8008 fd 4
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***

具有环境变量配置的另一个示例:

UWSGI_SOCKET=:8009 uwsgi --http-socket :8008

产生

thunder lock: disabled (you can enable it with --thunder-lock)
uwsgi socket 0 bound to TCP address :8009 fd 3
uwsgi socket 1 bound to TCP address :80 fd 4
uwsgi socket 2 bound to TCP address :8008 fd 5
uWSGI running as root, you can use --uid/--gid/--chroot options
*** WARNING: you are running uWSGI as root !!! (use the --uid flag) ***
  • 无论如何配置它:通过cli-params,.yml文件或 环境变量。
  • 无论选择http-sockethttp还是选择socket的参数
  • 无论如何指向该端口:0.0.0.0:8008或仅指向:8008(甚至是UNIX套接字)

它总是尝试绑定到第80个端口,并且如果非root用户这样做会合理地失败

使用uwsgi 2.0.17.1在Docker的Ubuntu 17.10下执行所有操作 尝试从debian软件包和python pip3安装uwsgi-行为相同。

对我所缺少的东西有什么想法吗? 预先感谢。

2 个答案:

答案 0 :(得分:0)

那又怎么样:

uwsgi --http 127.0.0.1:80 --uid=www-data --gid=www-data

答案 1 :(得分:0)

最后,我弄清楚了发生了什么。 我的docker-compose.yml文件配置错误。

environment:
  UWSGI_HTTP_SOCKET: :80

那是问题。