Django——项目部署上线

1、前期准备工作:

<1>、上线前的检查工作。
python manage.py check --deploy
<2>、将DEBUG设置为False并配置ALLOWED_HOSTS。
DEBUG= False
ALLOWED_HOSTS = ['*']
<3>、安全相关的配置
# 保持https连接的时间
SECURE_HSTS_SECONDS = 3600
SECURE_HSTS_INCLUDE_SUBDOMAINS = True
SECURE_HSTS_PRELOAD = True

# 自动重定向到安全连接(走HTTP自动重定向到https)
SECURE_SSL_REDIRECT = True

# 避免跨站脚本攻击风险
SECURE_CONTENT_TYPE_NOSNIFF = True
'''
避免会自动推断内容去执行
'''

# 避免跨站脚本攻击(XSS)
SECURE_BROWSER_XSS_FILTER= True
'''
避免js脚本攻击
'''

# COOKIE只能通过HtTPS进行传输
SESSION_COOKIE_SECURE= True
CSRF_COOKIE_SECURE = True

# 防止点击劫持攻击手段(不允许使用<iframe>标签进行加载)
X_FRAME_OPTIONS = 'DENY'
<4>、借助第三方库(dynaconf)管理敏感信息
pip install dynaconf

# 系统终端

<5>、uWSGI的配置
# 安装uWSGI
pip install uwsgi
# 在项目目录下创建uwsgi.ini文件
[uwsgi]

# uwsgi直接做web服务器使用
http=127.0.0.1:8080

# 项目目录
chdir = /Users/USer/Desktop/外卖APP/Django-Axf

# 项目中wsgi.py文件的目录,相对于项目目录
wsgi-file=LwdAxf/wsgi.py

# 指定启动的工作进程数
processes=4

# 指定工作进程中的线程数
threads=2

# 在这些进程中有一个主进程
master=True

# 保存启动之后主进程的pid
pidfile=uwsgi.pid

# 设置uwsgi后台运行,uwsgi.log保存日志信息
daemonize=uwsgi.log

# 设置虚拟环境的路径
virtualenv= 
# uwsgi的启动和停止
# 启动
uwsgi --ini uwsgi.ini
# 停止
uwsgi --stop uwsgi.pid
<6>、Nginx+uwsgi的配置
uwsgi配置
# uwsgi.ini 配置
[uwsgi]
# 使用nginx连接时使用
socket=127.0.0.1:8080

# 项目目录
chdir = /Users/USer/Desktop/外卖APP/Django-Axf

# 项目中wsgi.py文件的目录,相对于项目目录
wsgi-file=LwdAxf/wsgi.py

# 指定启动的工作进程数
processes=4

# 指定工作进程中的线程数
threads=2

# 在这些进程中有一个主进程
master=True

# 保存启动之后主进程的pid
pidfile=uwsgi.pid

# 设置uwsgi后台运行,uwsgi.log保存日志信息
daemonize=uwsgi.log

# 设置虚拟环境的路径
virtualenv= 
Nginx配置
# 修改Nginx.conf的配置
events {
	....
}
http {
	...
	upstream uwsgi{
		server xxx.xxx.xxx.xxx:xxxx;
	}
	server {
		listen 80;
		server_name localhost;
		charset utf-8;
		access_log logs/host.access.log main;
		
		#动态网站
		location / {
			proxy_pass http://uwsgi;
		}
		
		# 静态资源访问
		location /static {
			alias /静态资源路径
		}

		# 网站首页
		location = / {
		# 传递请求给静态文件服务器的Nginx
		proxy_pass http://ip:port;
		}
	}
}
如何收集django中的静态资源
# django settings.py 中配置收集静态文件路径:
STATIC_ROOT = 收集静态文件路径

# django收集静态文件的命令:
python manage.py collectstatic

# 执行上面的命令会把项目中所使用的静态文件收集到STATIC_ROOT指定的目录下
# 收集静态文件之后,让Nginx提供静态文件,需要在Nginx配置文件中增加以下配置

location /static {
	alias /静态文件路径;
}
发布了128 篇原创文章 · 获赞 0 · 访问量 2509

猜你喜欢

转载自blog.csdn.net/qq_41134008/article/details/105425111