最近为了加深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
之后你可以创建一个非root账户更安全的运行web服务器,并把该账户添加到你的用户组中:
adduser ****
adduser **** sudo
同时也可以更改主机名:
hostnamectl set-hostname flask-blog-server
当然你还要把更改加入到你的"/etc/hosts"文件中:
127.0.0.1 localhost
106.15.###.### flask-blog-server //添加这一行,前面是你自己的公网IP
# The following lines are desirable for IPv6 capable hosts
.....
这时你可以用exit命令推出你的远程连接,然后使用如下命令去登陆你已经设置好名称和用户的主机。
ssh {user}@106.15.###.### //{}和后面的IP是你自己的账户
当然,我们还要对服务器做一些安全设置,典型的是:使用SSH密钥来替代密码作为登陆方式:
$ ssh-keygen -b 4096
随后按回车全部默认值即可,之后我们会得到两个保存密钥的文件,其中“id_rsa.pub”作为提供给第三方作为认证的凭据要上传到我们的远程主机中。
$ scp ~/.ssh/id_rsa.pub ###@106.15.###.###:~/.ssh/authorized_keys
之后,使用如下命令:
$ chmod go-w ~/ #查看并创建.ssh
$ chmod 700 ~/.ssh #把密钥写入文件
$ chmod 600 ~/.ssh/authorized_keys #设置权限
这时返回本地重新登陆,可以看到我们不需要再输入密码了。
解决完上述登陆问题,还有几个点需要注意一下,比如我们可能需要:
$ sudo vim /etc/ssh/sshd_config
#在该文件中,修改两个值
PasswordAuthentication no
PermiteRootLogin no
#然后重启服务
$ sudo service ssh restart
上述步骤可以关闭密码登录功能,提高我们登陆的安全系数。
当然我们还要利用防火墙设置开放端口:
$ 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)
在这里我们只开放了ssh和本地5000端口作为测试,后面随着功能完善我们可以做更多的事。