准备工作
- 两台虚拟机,或者本地启动两个相同应用,在不同的端口上
- 安装好的nginx,在linux上
- 两个版本的hexo,或者其他应用,方便观察是否进行了负载均衡
启动服务
在两台虚拟机上启动项目,这里以hexo为例
服务器1:192.168.10.130
服务器2:192.168.10.129
nginx服务器的地址:192.168.10.128
hexo启动的端口号为4000
配置nginx的conf文件
使用yum
安装的配置文件的地址为/etc/nginx/nginx.conf
# 配置负载均衡服务器地址
upstream backend {
# 站点2的ip地址
server 192.168.10.129:4000 weight=3;
# 站点1的ip地址
server 192.168.10.130:4000 weight=1;
# 容灾地址,当上述服务器都挂掉的时候,请求打到这个服务器上
server 192.168.10.128 backup;
}
# 站点配置
server {
listen 80;
listen [::]:80;
# 服务器站点名称,如果使用自定义的,需要进行域名解析。静态的是修改host文件,动态的是购买阿里云的域名进行解析
# windows的host文件是 c:\\windows\\system\\drivers\\etc\\host
# linux的host文件是 /etc/hosts
server_name _;
# server_name rblgs.node0;
index index.html index.htm;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
# 路由根目录到远程地址上
location / {
# 实现负载均衡
proxy_pass http://backend;
## 下面的四个是默认的配置,不需要修改
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
重启nginx
nginx -s reload
systemctl restart nginx
使用yum
安装的自动交给systemctl管理,如果自定义安装,使用./ngxin 配置文件
的方式启动,或者手动写.service
文件在/etc/systemd/system/
中,创建nginx.service
服务就行了
结果
使用访问 http://192.168.10.28
,也就是nginx服务器的地址。注意这里使用http访问,因为监听的是80端口。然后不断刷新,就能看到访问两个服务器的hexo项目了。