为了账号安全,请及时绑定邮箱和手机立即绑定

将uwsgi配置参数从端口号改为socket文件,需要给uwsgi哪些权限?

将uwsgi配置参数从端口号改为socket文件,需要给uwsgi哪些权限?

哈士奇WWW 2019-03-30 11:35:15
第一遍这么输入的:uwsgi--socket:8001--wsgi-filetest.py没有问题第二遍输入:uwsgi--socketmysite.sock--wsgi-filetest.py就不对了bind():Operationnotpermitted[core/socket.cline230]第二遍用新的参数重新启动uwsgi的时候出上面的报错uwsgi--socketmysite.sock--wsgi-filetest.py--chmod-socket=666这样也不行项目文件夹的读写权限如下:drwxr-xr-x1vagrantvagrant374Feb307:32mysite/显然写权限只属于vagrant用户。那么我是否把整个项目文件夹的写权限全部允许给uwsgi就可以了?UsingUnixsocketsinsteadofportsSofarwehaveusedaTCPportsocket,becauseit’ssimpler,butinfactit’sbettertouseUnixsocketsthanports-there’slessoverhead.Editmysite_nginx.conf,changingittomatch:serverunix:///path/to/your/mysite/mysite.sock;#forafilesocket#server127.0.0.1:8001;#forawebportsocket(we'llusethisfirst)andrestartnginx.RunuWSGIagain:uwsgi--socketmysite.sock--wsgi-filetest.pyThistimethesocketoptiontellsuWSGIwhichfiletouse.Tryhttp://example.com:8000/inthebrowser.Ifthatdoesn’tworkCheckyournginxerrorlog(/var/log/nginx/error.log).Ifyouseesomethinglike:connect()tounix:///path/to/your/mysite/mysite.sockfailed(13:Permissiondenied)thenprobablyyouneedtomanagethepermissionsonthesocketsothatnginxisallowedtouseit.Try:uwsgi--socketmysite.sock--wsgi-filetest.py--chmod-socket=666#(verypermissive)or:uwsgi--socketmysite.sock--wsgi-filetest.py--chmod-socket=664#(moresensible)Youmayalsohavetoaddyourusertonginx’sgroup(whichisprobablywww-data),orvice-versa,sothatnginxcanreadandwritetoyoursocketproperly.It’sworthkeepingtheoutputofthenginxlogrunninginaterminalwindowsoyoucaneasilyrefertoitwhiletroubleshooting.
查看完整描述

2 回答

?
慕妹3146593

TA贡献1820条经验 获得超9个赞

uwsgi需要对你指定的socket文件所在的目录有写权限,这样才能成功创建socket文件。你可以为uwsgi专门建个目录,也可以把socket放到比如/var/run或者/tmp下。
另外不要给不必要的人权限,会是个安全隐患。
                            
查看完整回答
反对 回复 2019-03-30
?
幕布斯6054654

TA贡献1876条经验 获得超7个赞

我为这个问题折腾了一个星期
进程
nginx
-root(master)
-www-data(worker)
uwsgi
-root(emperor)
-www-data(worker)
目录/文件
www/
config/
log/
application/
socket/
uwsgi_sock
nginx和uwsgi都要以root权限启动,在配置文件中设置worker进程的用户
sock文件
要nginx_worker可读r
要uwsgi_worker可读可写rx
sock文件所在目录
要nginx_worker可读r
要uwsgi_worker可新建文件(可读可写)rx
application目录的所有者最好是worker进程的用户
静态目录/文件要nginx_worker可读r
所有目录/文件要uwsgi_worker可读可写rw
log目录/文件
nginx和uwsgi都是以root身份写日志,日志文件的所有者是root
                            
查看完整回答
反对 回复 2019-03-30
  • 2 回答
  • 0 关注
  • 506 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信