社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  NGINX

第三个域请求上的nginx和gunicorn错误403

AleMal • 6 年前 • 1215 次点击  

在我的nginx服务器中,我将nginx.conf设置为与gunicorn(和django应用程序)一起使用:

server {
    server_name  *.mytest.io;
    root         /var/www;
}

server {
    listen       80 default_server;
    listen       [::]:80 default_server;
    server_name  ~^(?<account>.+)\.mytest\.io$;
    root         /var/www;


#add_header Test $account;  

 # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;

    location /static/ {
        alias /var/www/web/core/frontend/static/;
    }       

    location / {
        proxy_pass http://127.0.0.1:8000;
        proxy_set_header X-Forwarded-Host $server_name;
        proxy_set_header X-Real-IP $remote_addr;
        #add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"';
        add_header P3P $account;
    }

现在,如果我调用mytest.io,一切都完成了,但是如果我调用demo.mytest.io或demo1.mytest.io(我已经在DNS演示和demo1上配置了服务器IP)nginx返回错误“403禁止”

[错误]27554 0:/27目录索引/var/www/“被禁止

为什么主域没有问题,子域请求在同一位置上出现错误?(/var/www)

提前谢谢

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/39021
 
1215 次点击  
文章 [ 1 ]  |  最新文章 6 年前
miknik
Reply   •   1 楼
miknik    6 年前

您有两个服务器块。demo.mytest.io或demo1.mytest.io的请求将与 server_name 本条中的指令:

server {
    server_name  *.mytest.io;
    root         /var/www;
}

你没有 index try_files 指令,因此不带URI路径的请求被nginx解释为请求根目录的目录列表。

你没有 autoindex 指令,默认情况下,此值设置为 off 这会阻止列出目录内容,因此您的请求被拒绝。

对mytest.io的请求与 服务器名称 指令,但添加 default_server listen 第二个块中的指令意味着nginx将使用这个块来处理与任何其他服务器块不匹配的任何请求,以便请求在这里着陆。

第二个块有一组工作指令,所以它可以工作。