写在最前:
非常抱歉的是,因为突如其来的疫情,我的hadoop系列断更了,很难受,因为我的分布式环境在学校,我的笔记本配置带不起来,代码跑不起来我是不敢写博客的,然后寒假在家写代码也没啥意思,看了非常多的书,把计网和操作系统重新学了一遍。因为实习的需要,未来我更多的技术可能在Python这块,但是java相关的内容我也会努力保持更新,同时也会出更多的入门教程给大家谢谢大家。
背景:
最近在学习django的过程中,用django做了一个小demo,所以试试看能不能部署到服务器上,自己顺便也熟悉一下Django整个部署的流程,因为之前学习flask的时候,就使用的uwsgi来作为python web服务器来部署的,所以这次也就选择了nginx+uwsgi这样的一个组合。
当时买完云服务器之后,就顺手把宝塔装上了,之前用宝塔部署php项目是真的很容易,所以就偷懒试试宝塔能不能部署django,苦试一个小时,无果,遂放弃,还是老老实实用原生的uwsgi配合Nginx来部署吧。然后下面的流程我会争取把有可能是坑的地方重点标注出来,将来如果发博客或者自己需要再次部署的时候,也可以少写很多配置文件。
环境:
系统版本
:centos7.5
python
版本:3.6.5
nginx
版本:1.16.1
uwsgi
版本:2.0.18
如环境不同,还请查阅其他资料另行配置。
环境准备:
在部署之前,请确保你的linux服务器正确安装了对应的python版本,如果需要python3版本,请自行查阅资料进行升级安装。
首先为了更好的独立部署,避免对其他的项目产生干扰,我们需要安装python 虚拟环境:
sudo pip install virtualenv sudo pip install virtualenvwrapper
virtualenvwrapper 是virtualenv的扩展管理包,可以将所有的虚拟环境整合在一个目录下。
配置虚拟环境:
mkdir ~/.virtualenvs
打开.bashrc:
sudo vim ~/.bashrc
在.bashrc的末尾增加下面内容:
export WORKON_HOME=$HOME/.virtualenvs # 所有虚拟环境存储的目录 source /usr/local/python3/bin/virtualenvwrapper.sh
注意!:这里的/usr/local/bin/virtualenvwrapper.sh只是针对于我当前系统环境的一个位置,并不是所有的服务器都是在这个位置,如果自己不知道virtualenvwrapper.sh在哪里,可以搜索文件来找到它在系统中的位置,并且修改.bashrc。
启用配置文件:
source ~/.bashrc
这个时候如果不报错,就代表我们的虚拟环境配置成功了,一般常见的报错就是virtualenvwrapper.sh文件找不对。
创建虚拟环境:
找一个你自己觉得能记住的地方,新建一个env 文件夹:
cd /www mkdir env cd env #进入env目录
新建一个虚拟环境:
mkvirtualenv -p /usr/bin/python3 orange_env # my_env是虚拟环境的名称
注意:如果你的软连接/usr/bin/python3没有的话,会报错误,找不到/usr/bin/python3,这个时候就需要你自己新建一个软连接:
如果报错:
ln -s /usr/local/python3/bin/python3 /usr/bin/python3 # 路径要改成自己的python安装路径
之后便可以进入我们的虚拟环境了:
source /www/env/orange_env/bin/activate
进去虚拟环境之后,前面会出现一个括号,里面是你虚拟环境的名字:
(orange_env) [root@iz2ze1cvux96riiwfh05qqz ~]#
在虚拟环境中安装uwsgi:
pip install uwsgi
退出虚拟环境:
deactivate
再次在主环境中安装uwsgi:
pip install uwsgi
注意:如果你有其他的依赖,比如django,msqlclient这些,记得一定要在虚拟环境里pip安装一下。
部署过程:
找一个你认为比较合适的地方,新建一个文件夹,将你的Django项目上传进去:
以我为例:
cd /www mkdir orange
上传解压操作略,记得是上传项目根目录,就是直接带manage.py的那个目录。
新建一个uswgi配置文件,uswgi支持多种配置文件类型,比如yaml,xml,json,ini,这里我选的是xml。
vim mysite.xml #记得mysite.xml 要和你项目的manage.py 在一个目录下。
mysite.xml内容如下:
<uwsgi> <socket>127.0.0.1:8080</socket><!-- 内部端口,自定义 --> <chdir>/www/orange/</chdir><!-- 项目路径 --> <module>orangeproject.wsgi</module> <!-- 一般模块名 项目名+wsgi --> <processes>4</processes> <!-- 进程数 --> <daemonize>uwsgi.log</daemonize><!-- 日志文件 --> </uwsgi>
安装Nginx:
Nginx 我之前有写过一系列的基础入门教程,如果对安装启动重启这些不是很熟练的可以看下面这篇文章:
链接: 写给后端的Nginx初级入门教程:实战篇
查看nginx 配置文件路径:
nginx -t
记得备份nginx之前的配置文件,然后把之前的配置全部删了,直接加入下面内容:
worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; server { listen 8000; server_name 你的域名; charset utf-8; location / { include uwsgi_params; uwsgi_pass 127.0.0.1:8080; uwsgi_param UWSGI_SCRIPT orangeproject.wsgi; uwsgi_param UWSGI_CHDIR /www/orange/; } location /static/ { alias /www/orange/transfer/static/; } } }
注意模块名要保持一致,而且你nginx监听的端口不能和你django启动的端口一样,要不uswgi会因为nginx占用端口启动失败。alias /www/orange/transfer/static/; 这个是你的静态文件地址,css,img这些。
检查nginx是否配置成功:
nginx -t
重启nginx:
nginx -s reload
之后,再次进入我们的虚拟环境orange_env中,启动我们的uwsgi服务器:
cd /www/orange uwsgi -x mysite.xml
然后打开我们的本地浏览器,输入:域名:8000,备案过的可以改nginx配置文件成80。
大功告成:
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
- 好薇2024《兵哥哥》1:124K黄金母盘[WAV+CUE]
- 胡歌.2006-珍惜(EP)【步升大风】【FLAC分轨】
- 洪荣宏.2014-拼乎自己看【华特】【WAV+CUE】
- 伊能静.1999-从脆弱到勇敢1987-1996精选2CD【华纳】【WAV+CUE】
- 刘亮鹭《汽车DJ玩主》[WAV+CUE][1.1G]
- 张杰《最接近天堂的地方》天娱传媒[WAV+CUE][1.1G]
- 群星《2022年度发烧天碟》无损黑胶碟 2CD[WAV+CUE][1.4G]
- 罗文1983-罗文甄妮-射雕英雄传(纯银AMCD)[WAV+CUE]
- 群星《亚洲故事香港纯弦》雨果UPMAGCD2024[低速原抓WAV+CUE]
- 群星《经典咏流传》限量1:1母盘直刻[低速原抓WAV+CUE]
- 庾澄庆1993《老实情歌》福茂唱片[WAV+CUE][1G]
- 许巍《在别处》美卡首版[WAV+CUE][1G]
- 林子祥《单手拍掌》华纳香港版[WAV+CUE][1G]
- 郑秀文.1997-我们的主题曲【华纳】【WAV+CUE】
- 群星.2001-生命因爱动听电影原创音乐AVCD【MEDIA】【WAV+CUE】