nginx负载均衡+反向代理

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

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

加入代理配置,上级系统配置nginx.conf文件。

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
	#nginx日志
	log_format  main  '$remote_addr - $remote_user [$time_local] "$request" $http_host'
                  '$status $body_bytes_sent "$http_referer" $upstream_addr'
                  '"$http_user_agent" "$http_x_forwarded_for"';

    sendfile        on;
    keepalive_timeout  65;
	
	
	upstream linuxidc { 
	    ip_hash;
        server 127.0.0.1:7080 weight=3; 
        server 127.0.0.1:7081 weight=2; 
	}
	server {
        listen  8812;
        server_name localhost;
        #nginx日志
        access_log logs/access.log.lb01 main;
        location /{
            proxy_pass http://linuxidc/;
            rewrite ^/api$ /$1 break;
            client_max_body_size 300M;
        }
    }
    
}

踩坑点:记得加上proxy_pass 最后这个“/”,特此注意。

proxy_pass http://linuxidc/;

upstream设备上的状态设置

1、weight:默认为1.weight越大,负载的权重就越大。
2、ip_hash:nginx中的ip_hash技术能够将某个ip的请求定向到同一台后端,这样一来这个ip下的某个客户端和某个后端就能建立起稳固的session,一个服务挂掉,需重新登录获取session。
因此ip_hash是有缺陷的,不能在一些情况下使用:
2-1、 nginx不是最前端的服务器。ip_hash要求nginx一定是最前端的服务器,否则nginx得不到正确ip,就不能根据ip作hash。譬如使用的是squid为最前端,那么nginx取ip时只能得到squid的服务器ip地址。
2-2、nginx的后端还有其它方式的负载均衡。假如nginx后端又有其它负载均衡,将请求又通过另外的方式分流了,那么某个客户端的请求不能定位到同一台session应用服务器上。

nginx日志配置

1、upstream_addr:后台upstream的地址,即真正提供服务的主机地址。
2、http_host:请求地址,即浏览器中你输入的地址(IP或域名)。

已解决问题

nginx配置的日志,日志文件存放在log目录下access.log.lb01。
nginx负载均衡+反向代理
从日志中可以看出,因为配置了ip_hash,每次的请求并没有负载,当把ip与服务匹配的服务进程干掉,继续调用接口,此时会负载走另外的服务。

未解决的问题

没有处理session或token共享问题。咨询了一下大佬,解决这个问题登录的时候需要把session或token放入redis,每次去调用接口,带着session或token一起请求,这样每次的请求会负载到不同的服务中。文章来源地址https://www.toymoban.com/news/detail-476543.html

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

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

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

相关文章

  • Nginx反向代理和负载均衡

    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日
    浏览(16)
  • Nginx的反向代理和负载均衡

    Nginx的反向代理和负载均衡

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

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

    06、Nginx反向代理与负载均衡

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

    2024年02月12日
    浏览(8)
  • 【nginx实战】nginx正向代理、反向代理、由反向代理实现的负载均衡、故障转移详解

    【nginx实战】nginx正向代理、反向代理、由反向代理实现的负载均衡、故障转移详解

    本文将要讨论以下内容 正向代理与反向代理的基本概念 Nginx正向代理服务的配置指令、Nginx反向代理服务的配置指令 Nginx反向代理服务器的应用——负载均衡、故障转移 案例分析   正向代理的概念 局域网内的机器借助代理服务访问局域网外的网站,此代理服务器提供的服务

    2024年01月24日
    浏览(14)
  • Nginx【反向代理负载均衡动静分离】--中

    Nginx【反向代理负载均衡动静分离】--中

    示意图 示意图 负载均衡就是将负载分摊到不同的服务单元,既保证服务的可用性,又保证响应足够快 linux 下有Nginx、LVS、Haproxy 等等服务可以提供负载均衡服务, Nginx 提供了几种分配方式(策略): 轮询(默认) ​ 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服

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

    Nginx反向代理实现负载均衡webshell

    目录 本实验所用的环境: 问题一:由于nginx采用的反向代理是轮询的方式,所以上传文件必须在两台后端服务器的相同位置上传相同的文件 问题二:我们在执行命令时,无法知道下次的请求交给哪台机器去执行我们在执行hostname -i查看当前执行机器的IP时,可以看到IP地址一

    2024年02月04日
    浏览(15)
  • Nginx【反向代理负载均衡动静分离】--下

    Nginx【反向代理负载均衡动静分离】--下

    示意图 图解 一个master 管理多个worker ● 争抢机制示意图 图解 一个master Process 管理多个worker process, 也就是说Nginx 采用的是多进程结构, 而不是多线程结构. 当client 发出请求(任务)时,master Process 会通知管理的worker process worker process 开始争抢任务, 争抢到的worker process 会开启连

    2024年02月08日
    浏览(8)
  • nginx反向代理_负载均衡的配置

    nginx反向代理_负载均衡的配置

    两台虚拟机: 88节点是自己的虚拟机 66节点是小组成员的虚拟机,我们暂且叫同学机 tomcat端口,分别为8081和8082 总结就是: 自己虚拟机上面安装nginx和tomcat8082 同学机上安装tomcat8081 都有两种方式,一种直接下载,第二种使用解压包方式。这里大多使用解压包方式。 我下载的

    2023年04月24日
    浏览(9)
  • Nginx反向代理-负载均衡、webshell实践

    目录 1.nginx反向代理-负载均衡 1)搭建web项目 2)修改 nginx.conf的配置 2.webshell 实践 1)异或操作绕过 2)取反绕过  3)php语法绕过  1.nginx反向代理-负载均衡 1)搭建web项目 首先通过 SpringBoot+Freemarker 快速搭建一个 WEB 项目:springboot-web-nginx然后在该项目中,创建一个 IndexNgin

    2024年02月12日
    浏览(8)
  • Nginx反向代理配置+负载均衡集群部署

    Nginx反向代理配置+负载均衡集群部署

    什么是代理 正向代理既是通过代理服务器访问外网资源,而反向代理与之相反是将局域网的资源通过反向代理服务器提供给互联网用户浏览和使用等。 实验环境图 流量过程 当客户端发起请求后通过Internet (本实验为NAT网卡)来到代理服务器上,代理服务器经算法选择后调用

    2024年02月13日
    浏览(16)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包