自学内容网 自学内容网

Linux-Nginx反向代理

https://i-blog.csdnimg.cn/blog_migrate/58966ddd9b29aabe8841f5ec34f0d31c.gif

🏡作者主页:点击!

🤖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为备用服务器

原文地址:https://blog.csdn.net/Jerry_BLOG/article/details/144006286

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!