django2.27 项目部署 nginx+uwsgi

django2.27 项目部署 nginx+uwsgi_第1张图片
上图有误,server1 和 server2 都是8080端口。

--------1.
在server0里,配置nginx config 文件:

upstream uwsgi负载均衡名字 {
	server server1的ip:port; 假设这里均为80 port
	server server2的ip:port;
}

server {
        listen       80;
        server_name  server0的IP;  # 添加ip
		# = 表示精确匹配
		location = /{
			proxy_pass server3的IP;
			}
		
		location / {
			include uwsgi_params;
			uwsgi_pass uwsgi负载均衡名字;
			}
		###其他代码不用管
}
    

--------2.
上图是用户访问流程图。因为要用到uwsgi,所以server1上需要安装它。server1上有djiango project code。

pip install uwsgi

项目部署时,需要把django 项目代码里的settings.py文件下两个参数改一下:

DEBUG=FALSE
ALLOWED_HOSTS=[*] 

然后创建一个名字为uwsgi.ini的文件,位于项目文件夹下,粘贴如下内容:

[uwsgi]
#使用nginx连接时使用
socket=127.0.0.1:8080
#直接做web服务器使用
#http=127.0.0.1:8080
#项目目录
chdir=/Users/sylvia/wokplace/dailyfresh
#项目中wsgi.py文件的目录,相对于项目目录
wsgi-file=dailyfresh/wsgi.py
processes=4
threads=2
master=True
pidfile=uwsgi.pid
daemonize=uwsgi.log
virtualenv=/Users/sylvia/.virtualenvs/env1

#home = /Users/sylvia/.virtualenvs/env1  # 如果在虚拟机安装了uwsgi需要添加这一句,否者会在uwsgi.log里出现报错而不能启动

启动uwsgi: uwsgi –-ini 配置文件路径 例如:uwsgi –-ini uwsgi.ini
停止uwsgi指令为: uwsgi --stop uwsgi.pid路径 例如:uwsgi –-stop uwsgi.pid

配置nginx config文件:

server {
        listen       80;  #假设server0里用的是80端口
        server_name  当前server ip:port;
		location / {
			include uwsgi_params;
			uwsgi_pass 当前server的ip:8080;
}


在server1和2 里任意创建文件夹,如路径/Users/sylvia/Desktop/dailyfresh1_celery/static/,
然后在django settings.py中配置收集静态文件路径:

STATIC_ROOT=/Users/sylvia/Desktop/dailyfresh1_celery/static/;

执行命令收集静态文件:

python manage.py collectstatic

--------3.
在server3里,配置nginx config 文件:

server {
        listen       80;
        server_name  server3 ip:port;
       
        location /static {
            alias /Users/sylvia/Desktop/dailyfresh1_celery/static/;
        }

如上配置完ngin需要重启:

sudo /usr/local/nginx/sbin/nginx -s stop
sudo /usr/local/nginx/sbin/nginx

你可能感兴趣的:(django,python,nginx,django,django部署,python)