猿问

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

第一遍这么输入的: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就可以了?
UsingUnixsocketsinsteadofports
SofarwehaveusedaTCPportsocket,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.py
ThistimethesocketoptiontellsuWSGIwhichfiletouse.
Tryhttp://example.com:8000/inthebrowser.
Ifthatdoesn’twork
Checkyournginxerrorlog(/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.
哈士奇WWW
浏览 507回答 2
2回答

慕妹3146593

uwsgi需要对你指定的socket文件所在的目录有写权限,这样才能成功创建socket文件。你可以为uwsgi专门建个目录,也可以把socket放到比如/var/run或者/tmp下。另外不要给不必要的人权限,会是个安全隐患。

幕布斯6054654

我为这个问题折腾了一个星期进程nginx-root(master)-www-data(worker)uwsgi-root(emperor)-www-data(worker)目录/文件www/config/log/application/socket/uwsgi_socknginx和uwsgi都要以root权限启动,在配置文件中设置worker进程的用户sock文件要nginx_worker可读r要uwsgi_worker可读可写rxsock文件所在目录要nginx_worker可读r要uwsgi_worker可新建文件(可读可写)rxapplication目录的所有者最好是worker进程的用户静态目录/文件要nginx_worker可读r所有目录/文件要uwsgi_worker可读可写rwlog目录/文件nginx和uwsgi都是以root身份写日志,日志文件的所有者是root
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答