在Upcloud Ubuntu 18.04系统用uwsgi nginx发布django app以及暴弃关

2019-01-11 约 2101 字 预计阅读 5 分钟

昨天看了一下aws的账单,居然一下子冲到了800刀,查了一下report。

发现大笔支出在突然增加的带宽使用上。Aws的价格以前不觉得,现在看真是巨大,12月居然说有4TB的带宽使用,带来了400多美刀的账单。

应该不至于正常流量超出这么多,也许有人用恶意代码刷带宽,但目前以aws 9 cents每GB的价格,查出来恶意代码也得亏不少了。

算了,先整到vultr过渡一下,目前还没查其他主机服务商的价格,但即使是正常流量,vultr的4TB带宽也就是40美刀的价格,超出部分也才只是1 cent每GB。

记录一下将django app安装到vultr裸机的过程,以备后用。

vultr Upcloud Ubuntu 18.04系统用uwsgi及nginx发布django app

本拟用vultr移植aws的站点,无意中搜到一个帖子,说Upcloud速度巨快,看了一下价格跟vultr比还便宜点,4TB带宽20美刀,就改用这个了,安装好了,感觉速度是挺快。

购买主机,建立root权限用户

到Upcloud网站一看,号称世界最快云。一般敢直接这么做广告的应该还有些底气。

我就来试试看。注册了账户,得到一个促销码CS6AJC,读者若也打算试试Upcloud,在注册的时候贴上这个代码,可以有25美金的信用额度。

主要流量是在美国,所以选了美国芝加哥的服务器。采用ubuntu 18.04系统,得到root用户密码,就需要建立一个root权限用户了,此步骤即以前写的老贴八步教程中的第四步,不再赘述。

安装虚拟环境VirtualEnv,在此环境下安装django

sudo apt-get update
sudo apt-get install python-pip
sudo pip install virtualenv
在项目目录下运行
cd app
sudo virtualenv venv
会建立一个venv虚拟环境目录,激活并安装django等
. venv/bin/activate
pip install -r requirements.txt
运行
python manage.py runserver
发现没有问题了,app启动到http://127.0.0.1:8000
但需要将之投射到nginx上

安装配置uwsgi

deactivate
sudo apt-get install python-dev
sudo apt-get install build-essential python
sudo pip install uwsgi
安装好uwsgi后,需要建立一个ini文件
mkdir uwsgi
cd uwsgi
mkdir sites
cd sites
nano app.ini
打开了nano编辑器,app.ini内容如下
[uwsgi]
uid = www-data
gid = www-data
home = /home/username/app/venv
pythonpath = /home/username/
chdir = /home/username/app
module = app.uwsgi
socket = /home/username/uwsgi/app.sock
vacuum = true
chown-socket = www-data:www-data
chmod-socket = 660
master = true
harakiri = 30
touch-reload = /home/username/uwsgi/sites/app.ini
Ctrl-x存盘退出,运行
uwsgi app.ini

测试无问题,然后需要在启动时运行uwsgi

sudo nano /etc/rc.local
exit 0代码上加一行
/usr/local/bin/uwsgi --emperor /home/username/uwsgi/sites  --daemonize /var/log/uwsgi-emperor.log
这样启动就可以运行了。需要说明app.ini的最后一句touch-reload = /home/username/uwsgi/sites/app.ini,假如代码有更新,无需重新启动系统来运行uwsgi。只需要touch一下这个ini文件,uwsgi就会自动运行,从而采用新的代码。

安装配置nginx

sudo apt update    
sudo apt install nginx
nginx配置很简单了。
cd /etc/nginx/sites-available
sudo nano app
app的内容如下
server {  
    listen 80;  
    server_name youwebsite.com;

    location / {  
        include uwsgi_params;  
        uwsgi_pass unix:/home/username/uwsgi/app.sock;  
    }  
}
如此配置,则浏览器访问http://youwebsite.com 即可。 至于要增加https支持,则参照老贴八步教程之六即可


通关文之暴弃关

至圣曰:“朝闻道,夕死可矣。”
颜子曰:“舜何人也,予何人也,有为者亦若是。”
孟子曰:“自暴者,不可与有言也;自弃者,不可与有为也。”
老祖曰:“吾非圣人,学而得之。”
上阳子曰:“释迦闻佛半偈而欲舍其身,黄帝顺下风膝行而进,问广成子治身奈何而可以长生。”
此皆自贵自重,而不可自暴自弃也。
夫人秉天地五行之气而生身,有气而即有性,有性而即有命。
是理、气、性、命,即寓於一身之中,不论贤愚高低,同此一理气,同此一性命。
凡夫圣贤,原无分别,惟能了性命者,即是圣贤;不能了性命者,即是凡夫。
孟子所谓人之所以异於禽兽者几希,庶民去之,君子存之者是也。
仙传云:自古飞升者三千,拔宅者八百,坐脱立亡者不计其数。
凡此皆是学而知,苦而成,未有不学不苦而能知能成者。
世间生知者有数,学知者居多。
虽云生知,翻个筋斗,即有迷处。
不学不成,学而方成。
故释迦亦必师然灯;孔子亦必师项槖;老子亦必师元始。
至如玉、钟、吕、刘、王、张、石、薛、陈、白诸位祖师,皆是脉脉相续,口口相授,可知能学而即成,不学不能成。
学之功力,岂小焉哉?
世间糊涂学人,不将自己性命看重,不将自己身心修持,身在道中而不知自己有道,身居宝林而不知现在有宝,认假弃真,以虚为实。
或曰性命长短,乃有定数,非人所能胜;或曰仙圣是天生,非凡人所能学;或曰大道至深至奥,非等闲所能知;於是自暴自弃,自画其限,甘居苦海,蹈於沉沦,枉为人类矣。
殊不知既在人类,负阴抱阳,即有天地之造化,人人可以为圣贤,人人可以成仙佛,但要至诚进步,屈己求人,由近达远,经久不怠耳。
试观山中狐狸猿鹿,乃畜类耳,存神养气,静处於窟穴,年久功深,亦能隐形变化,延年益寿,而况人为万物之灵,焉有修道不成者?
如曰人不能成道,岂乃兽之不如乎?
吾劝真心学道者,速将暴弃关口打通。
立不易方,把有生以后气质偏病,习染累赘,一齐扫去。
专心慕道,从艰难困苦中磨炼出去。
不知者必欲学而知,不能者必欲学而能。
迁善改过,存诚去妄,始终如一,永无更变,大道可冀。
否则,自暴自弃,不以性命为重,不以道义为贵,打混过日,醉生梦死,空空一世,一失人身,万劫难矣。

此关通法在《一代宗师》中数句名言

宁可一思进,莫可一思停

则自然会

念念不忘,必有回响


author

Jesse Lau

网名遁去的一,简称遁一。2012年定居新西兰至今,自由职业者。
本文采用知识共享署名 4.0 国际许可协议进行许可。简而言之,可随意转发转载,转载请注明出处。


留点评论吧:

本网站使用cookie技术以提高用户体验度。 了解我们的隐私政策 我已了解