Flask项目部署到阿里云服务器注意事项总结

个人唠叨:

学习flask挺长时间了,最近终于狠下心来把个人博客部署上线了。作为小白,之前对部署一无所知,连服务器的概念都不懂,这是真的。部署期间真的是一言难尽,各种坑踩到底,一开始免费领了一个月的服务器,由于不会操作,按照教程的配置各种出错,出错不明白哪里错,该怎么解决,去搜索,输入一堆不理解的命令,有些有效,有些无效。结果python3.7还没安装好,之后不知道怎么把服务器弄得各种错误,于是好吧,重新买了一个阿里云服务器,学生价9.5元一个月。这次更惨,把python3.7安装后竟然把预装的python卸载了,恩额额,一输入指令就是无权限,换成root也没办法。最后又回归第一个服务器。这次好了,把之前犯过的错误都搞熟了,对各种命令有比较熟悉了。一步一步最终总算是部署上线了。但是由于没备案服务号,所以我买的9块钱一年的域名没用上,虽然解析并绑定了网站,但是登不上。因为阿里云服务器备案要续费3个月及以上,而我的学生优惠买的服务器搞坏了,免费的服务器续费3个月要一百七十多,作为一个死穷鬼,并且备案还要等十几天的审核,所以我放弃了,就这样吧,IP登陆也行,反正是个人博客,等什么时候自己手又痒了不怕折腾了就再弄吧。

部署前

  1. 更新程序配置,例如把要用到的环境变量加入到.env文件中,程序添加随机密钥等
  2. 创建生产环境专用的程序实例,例如wsgi.py。手动导入环境变量,python-dotenv。
  3. 设置迁移工具,数据迁移准备
  4. 程序日记必不可少,出错时查看错误原因
  5. https转发(可选)

下面才是重点:

开始部署

  1. 购买一个远程主机,例如阿里云服务器,24岁以下有学生优惠,便宜很多,新注册用户实名认证后可以免费使用一个月。购买后记得配置安全规则,开放相关端口例如22,8000,9001等。特别是在后面访问时页面打不开,注意查看有没有开放端口。例如在最后使用supervisor管理进程时,如果打不开页面注意有没有开放9001端口。
  2. 购买域名(可选但建议),可以直接在阿里云购买,有贵的有便宜的,便宜的几块钱一年都有。
  3. 解析域名。(可选但建议),购买域名后需要解析域名并绑定服务器才能使用。在阿里云购买的域名直接按阿里云教程解析就好了,很快的。绑定域名的话在使用nginx处理反向代理时,在nginx的配置文件中添加解析后的域名即可。

注意: 购买阿里云服务器续费3个月及以上才能备案服务号,没备案服务号的域名即使解析并且绑定了服务器也不能通过域名访问,只能IP访问。备案服务号审核过程大概十几二十天,挺麻烦的。

  1. 登陆远程主机。如果你用windows系统,推荐用git bash连接远程主机。
  2. 安装基本库和工具。阿里云服务器ubuntu16.04预装了python2.7和python3.5。如果你要用python3.7,需要额外安装。注意,不要卸载预装的python,卸载后果很严重。安装python3.7后,在服务器中指定python3.7和python3.7版本的pip。在这里需要用Linux软链接命令等。记住这里要找一个好的教程,很多教程误导人。
  3. 添加安全防护措施。例如使用ssh密钥登陆,这里要注意密钥保存的文件夹,是在本地电脑生成密钥对,然后保存到远程主机。如果想要关闭密码登陆远程主机,那就修改远程主机的SSH配置文件(目录:/etc/ssh/sshd_config)

建议先学习以下Linux常用命令。切换目录,编辑文件,新建文件,查找文件,授权命令等。

  1. 推送代码并初始化程序环境:先把代码上传到代码托管平台,例如GitHub。再从GitHub复制懂远程主机,在远程主机 git clone github项目地址。
  2. gunicorn运行程序。pipenv install gunicorn 。如果没报错挺简单。好像我安装的时候报错,具体怎么解决忘记了,挺麻烦的。
  3. 使用nginx提供反向代理。安装nginx很简单,在配置nginx文件时注意不要加错静态文件路径。配置nginx文件时记住错误日记(error.log)的路径,出错了可以查看错误原因。更新配置文件后,先测试语法正确性:sudo nginx -t 。没错的话记得重启nginx让配置生效:sudo service nginx restart 。
  4. 使用supervisor管理进程。 安装supervisor很简单,安装完记得检验是否安装成功:supervisord --version ,如果出现版本号则安装成功。supervisor的默认配置文件路径为: /etc/supervisord.conf 。如果自定义程序项目文件,记得在/etc/supervisord.conf 文件中的最下面把include配置的注释去掉,并把自定义项目文件路径添加进去,网上很多教程将这个,注意点就不会错了。更新配置后记得重启服务使配置生效。如果想要开启supervisor的web客户端,记得在supervisor的默认配置文件中添加inet_http_server配置,添加port,username,password,之后开放9001端口。这个简单,网上教程讲的很清楚。

如果supervisor开启
在这里插入图片描述
下面是运行成功
在这里插入图片描述
supervisor web客户端界面
Flask项目部署到阿里云服务器注意事项总结_第1张图片
我的博客首页如下:
Flask项目部署到阿里云服务器注意事项总结_第2张图片
如果你有什么问题的话,可以留言,我看到的话尽量尽快回复。

你可能感兴趣的:(Flask)