Nginx+Uwsgi+Django 项目部署到服务器的思路详解
首先先说一下思路:
1.本地django项目打包主要用到的是python自带的distutils.core下的setup,具体代码在下面,主要讲的两个问题是package主要打包为和目录同级的代码,例如:TCMS如果还有一个子文件夹,那就不能自动打包了。这个时候需要用到data_files。glob(*filename)文件名模式匹配,不用遍历整个目录判断每个文件是不是符合。
fromdistutils.coreimportsetup importglob setup( name="demo", version="0.1", packages=['author_zxx','TCMS','static'], data_files=glob.glob('templates/*.html') )
2.打包用到的木块,也就是python的库,pipfreeze>>requirement.txt(requirement.txt问文件名,随便起)
pipfreeze>requeirement.txt
3.服务器安装虚拟环境(非常重要,这一步一定要在开始。)
yuminstallvirtualenv yuminstallcirtualenvwrapper
4.创建虚拟环境并且指定虚拟换用到的python解释器版本
#创建一个项目目录 cdmy_project #创建虚拟环境my_project_env为虚拟环境的名称 virtualenvmy_project_env #指定虚拟环境所用到的python解释器版本-p后面为python解释器存放的路径,my_project_env为虚拟环境的名称 virtualenv-p/usr/bin/python2.7my_project_env #创建完成虚拟环境之后会生成一个文件夹,之后在bin文件夹中会有一个activate,我们在使用虚拟环境需要激活虚拟环境,sourceactivate。 sourcemy_project_env/bin/activate #退出虚拟环境 deactivate
5.在虚拟环境中安装django和uwsgi。要指定安装版本和开发环境要一样
pipinstalldjango==3.0.4 pipinstalluwsgi
6.创建django中的项目
#.表示在当前目录下创建,如果不加,会在project_name下创建一个同名的目录。 django-adminstartproject'project_name'.
7.将项目通过FileZilla或者其他交互软件,传入到刚刚所创建的目录中。
8.项目上传完毕之后,需要安装我们所需要的包。
#刚刚pipfreeze>requirement.txt所得 pipinstall-rrequirement.txt
9.完成之后,可以通过pythonmanage.purunserver进行测试,是否成功。显示出下面得内容,即为成功。
May08,2020-10:53:33 Djangoversion3.0.4,usingsettings'TsmWeb.settings' Startingdevelopmentserverathttp://127.0.0.1:8000/ QuittheserverwithCTRL-BREAK.
10.之后我们需要安装uwsgi替我们代替pythonmanage.pyrunserver.因为在生产环境中我们不可能一直手动得去开启服务器,这个时候就需要uwsgi,刚刚已经安装过uwsgi。我们在服务器项目目录下创建一个test.py文件。
#test.py defapplication(env,start_response): start_response('200OK',[('Content-Type','text/html')]) return"HelloWorld"
11.之后在linux命令行输入
uwsgi--http:8001--wsgi-file/‘路径,从跟开始'/test.py
如果出现下面得代码,则表示成功:
***StartinguWSGI2.0.18(64bit)on[FriMay811:00:362020]*** compiledwithversion:4.8.520150623(RedHat4.8.5-39)on07May202002:26:03 os:Linux-3.10.0-1127.el7.x86_64#1SMPTueMar3123:36:51UTC2020
12.之后我们需要安装Nginx
yuminstall-ypcrepcre-devel yuminstall-yzlibzlib-devel yuminstallgcc-c++ yuminstall-yopensslopenssl-devel wget-chttps://nginx.org/download/nginx-1.14.0.tar.gz tar-zxvfnginx-1.14.0.tar.gz cdnginx-1.14.0 ./configure make makeinstall
13.之后测试nginx是否可以正常使用,我们需要进到nginx文件下得sbin/目录,运行 ./nginx,之后在浏览器访问我们地址即可。如果出现WelcometoNginx!即表示成功
14.现在是nginx和uwsgi配置,这个也是最头疼的。
#uwsgi官网 https://uwsgi-docs.readthedocs.io/en/latest/ #nginx主要问题在nginx.conf,下面附上详解 https://www.nhooo.com/article/131362.htm
总结
到此这篇关于Nginx+Uwsgi+Django项目部署到服务器的文章就介绍到这了,更多相关nginxuwsgidjango项目部署内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!