如何将django部署从顶级目录迁移到子目录下(NGINX UWSGI DJANGO)

因为公司网站合并,要将我们的DJANGO项目从IP的顶级目录迁移到域名的二级目录。

以前硬编码的URL可惨了。

还涉及到upload目录,静态目录,websocket目录.

全用{% url %}问题不太大。

nginx分前后两级,uwsgi配置要作相应更改,django的setting需要变量登陆网址。

这样,在正式网站访问二级目录,测试环境仍然可以根目录访问。

nginx_front:

server {
        listen       80;
        server_name  localhost;

        location /prism/ {
            proxy_redirect    off;
            proxy_set_header Host $host;
   	    proxy_set_header X-Real-IP $remote_addr;
	    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_pass http://prism_host;
	    client_max_body_size          1000m;
	    client_body_timeout           5m;
	    proxy_connect_timeout         5m;
	    proxy_read_timeout            5m;
	    proxy_send_timeout            5m;
        }
	location /prism/websocket {
            proxy_redirect    off;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $host;
            proxy_pass http://websocket_host;
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }

    }

nginx_back:

server {
        listen       80;
        server_name  localhost;

        location /prism/ {
            include  uwsgi_params;
            uwsgi_pass  prism_host;
	    uwsgi_param SCRIPT_NAME /prism;
	    uwsgi_modifier1 30;
            index  index.html index.htm;
	    client_max_body_size          1000m;
            client_body_timeout           5m;
            proxy_connect_timeout         5m;
            proxy_read_timeout            5m;
            proxy_send_timeout            5m;
        }
	location /prism/ws_log {
	    proxy_redirect    off;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header Host $host;
            proxy_pass http://websocket_host;
	}

	location ^~ /prism/static {
            	alias /Prism/static;
        }
    }

uwsgi.ini

[uwsgi]
socket = 10.1.1.11:9090
chdir = /Prism
module = settings.wsgi
master = true
vhost = true
no-stie = true
workers = 4
reload-mercy = 10
vacuum = true
max-requests = 1000
limit-as = 512
buffer-sizi = 30000
pidfile = /var/log/prism/uwsgi9090.pid
daemonize = /var/log/prism/uwsgi9090.log
listen=1024

setting.py(生产)--测试的settings.py不用变更

LOGIN_URL = '/prism/accounts/login'
STATIC_URL = '/prism/static/'

然后,大功告成!

 

时间: 2024-07-30 15:56:46

如何将django部署从顶级目录迁移到子目录下(NGINX UWSGI DJANGO)的相关文章

Ubuntu Nginx uwsgi django 初试

/************************************************************************************** * Ubuntu Nginx uwsgi django 初试 * 说明: * 最近打算通过Python搭建一个数据收集的网站,先做一个搭建测试. * * 2016-8-5 深圳 南山平山村 曾剑锋 ***************************************************************

nginx+uwsgi+django中的uwsgi.ini配置问题

问题描述 nginx+uwsgi+django中的uwsgi.ini配置问题 最近配置了nginx+uwsgi+django,其中项目目录下我新建了uwsgi.ini配置文件 [uwsgi] socket = 127.0.0.1:8088 master = true pidfile = /tmp/uwsgi.pid processes = 8 chdir = /home/test daemonize=/home/log/uwsgi.log module = test.wsgi:applicati

CentOS6.5_64下 nginx+uwsgi+Python +多站点环境搭建 python web django 框架

nginx+uwsgi+Python环境介绍: 系统:CentOS6.5_64_mini nginx版本:nginx-1.6.0 python版本:Python2.7.8   第一部分系统设置 1:查看系统内核 #  uname -r 2.6.32-431.el6.x86_64 2:更新内核 #  yum -y install kernel 3:重启系统 #  reboot 4:重启后查看是否启用新内核 #  uname -r 2.6.32-431.20.5.el6.x86_64 5:可以删除老

Nginx+uWSGI+Django+Python环境安装配置详解

一.安装PYTHON2.7.7: [root@hz tools]# pwd /byrd/tools [root@hz tools]# wget https://www.python.org/ftp/python/2.7.7/Python-2.7.7.tgz [root@hz tools]# tar zxf Python-2.7.7.tgz [root@hz tools]# cd Python-2.7.7 [root@hz Python-2.7.7]# ./configure --prefix=/

Django+Nginx+uwsgi的部署

先决条件: nginx(>0.8):uwsgi:django: flup 下载地址: wget http://www.saddi.com/software/flup/dist/flup-1.0.2.tar.gz 安装: sudo apt-get libxml2-dev python-dev flup和django   都是用 python setup.py install tar zxvf uwsgi-0.9.9.2.tar.gz cd uwsgi-0.9.9.2 make -f Makefil

Windows 7中将Django部署到Apache Web Server

 本质上来说, Django 只不过是用 Python 编写的一组类库.用 Django 开发站点就是使用这些类库编写 Python 代码.因此,学习 Django 的关键就是学习如何进行 Python 编程并理解 Django 类库的运作方式. 如果你有Python开发经验,在学习过程中应该不会有任何问题,基本上,Django的代码并 没有使用一些黑色魔法(例如代码中的欺骗行为,某个实现解释或者理解起来十分困难). 对你来说,学习Django就是学习她的命名规则和API. 配置思路 1.配置a

Ubuntu 14.04+Django 1.7.1+Nginx+uwsgi部署教程_python

具体环境: Ubuntu 14.04 Python 2.7.6 Django 1.7.1 Virtualenv name:test Nginx uwsgi 假设 项目文件夹位于 /data/www/ts 设置保存在 ./conf 复制代码 代码如下: virtualenv name = test domain name = example.com django+uwsgi的部署实在是太蛋疼了..网上已有的教程似乎有新版本的兼容问题.最后跑到uwsgi官网上找的教程终于跑通了.. 不过官网的教程似

Nginx + Gunicorn + Django 部署小记

这段时间在用Django开发一个论坛,打算做一个Cocoa开发者社区.这几天在学习如何部署,正好前段时间UCloud送了三个月主机,可以拿来练练手.VPS用的64位的Ubuntu 12.04,折腾两天总算走通了,赶忙记录下来... apt-get 服务器拿到手后第一件事就是更新apt-get,要换源什么的自己搜一大堆.之前因为系统不小心选成了Ubuntu 10.04了,遇到一大堆问题,后来换到12.04一切顺利. apt-get update pip pip还是建议更换源,速度是飞一般的感觉.具

服务器-请教各位大神关于django部署的问题

问题描述 请教各位大神关于django部署的问题 各位大神,我把django部署在阿里云的服务器上面,admin页面一直提示404错误, 解决方案 向各位大神请教个问题 解决方案二: 出现这种情况,通常是文件urls.py中的urlpatterns出了问题,你将 url(r'^admin/', include(admin.site.urls)), 修改成 url(r'^admin$', include(admin.site.urls)), 再测试一下看看