关于ZAKER 融媒体解决方案 合作 加入

如何在同一域中使用 Nginx 和 Gunicorn 运行 Django.

CocoaChina 10-14

我有一个在域上运行的 Django 应用 , 例如 www.example.com

我想创建一个 Wordpress 登陆页面 , 并将该登陆页面指向主页 URL www.example.com, 并将 wordpress 管理站点指向 www.example.com/admin 或 www.example.com/wp-admin. 所有其他 URL 应由 Django 提供 .

所以 , 我想要:

> www.example.com-> WordPress 的

> www.example.com/admin 或 www.example.com/wp-admin-> WordPress 的

> Django 提供的所有其他 URL

到目前为止 , 这是我使用 Django 的 Nginx 配置:

upstream django_server { server unix:/path/to/gunicorn.sock fail_timeout=0;}server { listen 80; server_name www.example.com example.com client_max_body_size 4G; access_log /path/to/nginx-access.log; error_log /path/to/nginx-error.log; location /static/ { alias /path/to/static/; } location /media/ { alias /path/to/media/; } location / { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; if ( !-f $request_filename ) { proxy_pass http://django_server; break; } } error_page 500 502 503 504 /500.html; location = /500.html { root /path/to/static/; }}

任何帮助将不胜感激 .

最佳答案

WordPress 使用不确定的 URL 集 , 因此在该 URL 与 Django 可用的 URL 集之间有一个清晰的分区非常重要 . 最好的解决方案是将 WordPress 放在一个子目录中 ( 这很简单 ) .

例如:

server { ... # existing Django configuration ... location = / { return $scheme://$host/blog/; } location ^~ /blog { alias /path/to/wordpress; index index.php; if ( !-e $request_filename ) { rewrite ^ /blog/index.php last; } location ~ /wp-content/uploads/ { expires 30d; } location ~ .php${ if ( !-f $request_filename ) { rewrite ^ /blog/index.php last; } include fastcgi_params; fastcgi_param SCRIPT_FILENAME $request_filename; ... } location ~* . ( js|css|png|jpg|jpeg|gif|ico ) ${ if ( !-f $request_filename ) { rewrite ^ /blog/index.php last; } expires 30d; } }}

您将需要设置站点和家庭 URL. 有关详细信息 , 请参见this document.

有关更多信息 , 请参见this document.

以上内容由"CocoaChina"上传发布 查看原文
相关标签 4g