nginx反向代理及负载均衡的实现

这篇具有很好参考价值的文章主要介绍了nginx反向代理及负载均衡的实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

1.nginx反向代理

2.nginx负载均衡

3.nginx反向代理及负载均衡实现

nginx反向代理

4台主机都需要的操作:

两台服务器操作:

两台主机服务器进行测试;

nginx负载均衡配置

4.nginx配置其他参数

多虚拟机访问

后端服务器日志中需要记录客户端真实ip

nginx设置不同的url访问不同页面,可以实现动静分离

在代理主机上设置:

在web服务器上:

测试:

5.nginx的upstream其他参数

backup:

down:

1.nginx反向代理

原理:客户端向反向代理服务器发送请求,反向代理服务器将请求发送给相应服务器,然后服务器收到并将响应返回给反向代理服务器,由反向代理服务器将响应返回给客户端。

优点:1.可以有效防止对服务器的恶意攻击。2.减少服务器的压力。3.提高访问速度。

2.nginx负载均衡

负载均衡:防止一台服务器宕机之后,业务出现阻断。

优点:减少服务器压力,解决某时刻高并发。

3.nginx反向代理及负载均衡实现

nginx反向代理

配置准备4台主机,并在5台主机,4台上都安装nginx,另外一台客户端

4台主机都需要的操作:

检查防火墙与selinux
1.安装epel扩展源
yum install -y epel-release

2.安装nginx
yum install -y nginx

两台服务器操作:

配置虚拟主机
1.vim /etc/nginx/conf.d/vhost.conf
server {
	listen 80;
	server_name bbs.yunjisuan.com;
	location / {
	root /usr/share/nginx/html/bbs;
	index index.html index.htm;

}
access_log /usr/share/nginx/html/www/logs/access_www.log main;    这两个日志目录需要自己创建
}
server {
        listen 80;
        server_name www.yunjisuan.com;
        location / {
        root /usr/share/nginx/html/www;
        index index.html index.htm;

}
access_log /usr/share/nginx/html/bbs/logs/access_bbs.log main;
}

2.配置网页页面
mkdir -pv /usr/share/nginx/html/{bbs,www}
切到不同目录配置页面即可
echo "this is $HOSTNAME bbs" > index.html

3.重启nginx服务

两台主机服务器进行测试;

curl -H host:bbs.yunjisuan.com 192.168.27.12
curl -H host:bbs.yunjisuan.com 192.168.27.122
curl -H host:bbs.yunjisuan.com 192.168.27.123
curl -H host:www.yunjisuan.com 192.168.27.123
curl -H host:www.yunjisuan.com 192.168.27.122

nginx负载均衡配置

负载均衡需要在两台不是服务器的主机上操作

负载均衡的关键段是upstream(定义转发池)porxy_pass (指定转发)

两台主机:
1.编写额外配置文件
[root@lb01 ~]# more /etc/nginx/conf.d/vhosts.conf 
upstream www_server_pools {
	server 192.168.27.122:80 weight=2;    定义转发找这两个服务器
	server 192.168.27.123:80 weight=1;
}
server {
	listen 80;
	server_name www.yunjisuan.com;
	location / {
	proxy_pass http://www_server_pools;    当访问网址时,转发到这个转发池
}
}
server {
        listen 80;
        server_name bbs.yunjisuan.com;
        location / {
        proxy_pass http://www_server_pools;

}
}
2.重新启动
3.在客户端配置hosts解析文件
vim /etc/hosts
代理主机    www.yunjisuan.com bbs.yunjisuan.com
4.客户端进行测试
for ((i=1;i<=10;i++));do curl http://bbs.yunjisuan.com; done

4.nginx配置其他参数

多虚拟机访问

当配置好负载均衡后,访问bbs可能出现的页面还是www,是因为没有找到对应的请求头部信息。

配置:

1.在代理主机上配置
[root@lb01 ~]# more /etc/nginx/conf.d/vhosts.conf 
upstream www_server_pools {
	server 192.168.27.122:80 weight=2;
	server 192.168.27.123:80 weight=1;
}
server {
	listen 80;
	server_name www.yunjisuan.com;
	location / {
	proxy_pass http://www_server_pools;
	proxy_set_header Host $host;    定义这一行
	
}
}
server {
        listen 80;
        server_name bbs.yunjisuan.com;
        location / {
        proxy_pass http://www_server_pools;
	proxy_set_header Host $host;
	

}
}

后端服务器日志中需要记录客户端真实ip

默认不会再服务器中记录客户端真实ip,只会记录代理主机,所以开启相应参数,记录客户端真实ip。

在代理主机进行操作
[root@lb01 ~]# more /etc/nginx/conf.d/vhosts.conf 
upstream www_server_pools {
	server 192.168.27.122:80 weight=2;
	server 192.168.27.123:80 weight=1;
}
server {
	listen 80;
	server_name www.yunjisuan.com;
	location / {
	proxy_pass http://www_server_pools;
	proxy_set_header Host $host;
	proxy_set_header X-Forwarded-For $remote_addr;
}
}
server {
        listen 80;
        server_name bbs.yunjisuan.com;
        location / {
        proxy_pass http://www_server_pools;
	    proxy_set_header Host $host;
	    proxy_set_header X-Forwarded-For $remote_addr;

}
}

重启并测试

nginx设置不同的url访问不同页面,可以实现动静分离

在代理主机上设置:
vim /etc/nginx/conf.d/vhosts.conf
upstream static_pools {                    定义不同的转发池
        server 192.168.27.122:80;
}
upstream active_pools {
        server 192.168.27.123:80;
}
server {
        listen 80;
        server_name www.yunjisuan.com;
        location /static/ {
       
        proxy_pass http://static_pools;
        proxy_set_header Host $host;
}
        location /active/ {
         proxy_pass http://active_pools;
         proxy_set_header Host $host;
        }

}

重启
在web服务器上:
两台服务器都可以操作
1.将之前的虚拟主机停到改一下后缀名称
2.配置不同页面
cd /usr/share/nginx/html/
mkdir static
cd static/
echo "this is static" > index.html
cd ..
mkdir active
echo "this is active" > index.html

重启
测试:
curl http://www.yunjisuan.com/active/
curl http://www.yunjisuan.com/static/    一定要带最后面的/

5.nginx的upstream其他参数

backup:

当所有服务器宕机之后,会去寻找配置了backup的页面

upstream www_server_pools {
	server 192.168.27.122:80 weight=2;
	server 192.168.27.123:80 weight=1;
    server 192.168.27.120:80 backup;
}

down:

配置之后,会将会话保持:

upstream www_server_pools {
    ip_hash;
	server 192.168.27.122:80 weight=2;
	server 192.168.27.123:80 weight=1;
  
}

注意:backup和ip_hash不可以同时使用。文章来源地址https://www.toymoban.com/news/detail-630830.html

到了这里,关于nginx反向代理及负载均衡的实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 编译安装Nginx和使用五种算法实现Nginx反向代理负载均衡

    目录 Ubuntu中安装Nginx 概念介绍 负载均衡 几种负载均衡算法 反向代理 环境规划 配置反向代理 加权负载均衡(Weighted Load Balancing) 轮询(Round Robin) IP 哈希(IP Hash) 最少连接(Least Connections) URL 哈希(URL Hash) 想要安装nginx,首先我们需要有一台Ubuntu的虚拟机,然后最好在

    2024年01月25日
    浏览(53)
  • 基于centos7.9通过nginx实现负载均衡以及反向代理

    摘要:负载均衡: 负载均衡是一种技术,用于在多个服务器之间分发传入的网络流量,以平衡服务器的负载,提高系统的可用性和性能。当您有多台服务器时,您可以使用负载均衡将请求分发到这些服务器上,从而防止单个服务器过载而影响用户体验。 反向代理: 反向代理

    2024年02月13日
    浏览(44)
  • Nginx 反向代理负载均衡

    Nginx 反向代理负载均衡 普通的负载均衡软件,如 LVS,其实现的功能只是对请求数据包的转发、传递,从负载均衡下的节点服务器来看,接收到的请求还是来自访问负载均衡器的客户端的真实用户;而反向代理就不一样了,反向代理服务器在接收访问用户请求后,会代理用户

    2024年02月03日
    浏览(54)
  • nginx负载均衡+反向代理

    最近业务上遇到一个需求,其它系统因业务校验需要调用上级系统进行数据发送或校验,如果上级系统停机维护,其它下级系统发送的http通讯会丢失,还要一次次补发数据,耗费人工与时间。使用nginx+反向代理解决了部分需求。 目标:当服务A停机维护,其它系统会调用服务

    2024年02月08日
    浏览(41)
  • nginx反向代理、负载均衡

         

    2024年02月12日
    浏览(41)
  • nginx反向代理 负载均衡

    目录 1.反向代理介绍:  2.七层代理和四层代理:   2.1 七层代理:   2.2 四层代理: 3.反向代理web服务器:   3.1 代理服务器配置: 3.2 服务器配置 : 3.3 客户端访问: 3.4 代理不同端口: 4.反向代理动静分离:   4.1  准备:   4.2 代理服务器配置:   4.3 动态服务器配置:

    2024年02月10日
    浏览(44)
  • Nginx反向代理与负载均衡

    代理是在服务器和客户端之间假设的一层服务器,代理将接收客户端的请求并将它转发给服务器,然后将服务端的响应转发给客户端。 不管是正向代理还是反向代理,实现的都是上面的功能。 正向代理,意思是一个位于客户端和原始服务器(origin server)之间的服务器,为了从

    2023年04月26日
    浏览(42)
  • Nginx反向代理和负载均衡

    ` 正向代理 反向代理 七层反向代理: (基于http协议) http { upstream 服务器组名称 { server IP1:PORT [weight=1 …]; server IP2:PORT; … 调度算法(rr轮询/加权轮询,least_conn最小连接,ip_hash,url_hash,fair); } server { location ~ … { proxy_pass http://服务器组名称; proxy_set_header HosT $host; proxy_set_he

    2024年02月03日
    浏览(90)
  • Nginx的反向代理和负载均衡

    Nginx作为面试中的大…小头目,自然是不能忽视的,而以下两点就是它能成为面试中头目的招牌。 反向代理和负载均衡 在此之前,我们先对Nginx做一个简单的了解 Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。因它的稳定性、丰富的功能

    2024年02月08日
    浏览(49)
  • 06、Nginx反向代理与负载均衡

    反向代理 : 这种代理方式叫做,隧道代理。有性能瓶颈,因为所有的数据都经过Nginx,所以Nginx服务器的性能至关重要 负载均衡 : 把请求,按照一定算法规则,分配给多台业务服务器(即使其中一个坏了/维护升级,还有其他服务器可以继续提供服务) 反向代理+负载均衡:

    2024年02月12日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包