概述
1. 系统环境
Ubuntu 20.04.2 LTS 桌面版(192.168.229.128)
Ubuntu 20.04.2 LTS 服务器版(192.168.229.129)
2. 本文项目目标
需要配置两台服务器,IP地址分别是192.168.229.128,192.168.229.129,都安装nginx,两台服务器的81端口运行项目页面(用于模拟网站页面,可以替换为项目IP和端口),在192.168.229.128的80端口上配置负载均衡,通过192.168.229.128访问两台服务器的页面。
安装nginx
1. 下载安装
sudo apt-get install nginx
如果安装成功,出现下面的画面:
2. 测试安装是否成功
sudo nginx -t
如果安装成功,出现下面的画面:
在浏览器中输入ip地址,可以看到nignx的页面:
3. 重启Nginx
# 下面两句的效果一样,都是重启
sudo service nginx restart
# sudo systemctl restart nginx
4. 查看nginx正在运行的进程,如果有就kill掉
# 查询nginx进程号
ps -ef |grep nginx
# 以下都可以停止进程
#nginx从容停止命令,等待所有请求结束后关闭服务
sudo kill -QUIT nginx主进程号
# 快速停止命令,立即关闭nginx进程
sudo kill -TERM nginx主进程号
# 以上两个停止命令如果不管用,可以强制停止
sudo kill -9 nginx主进程号
5. 删除nginx,-purge包括配置文件
sudo apt-get --purge remove nginx
配置Nginx
1. nginx的配置文件位置
最新版本nginx配置是由4个文件构成:
- conf.d:文件夹,用户自己定义的conf配置文件,可以定义web服务和反向代理
- sites-available:文件夹,系统默认设置的配置文件
- sites-enabled:文件夹,由sites-available中的配置文件转换生成,定义了web服务相关
- nginx.conf:汇总以上三个配置文件的内容,同时配置我们所需要的参数。包含对上述文件的综合引用
2. 修改nginx默认web服务的端口
nginx默认配置文件是/etc/nginx/sites-enabled/default
此文件可以删除,删除后nginx不再启动web服务
如果需要恢复,将/etc/nginx/sites-available/default
复制过来即可。
修改其端口:
sudo vim /etc/nginx/sites-enabled/default
保存修改后的文件,重启nginx服务:
sudo systemctl restart nginx
检查默认的80端口是否能访问:
80端口已经访问不到了。
检查81端口是否可以访问:
81端口访问正常。
要将 192.168.229.128, 192.168.229.129两台服务器的ningx默认端口都改了。
3. 修改nginx的默认页面,做上标记,便于区分
nginx默认页面文件为/var/www/html/index.nginx-debian.html
, 编辑之。
sudo vim /var/www/html/index.nginx-debian.html
192.168.229.128服务器上增加这样一行:
192.168.229.129服务器上也增加这么一行,不过文本中的IP地址由128改为129:
保存关闭之后分别检查:
在129.168.229.128服务器上配置负载均衡。
有关负载均衡方法的说明,请参考:https://www.cnblogs.com/1214804270hacker/p/9325150.html
在/etc/nginx/conf.d/
目录下新建文件,命名为nginx.conf(可以为任意*.conf
,即文件名可以任意,后缀名必须为.conf
)
sudo vim /etc/nginx/conf.d/nginx.conf
填写内容如下:
upstream load_banance {
#负载均衡方法,可选:least_conn,ip_hash等,不填写则为轮询方式;
# 服务器的访问地址,最好使用服务器的私有IP以获得更好的性能和安全性。
server 192.168.229.128:81 weight=1;
server 192.168.229.129:81 weight=2;
}
server {
# 负载均衡的监听端口
listen 80 default_server;
listen [::]:80 default_server;
# 负载均衡服务器的服务名称,没有时填写 _
server_name _;
location / {
# 代理转发,注意这个load_banance要与 upstream 后的字符串相同
proxy_pass http://load_banance;
}
}
通过语句可以测试配置是否正确:
sudo nginx -t -c /etc/nginx/nginx.conf
重启nginx服务。
sudo systemctl restart nginx
5. 测试负载均衡
在浏览器中输入192.168.229.128
,刷新页面后发现来自 192.168.229.128服务器的页面和来自192.168.229.129服务器的页面轮番出现,且129页面出现的概率是128页面的两倍(填写两个服务器权重的时候,weight值不同)。