Назад | Перейти на главную страницу

Запуск 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, переходя к моему процессу fastcgi на python.

Для записи, все работает правильно, кроме этой конфигурации 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;
    }

}

Почему бы тебе просто не сделать

location /blog {
    fastcgi_pass
    etc. 
}