51dev.com IT技术开发者社区

51dev.com 技术开发者社区

反向代理负载均衡的实现

代码星球阅读(11)2020-05-23 收藏0次评论

现在的负载均衡手段比较多,基于重定向的,基于DNS的,反向代理的(基于转发)的等等等等。。。

 

这里就简单的写一下基于转发的负载均衡实现手段。

参与工具  :tomcat7 、nginx 、写到哪加到哪

 

Nginx (engine x) 是一个高性能的HTTP和反向代理服务器。nginx可以用的功能挺多的,比如静态文件代理,文件下载,u静态资源服务器等;

其他的想法:

  按官网的说法nginx可以支持到5W并发,不过这与服务器的性能也有很大关系。至于tomcat默认配置的150并发,在并发数超过tomcat的并发,应该考虑服务器的集群。

不过个人觉得理论上这些并发是没有上限,主要与硬件瓶颈有关,JVM每启动一个线程大概需要JVM分配1M的空间,再加上服务器进程限制,灵活配置吧。

这些手段都是为了优化用户感官,瓶颈在服务器,可以考虑负载均衡,服务器集群、瓶颈在数据库,可以考虑数据库集群,读写分离;服务器在带宽,可以考虑设置静态文件

服务器。

----------------------------------------------------------------------

基于转发的服务器,请求的地址总是相同的,由nginx负责转发用户请求,将服务器返回数据返还用户,其实可以吧nginx理解成服务器,nginx负责请求真正的服务器。

先下载nginx-----》》》 下载地址: http://nginx.org/en/download.html

 

 随便选个下吧。用windows的,我下载的1.13.6的那个,下载后

可以看一看它的默认配置

监听端口啊,默认访问页面啊什么的

点nginx.exe启动,然后访问一下试试:

成功访问到了nginx的欢迎 页面;然后随便写个javaweb小项目;

配置一下nginx的反向代理

server {
        listen       80;
        server_name  localhost;
        location / {
	    proxy_pass  http://localhost:8080; #在这里增加代理   转发服务
            root   html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }

  

然后启动tomcat   ,重启nginx   nginx -s roload    重启加载配置文件

然后浏览器访问 80端口,可以看到正常访问了 ps:tomcat2是我预先准备好的  端口微8080

然后在启动一个tomcat  端口为8082  也可以正常访问了

 

修改一下nginx  反向代理至不同的服务器  ,主要是增加upstream模块

 upstream forward {   #增加upstream模块  配置转发  默认配置基于时间轮询进行转发   服务down掉会自动剔除   不过可靠性低
      server loaclhost:8080; 
      server loaclhost:8082;
	}
    server {
        listen       80;
        server_name  localhost;

   
        location / {
	    proxy_pass  http://forward;  #修改反向代理请求
            root   html;
            index  index.html index.htm;
        }

    
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        } 
    }

  然后重启nginx服务器  nginx -s reload

  直接访问80端口  可以看到  访问同意地址  已经被反向代理到了不同的服务器

 

 

 

 

 

 

以上就是反向代理负载均衡的实现的全部内容。