第一遍这么输入的: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下。另外不要给不必要的人权限,会是个安全隐患。
幕布斯6054654
TA贡献1876条经验 获得超7个赞
我为这个问题折腾了一个星期进程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
添加回答
举报
0/150
提交
取消