当前位置: 首页 > 后端技术 > Python

Nginx+uWSGI部署Django项目

时间:2023-03-26 01:25:26 Python

项目环境服务器:阿里云ECS;系统版本:centos8.0;Nginx版本:0.14.1;uWSGI版本:2.0.18;蟒蛇版本:3.6.0。项目依赖及版本如下:Django==2.0django-mdeditor==0.1.17.1django-model-utils==4.0.0django-notifications-hq==1.6.0Markdown==3.2.1PyMySQL==0.9.3登录阿里云打开控制台端口,配置http80和Django服务端口。配置uWSGI以启动Django服务。在项目根目录下创建一个uwsgi.ini文件,在viuwsgi.ini中输入如下内容:[uwsgi]#Usesocket=127.0.0.1whenconnectingwithnginx:8000#Dowebserverdirectlyusingpythonmanage.pyrunserverip:port#http=0.0.0.0:8000#项目目录chdir=/root/project/myblog#wsgi.py文件在项目中的目录,相对于项目目录wsgi-file=myblog/wsgi.py#指定工作进程数启动processes=2#指定工作进程中的线程数threads=2#指定这些进程中有一个主进程master=True#启动uwsgi后保存主进程的pidpidfile=.pid#设置uwsgi后台运行,uwsgi.log保存日志信息daemonize=uwsgi.log#设置日志文件最大字节数log-maxsize=100000#设置每个进程最大请求数max-requests=1000#设置虚拟环境路径virtualenv=/root/anaconda3/envs/myblog也可以参考Djangoofficial文档,Nginx中文文档自定义配置。uwsgi命令启动服务:uwsgi--iniuwsgi.ini停止服务:uwsgi--stopuwsgi.pid配置Nginx启动静态文件服务进入/etc/nginx/conf.d文件夹,创建自己的项目配置文件myproject.conf,输入下面的配置。服务器{听80;server_nameip;字符集utf-8;client_max_body_size75M;位置/static{别名/root/project/myblog/static;}location/media{别名/root/project/myblog/media;}位置/{uwsgi_pass127.0.0.1:8000;包括/etc/nginx/uwsgi_params;}}重启Nginx服务servicenginxrestart遇到的问题及解决方法问题一:nginx静态资源文件无法访问,403forbidden错误解决方法:在nginx.conf中配置添加用户rootuserroot;worker_processes8;#error_loglogs/error.log;#error_loglogs/error.lognotice;#error_loglogs/error.loginfo;#pidlogs/nginx.pid;events{worker\_connections1024;}......后台网站样式显示不出来,就是没有进行静态文件收集操作的原因,可以在终端输入pythonmanage.pycollectstatic解决。前提是在settings.py文件中配置了STATIC_ROOT=os.path.join(BASE_DIR,"static")。

猜你喜欢