文章目录
- 反向代理
- 负载均衡
🏡作者主页:点击!
🤖Linux专栏:点击!
⏰️创作时间:2024年11月24日10点32分
反向代理
虚拟主机 1 为虚拟主机 3 提供代理服务
vi /etc/nginx/conf.d/vhost.conf server{ listen 81; #监听81端口 server_name localhost; #域名为www.test.com location / { #任意匹配 proxy_pass http://127.0.0.1:83; #开启代理,并为主机3提供代理服务 #root /data/Nginx1; #主目录为 #index index.html; #默认页面为index.html } } server{ listen 83; #监听83端口 server_name localhost; #域名为www.test.com location / { #任意匹配 root /data/nginx3; #主目录为 index index.html; #默认页面为index.html } } nginx -s reload curl localhost:81 #此时直接返回 nginx3 的内容
虚拟主机1为虚拟主机2作代理
vi /etc/nginx/conf.d/vhost.conf server{ listen 81; #监听81端口 server_name localhost; #域名为www.test.com location /nginx1 { #匹配nginx1 proxy_pass http://127.0.0.1:82/nginx2; #开启代理,并为主机3提供代理服务 #root /data/Nginx1; #主目录为 #index index.html; #默认页面为index.html } } server{ listen 82; #监听82端口 server_name localhost; #域名为www.test.com location /nginx2 { #意思是精准匹配/nginx2/index.html alias /data/nginx2/index.html; #别名为/data,此时alias为绝对路径,root为相对路径 index index.html; #默认页面为index.html } } server{ listen 83; #监听83端口 server_name localhost; #域名为www.test.com location / { #任意匹配 root /data/nginx3; #主目录为 index index.html; #默认页面为index.html } } nginx -s reload #重新加载 curl localhost:81/nginx1 #之后就返回了 nginx2 的页面信息
负载均衡
体验场景,不建议在工作中使用
cd /data mv Nginx1 nginx1 #将文件名恢复 vi /etc/nginx/conf.d/vhost.conf server{ listen 81; #监听81端口 server_name localhost; #域名为www.test.com location / { # / 意思是随意匹配 root /data/nginx1; #主目录为 Nginx1 index index.html; #默认页面为index.html } } server{ listen 82; #监听82端口 server_name localhost; #域名为www.test.com location / { # / 意思是随意匹配 root /data/nginx2; #主目录为 Nginx2 index index.html; #默认页面为index.html } } server{ listen 83; #监听83端口 server_name localhost; #域名为www.test.com location / { # / 意思是随意匹配 root /data/nginx3; #主目录为 Nginx3 index index.html; #默认页面为index.html } } nginx -t #检查 Nginx 服务 nginx -s reload #重新加载服务 curl localhost:81 curl localhost:82 curl localhost:83 #必须全部访问正常 #编辑负载均衡文件 vi /etc/nginx/conf.d/lb.conf upstream www.test.com{ #创建虚拟主机组,包含三个主机,分别监听 81 82 83 三个端口 server localhost:81; server localhost:82; server localhost:83; } server{ #定义了一个接受所有请求的模块 location / { #通用匹配,加上反向代理,请求的url能匹配上这个location Nginx就会把请求代理到www.test.com proxy_pass http://www.test.com; #Nginx会根据上游服务器的健康状况来选择一个服务器来处理请求,如果 一个不能工作,Nginx也会把请求自动转发到可以工作的服务器上面 } } nginx -s reload #保存并重新加载配置 vi /etc/hosts 127.0.0.1 www.test.com curl www.test.com curl www.test.com curl www.test.com #每次返回的数据都不一样,由服务器轮流返回数据,这就是负载均衡配置
#补充权重值,来选择哪个优先转发 vi /etc/nginx/conf.d/lb.conf upstream www.test.com{ server localhost:81 weight=2; server localhost:82 weight=1; } :wq nginx -s reload #重新加载 curl www.test.com #配置监听81端口的主机返回的次数比较多,使用 curl 命令进行测试
#设置备用服务器 vi /etc/nginx/conf.d/lb.conf upstream www.test.com{ server localhost:81 backup; #将主机1设置为备用服务器 server localhost:82; server localhost:83; } :wq nginx -s reload #重新加载 curl www.test.com #此时主机1成为备用服务器,不会再回答,主要由主机2和主机3回答
#启用备用服务器 vi /etc/nginx/conf.d/lb.conf upstream www.test.com{ server localhost:81 backup; #将主机1设置为备用服务器 server localhost:82 down; #将主机2和主机3手动 down 掉 server localhost:83 down; } :wq nginx -s reload #重新加载 curl www.test.com #此时主机1成为唯一的一台服务器
#启用down掉的服务器 vi /etc/nginx/conf.d/lb.conf upstream www.test.com{ server localhost:81 backup; #将主机1设置为备用服务器 server localhost:82; #将主机3手动 down 掉 server localhost:83 down; } :wq nginx -s reload #重新加载 curl www.test.com #此时主机2成为唯一的一台服务器,主机1为备用服务器