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

简介: 因为公司网站合并,要将我们的DJANGO项目从IP的顶级目录迁移到域名的二级目录。 以前硬编码的URL可惨了。 还涉及到upload目录,静态目录,websocket目录. 全用{% url %}问题不太大。

因为公司网站合并,要将我们的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/'

然后,大功告成!

 

目录
相关文章
|
负载均衡 应用服务中间件 nginx
Django通过Nginx和uWSGI实现负载均衡
Django通过Nginx和uWSGI实现负载均衡
627 0
|
中间件 应用服务中间件 nginx
Nginx+uWSGI+Django原理
Nginx+uWSGI+Django原理
|
监控 Python
什么是WSGI,uwsgi和gunicorn在Python Web部署中起到什么作用?
**WSGI**是Python Web应用与服务器间的标准接口。**uwsgi**是实现WSGI的服务器,用于在不同服务器上高效部署应用。**gunicorn**是高性能的WSGI服务器,提供易用接口和进程管理功能。两者协同工作,作为桥梁连接应用与服务器,支持高并发和生产环境部署,提升性能和可靠性。配置因应用和环境而异,需按需调整。
1032 2
|
存储 Python
uwsgi部署python web项目
uwsgi部署python web项目
742 0
uwsgi部署python web项目
|
tengine Ubuntu 应用服务中间件
憧憬博客Nginx到Tengine的迁移
憧憬博客Nginx到Tengine的迁移
319 0
|
负载均衡 应用服务中间件 Linux
CentOS7下python3+Flask+uWSGI+Nginx+Supervisor环境搭建
在生产环境中通常用uwsgi作为Flask的web服务网关,通过nginx反向代理进行负载均衡,通过supervior进行服务进行的管理。这一套搭下来还是有一些坑要踩,本文通过一个简单的Flask web应用记录了CentOS7下python3+Flask+uWSGI+Nginx+Supervisor环境搭建的全过程,以及一些注意事项,以免遗忘。
675 0
|
域名解析 弹性计算 网络协议
ECS 服务器迁移,(nginx 安装、 ecs 安装组与防火墙设置)
每一次 启动和关闭都要进入 cd /usr/local/nginx/sbin 然后执行对应的命令,是不是感觉很烦呀,来配置个全局环境变量或者一个软连接, 这个是一个2选1的,配置哪个都行个人推荐使用软连接,方便,一行命令解决。
ECS 服务器迁移,(nginx 安装、 ecs 安装组与防火墙设置)
|
应用服务中间件 nginx Python
【Django部署】Nginx+uWsgi部署Django项目
最近需要部署一个Django项目但是不能用宝塔面板!呜呜呜 不能懒人式一键部署了 那就学习一下黑框框部署吧
948 0
【Django部署】Nginx+uWsgi部署Django项目
|
小程序 前端开发 应用服务中间件
nginx,uwsgi get方法请求参数过长怎么办
nginx,uwsgi get方法请求参数过长怎么办
410 0
|
弹性计算 NoSQL 安全
在阿里云Centos7.6中部署nginx1.16+uwsgi2.0.18+Django2.0.4
一直以来想写一篇完整的在阿里云服务器上部署Django服务结合uwsgi,并且通过nginx做反向代理。因为网上的攻略鱼龙混杂,加上技术不断更新,一些年代久远的文章很容易让人在部署的过程中掉坑里,无法自拔,所以本篇文章以最新的阿里云服务器centos7.6为背景,完全阐述如何部署,亲测可用,其实要说难点完全没有,只要按部就班,就不会有问题。
在阿里云Centos7.6中部署nginx1.16+uwsgi2.0.18+Django2.0.4