《云计算技术》实验二:集群及负载均衡

/ 0评 / 0

其实就是个反向代理的实验。

安装Nginx

正好手头有几台服务器,就不用开虚拟机了。

先给三台服务器都安装上Nginx。

先升级一下仓库,然后直接安装

sudo apt update
sudo apt install nginx

再验证一下是否安装成功

sudo nginx -v

在阿里云控制台配置一下安全组,把80端口打开。

然后在浏览器输入IP访问一下看看有没有安装成功。

作为WS的两台服务器,一台是空白服务器,一台是我的博客,所以可以直接通过显示的页面找到访问的是哪台服务器。

配置反向代理

先给服务器装个vim方便编辑配置文件

sudo apt install vim

然后看一下nginx安装在哪里

ps aux|grep nginx

输出结果

root@iZm5e9ipfjhle6ihc7hpehZ:/# ps aux|grep nginx
root      1556  0.0  0.3 141116  1552 ?        Ss   16:22   0:00 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
www-data  1557  0.0  1.2 143788  6400 ?        S    16:22   0:00 nginx: worker process
root     17647  0.0  0.2  14428  1104 pts/0    S+   16:43   0:00 grep --color=auto nginx

可知nginx的安装路径在/usr/sbin/nginx

再看看nginx调用哪个配置文件

/usr/sbin/nginx -t

输出结果

root@iZm5e9ipfjhle6ihc7hpehZ:/# /usr/sbin/nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

可知nginx的配置文件是/etc/nginx/nginx.conf

编辑配置文件

sudo vim /etc/nginx/nginx.conf

先在http块中添加一个upstream模块,写入负载均衡策略和要代理的两台服务器

其中一台服务器开启了https,所以用443端口。

upstream testserver{
                server 47.75.212.141:443;
                server 120.27.52.217:80;
}

我们使用默认的轮询策略。

然后添加一个虚拟服务器,将请求转发到这个testserver上。

server {
                listen 80;
                server_name 127.0.0.1;
                location / {
                        proxy_pass http://testserver;
                }
}

保存,然后重新加载配置

nginx -s reload

先使用curl访问一下

root@iZ2zefyj16t9g8xtnw79vkZ:~# curl 127.0.0.1
<!DOCTYPE html>
<html>
<head>
<title>Welcome to nginx!</title>
<style>
    body {
        width: 35em;
        margin: 0 auto;
        font-family: Tahoma, Verdana, Arial, sans-serif;
    }
</style>
</head>
<body>
<h1>Welcome to nginx!</h1>
<p>If you see this page, the nginx web server is successfully installed and
working. Further configuration is required.</p>

<p>For online documentation and support please refer to
<a href="http://nginx.org/">nginx.org</a>.<br/>
Commercial support is available at
<a href="http://nginx.com/">nginx.com</a>.</p>

<p><em>Thank you for using nginx.</em></p>
</body>
</html>
root@iZ2zefyj16t9g8xtnw79vkZ:~# curl 127.0.0.1
<html>
<head><title>302 Found</title></head>
<body>
<center><h1>302 Found</h1></center>
<hr><center>nginx</center>
</body>
</html>

可以看到服务器轮流将请求代理到了两台服务器上,有302字样的表示到了WS1,有nginx字样的表示到了WS2。

用浏览器访问总是跳到WS2,查了一下,是因为nginx用location只能代理http请求,代理https会出现证书不信任的问题。

发表评论

电子邮件地址不会被公开。 必填项已用*标注