个人介绍
我是上海交通大学电子信息与电气工程学院的一名研二学生,这段时间科研工作暂时告一段落,于是乎想找点好玩的事情做,于是就想去优化一下自己四年前搭建的个人博客,之前隐约记得在阿里云上有优惠的学生服务器,于是去百度上搜索了一下,发现活动早就停止了,取而代之的是现在的飞天加速计划·高校学生在家实践,于是毫不犹豫地参加领取了云服务器,用于实践个人博客平台的优化。
使用阿里云ECS搭建Nginx反向代理服务
环境选择
创建实例的时候由于对Ubuntu比较熟悉,因此操作系统选择了Ubuntu18.04,没有选择最新的Ubuntu系统是因为版本太新的话,出了问题不太好解决,稍微旧一些的版本比较稳定,并且有问题会有大量的帖子教程去参考。
安装Nginx服务
更新一下apt的缓存:sudo apt-get update
我这里选择默认的nginx-full,所以直接用sudo apt-get install nginx就是默认安装nginx-full版本。由于阿里云ECS创建的实例,里面的源默认会使用阿里云的源,因此就不需要再进行换源加速操作了。
需要注意的是,默认使用apt安装的nginx的配置文件目录一般在/etc/nginx/文件夹下的nginx.conf文件。
反向代理介绍
如下图所示,我们只需要将请求发送到反向代理服务器(这里就是我们的阿里云ECS),由反向代理服务器去选择目标服务器(目标服务器也就是我们博客搭建的服务器)获取数据后,再返回给客户端。
反向代理配置
编辑nginx.conf文件即可,在http块中加入server块
server{
listen 80;
server_name 阿里云服务器ip地址;
location / {
proxy_pass 博客搭建服务器地址;
}
}
负载均衡
利用上面提到的反向代理,可以将流量代理到多个博客服务器,这里由于个人博客日常访问量并不大,仅使用两个服务器做测试。x.x.x.x和y.y.y.y代表两台服务器的地址。下面的例子是最简单的一种轮询机制,XYXYXYXY轮询访问,还有其他更多种比如权重、最少连接等等。
upstream blog_proxy {
server x.x.x.x:80;
server y.y.y.y:80;
}
server{
listen 80;
server_name 阿里云服务器ip地址;
location / {
proxy_pass https://blog_proxy;
}
}
遇到的问题
由于赠送的服务器带宽比较小,因此使用反向代理和负载均衡之后效果反而变差了。如果带宽足够情况下应该就没问题了。使用nginx负载均衡之后假如某台服务器down了,依然可以正常访问。
收获总结
最大的收获就是纸上得来终觉浅,绝知此事要躬行。书本上学到的东西不足以支撑到实际的使用,还是要多加实践多加练习,才能了解到最新的技术手段,才能在遇到一些实际问题的时候不至于无法解决。理论知识固然重要,加以实践方能内化于心。
个人作品截图


