我正在尝试在自定义8008端口上启动uwsgi侦听。如security section of uwsgi docs中所述,我使用了uid
和gid
参数来由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) ***
http-socket
或http
还是选择socket
的参数0.0.0.0:8008
或仅指向:8008
(甚至是UNIX套接字)它总是尝试绑定到第80个端口,并且如果非root用户这样做会合理地失败
使用uwsgi 2.0.17.1在Docker的Ubuntu 17.10下执行所有操作 尝试从debian软件包和python pip3安装uwsgi-行为相同。
对我所缺少的东西有什么想法吗? 预先感谢。
答案 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
那是问题。