在阿里云上部署我们的Flask App(1)

最近为了加深flask框架的掌握,尝试搭建了一个简单的博客,主要是做给自己看看,了解一下开发部署流程(在saas上),顺便试一下自己的域名能不能绑定,在这里分享一下步骤,希望其中踩过的小坑能对你有所帮助。

阿里云篇

首先,可能是我没有看过阿里云ECS的入门介绍,对于一些小的知识点还是不是很清楚,比如SSH用的IP是公网还是私网IP,这个问题我查了一下是公网IP,并且连接成功,又比如windows一定要下个putty才能和云虚拟机连起来吗,这个问题发现使用git也内置了openssh。

ssh连接后,首先就是update/upgrade啦:

Welcome to Alibaba Cloud Elastic Compute Service !

~# apt update && apt upgrade
......
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done

image.gif

之后你可以创建一个非root账户更安全的运行web服务器,并把该账户添加到你的用户组中:

adduser ****
adduser **** sudo
image.gif

同时也可以更改主机名:

hostnamectl set-hostname flask-blog-server

image.gif

当然你还要把更改加入到你的"/etc/hosts"文件中:

127.0.0.1       localhost
106.15.###.###  flask-blog-server    //添加这一行,前面是你自己的公网IP

# The following lines are desirable for IPv6 capable hosts
.....
image.gif

这时你可以用exit命令推出你的远程连接,然后使用如下命令去登陆你已经设置好名称和用户的主机。

ssh {user}@106.15.###.###        //{}和后面的IP是你自己的账户
image.gif

当然,我们还要对服务器做一些安全设置,典型的是:使用SSH密钥来替代密码作为登陆方式:

$ ssh-keygen -b 4096

image.gif

随后按回车全部默认值即可,之后我们会得到两个保存密钥的文件,其中“id_rsa.pub”作为提供给第三方作为认证的凭据要上传到我们的远程主机中。

$ scp ~/.ssh/id_rsa.pub ###@106.15.###.###:~/.ssh/authorized_keys

image.gif

之后,使用如下命令:

$ chmod go-w ~/                    #查看并创建.ssh
$ chmod 700 ~/.ssh                 #把密钥写入文件
$ chmod 600 ~/.ssh/authorized_keys #设置权限

image.gif

这时返回本地重新登陆,可以看到我们不需要再输入密码了。
解决完上述登陆问题,还有几个点需要注意一下,比如我们可能需要:

$ sudo vim /etc/ssh/sshd_config
#在该文件中,修改两个值
PasswordAuthentication no
PermiteRootLogin no
#然后重启服务
$ sudo service ssh restart
image.gif

上述步骤可以关闭密码登录功能,提高我们登陆的安全系数。

当然我们还要利用防火墙设置开放端口:

$ sudo ufw default allow outgoing
Default outgoing policy changed to 'allow'
(be sure to update your rules accordingly)
$ sudo ufw default deny incoming
Default incoming policy changed to 'deny'
(be sure to update your rules accordingly)
a$ sudo ufw allow ssh
Rules updated
Rules updated (v6)
$ sudo ufw allow 5000
Rules updated
Rules updated (v6)
$ sudo ufw enable
Command may disrupt existing ssh connections. Proceed with operation (y|n)? y
Firewall is active and enabled on system startup
$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
22/tcp                     ALLOW       Anywhere
5000                       ALLOW       Anywhere
22/tcp (v6)                ALLOW       Anywhere (v6)
5000 (v6)                  ALLOW       Anywhere (v6)

image.gif

在这里我们只开放了ssh和本地5000端口作为测试,后面随着功能完善我们可以做更多的事。

你可能感兴趣的:(在阿里云上部署我们的Flask App(1))