[求助]nginx 托管 django 的静态文件,总是 403,按照其它的教程来修改配置、权限,自己也尝试了好多次,问题还是依旧,看看这边有没有能够提供解决思路的朋友,谢了 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
fanfe
V2EX    问与答

[求助]nginx 托管 django 的静态文件,总是 403,按照其它的教程来修改配置、权限,自己也尝试了好多次,问题还是依旧,看看这边有没有能够提解决思路的朋友,谢了

  •  
  •   fanfe 2017-09-13 17:14:30 +08:00 4667 次点击
    这是一个创建于 2950 天前的主题,其中的信息可能已经有所发展或是发生改变。
    关于这个问题我在 stackoverflow 问了,但是得到的回复并不能解决问题
    https://stackoverflow.com/questions/46169081/nginx-serving-django-static-and-media-files-403-forbidden

    下面我描述一下配置和 log,希望能够得到解答,谢谢啦。

    nginx.conf 配置:
    #user www-data;
    user me;
    worker_processes 4;
    pid /run/nginx.pid;
    ....

    站点对应的 nginx 配置:
    server {
    add_header Access-Control-Allow-Origin *.mysite.com;
    add_header Access-Control-Allow-Headers X-Requested-With;
    add_header Access-Control-Allow-Methods GET,POST,OPTIONS;
    listen 80;
    server_name mysite.com;
    access_log /var/log/nginx/hitek.access.log;
    error_log /var/log/nginx/hitek.error.log;

    location / {
    proxy_pass http://127.0.0.1:8010;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location ~ ^/media/ {
    #alias /var/www/html/mysite/media/;
    alias /home/me/website/mysite/media/;
    #alias /home/www-data/website/website/mysite/media/;
    expires 1h;
    access_log off;
    }

    location ~ ^/static/ {
    #alias /var/www/html/mysite/collected_static/;
    alias /home/me/website/mysite/collected_static/;
    #alias /home/www-data/website/website/mysite/collected_static/;
    expires 1h;
    access_log off;
    include /etc/nginx/mime.types;
    }
    }

    ls -alt 查看文件夹及权限,
    drwxrw-rw- 8 me me 4096 Sep 11 14:43 mysite
    drwxr-xr-x 6 me me 4096 Sep 8 14:30 ..
    drwxrw-rw- 4 me me 4096 Sep 7 11:41 .

    各层目录除了 /home 为 root 用户外,后续路径用户均为 me

    error log 大致表现为以下:
    ...
    directory index of "/home/me/website/mysite/collected_static/" is forbidden
    ...
    24 条回复    2017-09-14 14:00:19 +08:00
    zhuyao
        1
    zhuyao  
       2017-09-13 17:26:36 +08:00
    要不给 nginx 赋予 root 的权限试一试
    fanfe
        2
    fanfe  
    OP
       2017-09-13 17:29:46 +08:00
    @zhuyao 这个我试过了,同时也给了 chown -R root :root /home && chmod -R 777 或 766 home 但就是不行,不知道我又没有什么其它疏漏,反正就不行,我就觉得好奇怪。
    eecjimmy
        3
    eecjimmy  
       2017-09-13 18:10:51 +08:00 via iPhone   1
    autoindex on;//自动显示目录
    millson
        4
    millson  
       2017-09-13 19:11:35 +08:00 via iPhone
    selinux ?
    jackysc
        5
    jackysc  
       2017-09-13 19:20:59 +08:00
    系统呢? CentOS 好像还需要关闭 SELINUX
    akira
        6
    akira  
       2017-09-13 19:21:03 +08:00
    试试在那 media 和 collected_static 两个 目录下创建个空白的 index.html , 然后配置默认 index 为 index.html,看看什么情况.
    zhuyao
        7
    zhuyao  
       2017-09-13 20:03:54 +08:00
    @fanfe 你的 nginx 里面的配置怪怪的,server{
    root:xxxxxxx
    } 为啥没有
    fanfe
        8
    fanfe  
    OP
       2017-09-13 20:42:28 +08:00 via Android
    @eecjimmy 这个要试一下
    fanfe
        9
    fanfe  
    OP
       2017-09-13 20:47:52 +08:00 via Android
    @millson @jackysc debian 没有这个问题吧
    fanfe
        10
    fanfe  
    OP
       2017-09-13 20:49:28 +08:00 via Android
    @akira 这个没试过,看到这感觉应该是 php 那类才用到吧
    fanfe
        11
    fanfe  
    OP
       2017-09-13 20:50:25 +08:00 via Android
    @zhuyao 我试过了 这样会导致路径错误变成 404
    ipwx
        12
    ipwx  
       2017-09-13 20:52:40 +08:00   1
    mysite 的权限不对。不能 rwxrw-rw-,要 rwxr-xr-x
    ipwx
        13
    ipwx  
       2017-09-13 20:53:25 +08:00   1
    要让一个目录下面的文件能读取,它得有 x 权限。有没有 w 无所谓。
    ipwx
        14
    ipwx  
       2017-09-13 20:54:14 +08:00
    然后 debian 下面的 nginx 运行账号是 www-data,而不是你 me。它没有读取权限,所以显示不了。
    isbase
        15
    isbase  
       2017-09-14 00:44:27 +08:00 via Android
    需要有读和执行的权限 755
    Ge4Los
        16
    Ge4Los  
       2017-09-14 00:54:57 +08:00
    mysite 这个目录要有 x 的权限。 这样才能读目录下面的文件。
    fanfe
        17
    fanfe  
    OP
       2017-09-14 08:20:09 +08:00
    @akira @eecjimmy 按照你们的来设置,结果 index.html 被重复重定向了,变成这样 ...b77eae605b92a47.png/index.html/index.html/index.html/index.html/index.html/index.html/index.html/index.html/index.html/index.html/index.html/index.html/index.html/index.html/index.html/index.html/index.html/index.html/index.html/index.html/
    fanfe
        18
    fanfe  
    OP
       2017-09-14 08:21:10 +08:00
    @ipwx @isbase @Ge4Los 递归修改了还是不行,运行用户也改成默认的了。
    hzlez
        19
    hzlez  
       2017-09-14 09:16:30 +08:00
    我用的 fedora, 过去我遇到过这样的问题的时候,就是因为 selinux.
    我的解决办法是: `chcon -Rt httpd_sys_content_t /path/to/www`
    具体检查操作可以参考一下下面的链接。
    [参考链接: https://stackoverflow.com/questions/22586166/why-does-nginx-return-a-403-even-though-all-permissions-are-set-properly#answer-26228135]
    fanfe
        20
    fanfe  
    OP
       2017-09-14 10:02:19 +08:00
    @hzlez debian 默认压根没装,也操作不下去。
    ipwx
        21
    ipwx  
       2017-09-14 10:05:55 +08:00
    @fanfe /home 和 /home/me 也必须 r-x。
    fanfe
        22
    fanfe  
    OP
       2017-09-14 13:43:54 +08:00
    @ipwx
    / => drwxr-xr-x 4 root root 4096 Sep 12 09:33 home
    /home => drwxr-xr-x 6 me me 4096 Sep 8 14:30 me
    /home/me => drwxr-xr-x 4 me me 4096 Sep 7 11:41 website
    后面的权限也是相同的。
    ipwx
        23
    ipwx  
       2017-09-14 13:47:56 +08:00
    如果你不用 location ~ ^/static/ 而是用 location /static/ 呢?当然这是玄学。
    fanfe
        24
    fanfe  
    OP
       2017-09-14 14:00:19 +08:00
    @ipwx 还真的就可以了=__=,还发现可能之前就解决但是因为浏览器缓存在作怪导致一直重复载入显示错误的页面。在此感谢以上各位。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2705 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 07:42 PVG 15:42 LAX 00:42 JFK 03:42
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86