第一步:换源
输入命令换掉Ubuntu的下载源
sudonano/etc/apt/sources.list
将以下全部替换掉原文件,我这里用的是阿里的源,你也可以换其他的。
debhttp://mirrors.aliyun.com/ubuntu/bionicmainrestricted
debhttp://mirrors.aliyun.com/ubuntu/bionic-updatesmainrestricted
debhttp://mirrors.aliyun.com/ubuntu/bionicuniverse
debhttp://mirrors.aliyun.com/ubuntu/bionic-updatesuniverse
debhttp://mirrors.aliyun.com/ubuntu/bionicmultiverse
debhttp://mirrors.aliyun.com/ubuntu/bionic-updatesmultiverse
debhttp://mirrors.aliyun.com/ubuntu/bionic-backportsmainrestricteduniversemultiverse
debhttp://mirrors.aliyun.com/ubuntu/bionic-securitymainrestricted
debhttp://mirrors.aliyun.com/ubuntu/bionic-securityuniverse
deb[arch=amd64]https://mirrors.aliyun.com/docker-ce/linux/ubuntubionicstable
分别输入以下命令,更新源
sudoaptupgrade
第二步:安装相关包
#查看python版本:建议使用3.6之后的版本,因为其他的笔者没试过,笔者用的是3.6.9版本
python
2.安装openssh-server和net-tools
sudoaptinstallopenssh-server
ifconfig
如下图所示,就是我们的虚拟机IP
virtualenv--python=/usr/bin/python3myblog
sourcebin/activate
安装django:
激活并且创建好项目之后就基本和下图所示差不多了
pip3installuwsgi
第三步:写入测试文件并测试运行
安装好之后我们再写一个测试文件,用来测试我们项目的运行方式,实际项目也是一样的。这里我用的是nano编辑写入方式,你也可以使用vim,方式不限,能创建写入即可写入命令为:
defapplication(env,start_response):
start_response('200ok',[('Content-Type','text/html')])
return[b"HelloWorld"]
第四步:引入nginx
为了避免在输入ip时,不输入端口号也能正常使用,我们引入轻量级的nginx,这里我们用命令行安装并且启动nginx
新建一个conf文件,并且写入以下内容,将里面涉及路径的地方全部改为你自己项目的路径:
这里的路径改为你自己项目路径
server127.0.0.1:8001;#forawebportsocket(we'llusethisfirst)
server_name192.168.217.133;#将这里的ip地址改为你自己的虚拟机或者服务器地址
client_max_body_size75M;#adjusttotaste
alias/home/python/myblog/blog/media;#yourDjangoproject'smediafiles-amendasrequired
alias/home/python/myblog/blog/static;#yourDjangoproject'sstaticfiles-amendasrequired
include/home/python/myblog/blog/uwsgi_params;#theuwsgi_paramsfileyouinstalled
}
创建好文件之后,我们需要对该文件创建一个软链接,需要输入以下命令:
完成之后我们可以通过ll/etc/nginx/sites-enabled/这个命令来查看一下,是否设置正确,参考下图
3、创建uwsgi_params文件和静态文件夹配置
这里我们需要创建一个uwsgi_params文件,创建命令为:
并且将下面内容一字不差的写入到uwsgi_params文件中保存并退出
uwsgi_paramQUERY_STRING$query_string;
uwsgi_paramREQUEST_METHOD$request_method;
uwsgi_paramCONTENT_TYPE$content_type;
uwsgi_paramCONTENT_LENGTH$content_length;
uwsgi_paramREQUEST_URI$request_uri;
uwsgi_paramPATH_INFO$document_uri;
uwsgi_paramDOCUMENT_ROOT$document_root;
uwsgi_paramSERVER_PROTOCOL$server_protocol;
uwsgi_paramREQUEST_SCHEME$scheme;
uwsgi_paramHTTPS$httpsif_not_empty;
uwsgi_paramREMOTE_ADDR$remote_addr;
uwsgi_paramREMOTE_PORT$remote_port;
uwsgi_paramSERVER_PORT$server_port;
uwsgi_paramSERVER_NAME$server_name;
此时进入阻塞,在浏览器中输入IP地址:192.168.217.133:8000,发现可以打开,显示helloworld成功。说明uesgi和nginx通信正常
进入nginx配置文件中:sudonano/etc/nginx/sites-available/blog_nginx.conf
将文件中下面两行中的第二行注释掉,开启第一行,但是路径一定要正确,改使用管道通信
serverunix:///home/python/myblog/blog.sock;server127.0.0.1:8001;#forawebportsocket(we'llusethisfirst)
保存退出,重启nginx:sudoservicenginxrestart
将uwsgi参数套节字改为blog.sock
uwsgi--socketblog.sock--wsgi-filetest.py
回到浏览器输入:192.168.217.133:8000得到502:如图
我们查看一下错误日志,发现是因为权限问题,解决办法,在命令行后面加入--chmod=666
uwsgi--socketblog.sock--wsgi-filetest.py--chmod=666
运行之后发现没有问题,并且正常显示HelloWorld界面。
现在我们运行django项目,命令为:
刷新192.168.217.133:8000得到django的基础页面。
目前可以说明nginx和uwsgi管道通信正常。
第六步:将项目改为后台运行
创建一个uwsgi的配置文件:sudonanoblog_uwsgi.ini
写入一下内容,将其中的路径改为自己的项目路径
#thebasedirectory(fullpath)
chdir=/home/python/myblog/blog
#maximumnumberofworkerprocesses
#thesocket(usethefullpathtobesafe
socket=/home/python/myblog/blog/mysite.sock
#...withappropriatepermissions-maybeneeded
#daemonizeuwsgiandwritemessagesintogivenlog
daemonize=/home/python/myblog/blog/uwsgi.log
保存退出并且启动配置文件,命令为:
我们可以查看一下后台进程,是否正常启动,输入:
最后回到nginx配置文件中,将监听端口改为80,重启nginx即可。在浏览器中输192.168.217.133得到django页面结果,表示项目运行正常。
以上就是如何用nginx+uwsgi部署自己的django项目的详细内容,更多请关注主机测评网其它相关文章!
本文来源:国外服务器--如何用nginx+uwsgi部署自己的django项目(nginx和uwsgi部署flask项目)
本文地址:https://www.idcbaba.com/guowai/4771.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1919100645@qq.com 举报,一经查实,本站将立刻删除。
标签:




