对博客子文件夹运行 fastcgi->php,而网站其余部分运行 fastcgi->django

对博客子文件夹运行 fastcgi->php,而网站其余部分运行 fastcgi->django

有点奇怪的问题,但应该很容易解决。我现在正在开发一个 Django 网站,客户也想要一个 Wordpress 博客。因为我们忙得不可开交,还有其他项目,所以我们没有时间建立一个漂亮的 Django 博客,所以我们在一个子文件夹中为他们提供了 Wordpress。

我有丰富的使用 Nginx 的经验,但之前从未做过这样的事情,而且我对正则表达式不是很擅长。

结构如下:

blog (the wordpress blog)
contact
__init__.py
manage.py
settings.py
static (all my static media, htdocs directory)
templates
urls.py
wsgi.py

到目前为止,它非常轻量,只有一个应用程序(联系人应用程序)。我希望域/博客能够访问/blog/文件夹,并将静态媒体视为静态媒体,将 php 文件视为 php 文件,并将它们代理到我的 fastcgi 进程。

当然,我希望其他一切都能与 Django 协同工作,并进入我的 python fastcgi 进程。

需要说明的是,除了这个 nginx 配置之外,其他一切都运行正常。我的所有 fcgi 进程都运行正常。这是我的 nginx 配置:

# David Simons Website
server {
    listen       80;
    server_name  ********;

    root /usr/local/simons/static;

    index index.html index.php;

    location / {
        fastcgi_pass 127.0.0.1:3033;
        fastcgi_param PATH_INFO $fastcgi_script_name;
        fastcgi_param REQUEST_METHOD $request_method;
        fastcgi_param QUERY_STRING $query_string;
        fastcgi_param SERVER_NAME $server_name;
        fastcgi_param SERVER_PORT $server_port;
        fastcgi_param SERVER_PROTOCOL $server_protocol;
        fastcgi_param CONTENT_TYPE $content_type;
        fastcgi_param CONTENT_LENGTH $content_length;
        fastcgi_pass_header Authorization;
        fastcgi_intercept_errors off;
    }

    location ^~ /static/ {
        alias /usr/local/simons/static/;
    }

    location ^~ /blog/ {
        root /usr/local/simons/;
    }

    location ~* \.php$ {
       fastcgi_pass   127.0.0.1:9000;
       include /etc/nginx/fastcgi.conf;
       fastcgi_param  SCRIPT_FILENAME  /usr/local/simons/$fastcgi_script_name;
    }

    location ~* ^.+.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js)$ {
        access_log  off;
        expires 30d;
        break;
    }

}

答案1

你为什么不这样做

location /blog {
    fastcgi_pass
    etc. 
}

相关内容