Django项目部署:
settings.py ALLOWED_HOSTS = ['服务器ip',] python manage.py runserver 0.0.0.0:8001 Django遵循的wsgi协议:wsgiref性能低 正式部署采用uwsgi,性能较高 pip3 install uwsgi WSGI是一种通信协议。 uwsgi是一种线路协议,常用于在uWSGI服务器与其他网络服务器的数据通信。 而uWSGI是实现了uwsgi和WSGI两种协议的Web服务器。
uwsgi配置Django静态文件:
# 不处理静态文件 uwsgi --http :9002 --chdir /data/s4/deploy --wsgi-file deploy/wsgi.py --master --processes 4 --threads 2 # --http :9002 监听的端口 # 当前Django程序在linux上的目录 # deploy/wsgi.py wsgi在Django上的目录 # 处理静态文件 STATICFILES_DIRS = ( os.path.join(BASE_DIR,'static'), ) STATIC_ROOT = os.path.join(BASE_DIR,'uuuuuu') # 这个文件可以放置在任何位置,写入路径即可 python manage.py collectstatic 在Django程序里执行,将内置和和开发的静态文件打包收集 完事,注释静态配置STATICFILES_DIRS,STATIC_ROOT # 处理静态文件启动 uwsgi --http :9003 --chdir /data/s4/deploy --wsgi-file deploy/wsgi.py --static-map /static=/data/s4/deploy/uuuuuu # /static=/data/s4/deploy/uuuuuu 这个是收集的静态文件的路径 # 或者;写一个配置文件 wsgi_http.ini [uwsgi] http = 0.0.0.0:9004 chdir = /data/s4/deploy wsgi-file = deploy/wsgi.py # processes = 4 # threads = 2 static-map = /static=/data/s4/deploy/uuuuuu uwsgi wsgi_http.ini 启动Django程序
Nginx正向代理静态文件:
Nginx正向代理静态文件 在Django程序写一个配置文件,使Nginx和Django采用socket连接 wsgi_socket.ini [uwsgi] socket = 127.0.0.1:8001 # 监听本地的8001端口,和ngix进行socket连接 chdir = /data/s4/deploy wsgi-file = deploy/wsgi.py # processes = 4 # threads = 2 static-map = /static=/data/s4/deploy/uuuuuu uwsgi wsgi_socket.ini 启动Django程序 yum install nginx vim /etc/nginx/nginx.conf 配置代理文件 server { listen: 80; 监听的端口 location /staice { alias /data/s4/deploy/uuuuuu # uwsgi打包的静态文件绝对路径 } location / { uwsgi_pass django; # 配置文件上面的upstream django {xxxx}监听的端口 include uwsgi_params; } } 然后启动Nginx,/etc/init.d/nginx start /etc/init.d/nginx start 启动ngix(/stop/restart 停止或者重启)