django centOS8.0 64位 python 3.6.8部署总结

① yum update #升级yum
② yum install python3-devel #安装python开发包
③ python3 -m pip install --upgrade pip #升级pip
④ pip3 install virtualenv 安装虚拟环境
创建虚拟环境 virtualenv 环境名字
退出虚拟环境 deactivate

⑤ 上传代码 可以新建目录也可以直接在home目录 上传本地代码
本地收集静态文件 python manage.py collectstatic
本地导出本机安装的所有模块 pip freeze > requirements.txt 导出模块
上传指定目录代码
上传后在项目根目录创建虚拟环境 进入虚拟环境
服务器 执行安装模块 pip install -r requirements.txt 安装模块

⑥ pip3 install uwsgi 安装uwsgi
conda install -c conda-forge uwsgi
创建uwsgi.ini文件 添加下方{}内内容
{

	#添加配置选择
	[uwsgi]
	#配置和nginx连接的socket连接
	以下三种任选一种, 方式一适合uwsgi和nginx在一台服务器,传输速度最快
		①socket = /www/cs/cs.sock   ---  .sock 文件在启动uwsgi时自动生成
		②socket = 127.0.0.1:8002
		③http = :8002

	#配置项目路径,项目的所在目录
	chdir = /www/crm/
	#配置wsgi接口模块文件路径,也就是wsgi.py这个文件所在的目录名
	wsgi-file = crm/wsgi.py
	#配置启动的进程数
	processes = 4
	#配置每个进程的线程数
	threads = 2
	#配置启动管理主进程
	master = True
	#配置存放主进程的进程号文件
	pidfile = uwsgi.pid
	#配置dump日志记录
	daemonize = uwsgi.log 
	#虚拟环境
	home = /www/cs/cs_venv
	#修改代码后立即重启
	py-autoreload = 1 
	# 退出重启清理文件   一般清除 .pid 文件和 .sock文件
	#vacuum = true
	
}
uwsgi 需要的命令
uwsgi  --ini  uwsgi.ini   启动
uwsgi --stop uwsgi.pid  #停止运行uwsgi
uwsgi --reload uwsgi.pid  #重启uwsgi
ps -ef |grep uwsgi   查看所有
killall -s INT uwsgi  杀掉
uwsgi --http :8003  --ini  uwsgi.ini   指定端口运行
tail -f uwsgi.log 实时查看运行日志 Ctrl+c 是退出tail命令

⑦ yum install nginx #安装Nginx 直接安装到etc/nginx
yum install epel-release #不然nginx 提示找不到
启动nginx:service nginx start
关闭nginx:service nginx stop
重启nginx:service nginx restart
需要的命令 执行命令在 cd /usr/sbin/
./nginx 启动Nginx
nginx -s reopen #重启Nginx
nginx -s reload #重新加载Nginx配置文件,然后以优雅的方式重启Nginx --一般用这种重启
nginx -s stop #强制停止Nginx服务
nginx -s quit #优雅地停止Nginx服务(即处理完所有请求后再停止服务)
nginx -t #检测配置文件是否有语法错误,然后退出
nginx -?,-h #打开帮助信息
nginx -v #显示版本信息并退出
nginx -V #显示版本和配置选项信息,然后退出
nginx -t #检测配置文件是否有语法错误,然后退出
nginx -T #检测配置文件是否有语法错误,转储并退出
nginx -q #在检测配置文件期间屏蔽非错误信息
nginx -p prefix #设置前缀路径(默认是:/usr/share/nginx/)
nginx -c filename #设置配置文件(默认是:/etc/nginx/nginx.conf)
nginx -g directives #设置配置文件外的全局指令
killall nginx #杀死所有nginx进程

Nginx 配置  在 ect/nginx/conf.b/
server {
        server_name  域名;
        location / {
        proxy_pass http://127.0.0.1:8080;#反向代理	不能和uwsgi_pass 冲突
        proxy_set_header Host $host;   #反向代理需要添加请求头,不然服务器获取不到域名
            		---  以上反向代理配置
        include  uwsgi_params;
        uwsgi_pass  127.0.0.1:8083;              
         uwsgi_param UWSGI_SCRIPT wms.wsgi;  
         uwsgi_param UWSGI_CHDIR /home/szty;      
         index  index.html index.htm;
         client_max_body_size 35m;
         uwsgi_send_timeout 1200;
          uwsgi_connect_timeout 1200;	
          uwsgi_read_timeout 1200;
					--  以下时sock文件配置 --
		include uwsgi_params;
   		uwsgi_pass unix:/www/crm2/crm.sock;
        				}
	  	location /media  {
    			alias /www/crm/media;
		}
		location /static {
    			alias /www/crm/static;
		}
	}
	```
	

⑧ 配置https  注意  所有https 只有三个月
	Ⅰ yum install certbot python3-certbot-nginx  安装这个包
	Ⅱ certbot --nginx    配置https
⑨ 
	这部和以上没有关系,只是记录到这里
	清除谷歌浏览器http 跳转htttps问题   chrome://net-internals/#hsts  清除浏览器

以下是配置 wss

只需将 Daphne 指向您的 ASGI 应用程序,并可选择设置绑定地址和端口(默认为 localhost,端口 8000):
 daphne -b 0.0.0.0 -p 8001 项目.asgi:application
 
如果您打算在代理服务器后面运行 daphne,您可以使用 UNIX 套接字在两者之间进行通信:
daphne -u /tmp/daphne.sock 项目.asgi:application

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