1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Django 阿里云部署(supervisor+uwsgi+nginx)

Django 阿里云部署(supervisor+uwsgi+nginx)

时间:2018-07-29 04:55:28

相关推荐

Django 阿里云部署(supervisor+uwsgi+nginx)

之前买个海外的服务器(vultr),闲置了半年,硬是没有用上。当时刚入行,以为自己什么都行,可是遇到几个坑就不干了!白白浪费了半年,白白送了180大洋。

下面来显摆显摆我部署遇到的坑,小白一枚,大神勿喷。

1 )海外服务器。

为啥购买海外的,撂下不表,自己找度娘问问。我买的理由是:不用备案!!!。而且用的是ssd,相比阿里云便宜了不少。遇到的第一个坑是支付问题。我当时没有信用卡,用PayPal解决的。但是PayPal的汇率有点坑,7块多。而且,虽然vultr宣传是5$,实际是6$. 阿里云

我之前的服务器快到期了。一天心血来潮,想看看有没有免费的HTTPS证书,于是看到了一个大神的网站,膜拜之心油然而生。于是我决定好好写博客,好好写代码。

下面就是干货,以及反坑策略,咳咳,大眼睛模式开启。

我是根据这个教程设置的,稍作更改。/django/django-nginx-deploy.html

1 supervisor 配置

[program:my_project]command=/usr/local/bin/uwsgi --ini /XXXXX/XXXXX/django_project.ini # 注意放在和manage.py 同目录 # 下user=wanger # 不用rootautostart=trueautorestart=trueloglevel=infostdout_logfile=/XXXX/supervisor_info.log ;运行日志stdout_logfile_maxbytes=10MBstderr_logfile=/XXXX/supervisor_err.log ; 错误日志stderr_logfile_maxbytes=10MBredirect_stderr=trueexitcodes=1

权限配置,我把日志文件都配置成了wanger 的,记得权限,不然报错。

2 uwsgi

[uwsgi]socket = /tmp2/my_project.sock# nginx 中用,也可以是端口什么的chdir=/XXXXXX/XXXX # manage.py 所在目录module=my_project.wsgi:applicationhome=/XXXXXX/XXXX # 我用了virtualenv 这是环境所在目录pidfile=/tmp/project-master.pid # 这个设置不太好,可以改到其他目录,同样也是需要设置权限vacuum=Trueprocesses=1master=truemax-requests=5000# daemonize=XXX 这个如果用supervisor管理不用设置,不然就是 spawerror(具体忘记了)touch-reload = /XXXXXX/reload.txt # 这个用来重启uwsgi的,touch 这个文件就能重启。chmod-socket = 666 # 网上有建议用664的,我自己米有试过。uid = wangergid = www-data

最后三行一定是设置,不然nginx报权限不足错误,Permission Denied(大概这样)

3 nginx

# configuration of the serverserver {# the port your site will be served onlisten80;# the domain name it will serve forserver_name ; # substitute your machine's IP address or FQDNcharsetutf-8;index index.html index.htm index.jsp index.do;root /XXXXXXXX/XXXXXX/;# www-data 权限 只有读权限# max upload sizeclient_max_body_size 75M; # adjust to tastelocation ^~ /static {alias /XXXXXX/XXXXXX/static; # your Django project's static files - amend as required}# Finally, send all non-media requests to the Django server.# 我用的前后端分离,下面是django的urllocation ~ (/XXXXXXX/|/XXXXXXXX//) {uwsgi_pass unix:///tmp2/blog_api.sock; # .ini 中设置的include/etc/nginx/uwsgi_params; # the uwsgi_params file you installedproxy_set_header Host $host:$server_port;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-Host $host:$server_port;proxy_set_header X-Forwarded-Server $host:$server_port;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}location / {root /XXXXXXXX/XXXXXX/;}}

4 django 配置

STATIC_ROOT = os.path.join(BASE_DIR, "XXXXX/static")TIME_ZONE = 'Asia/Shanghai'#EmailEMAIL_HOST = '' #SMTP地址EMAIL_PORT = 994 #SMTP端口EMAIL_HOST_USER = 'XXXX@' #我自己的邮箱EMAIL_HOST_PASSWORD = '********' #我的邮箱密码EMAIL_SUBJECT_PREFIX = u'[Project]' #为邮件Subject-line前缀,默认是'[django]'EMAIL_USE_SSL = True#管理员站点SERVER_EMAIL = 'XXXXXXXXX@' #The email address that error messages come from, such as those sent to # ADMINS and MANAGERS.# Static files (CSS, JavaScript, Images)# /en/1.8/howto/static-files/STATIC_URL = '/static/'STATIC_ROOT = os.path.join(BASE_DIR, "XXX/static")

说明几点:发邮件用的是网易的163,端口是994,具体看网易的说明

mysql

注意默认的MySQL编码可能不是utf-8 自己设置下,最好查看下没有字段 是不是utf-8 编码,如果不是,设置完全局后,重新建

最后吐槽阿里云的坑::::::》》》》》

有一天我蹲厕所,看到阿里云的一个推送邮件,一年的费用才###,我心里盘算下(对于我这个仅仅计较的人来说,是大事),咬咬牙,买了。事后遇到这么多大坑,我想当时厕所蹲久了是不是脑子缺氧

需要备案,不多说我用的是ECS,体会是阿里云在安全方面确实做得不错,但是体验上感觉不如我之前买的服务器。相应比较慢重要,请在安全组里(什么,什么是安全组,问!!!!度!!!!!娘!!!)手动添加80/443 接口,发送邮件25端口不能用,阿里专家说的。

最后的体验是,我能退款吗?

补充:

建了一个qq群:389954854,主要目的是互帮互助,通过交流促进python技术。很多初学者往往不知道如何下手,还等什么,快快加入进来吧!

或者关注微信公众号:python码码有趣的

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。