ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

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

2019-10-14 02:20:22  阅读:230  来源: 互联网

标签:nginx django wordpress deployment gunicorn


我有一个在域上运行的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.

标签:nginx,django,wordpress,deployment,gunicorn
来源: https://codeday.me/bug/20191014/1911937.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有