Niginx反向代理负载均衡

时间:2021-03-24 13:24:45

1.单机容量问题,水平扩展: 先不考虑数据库和服务器共享一台机子的问题,它的单机也是有容量问题的,因此需要系统有一定的水平扩展能力,就依托于niginx的反向代理做一个

             收口的操作。 因为对外的域名是一致的只有一个miaoshaserver.com , 如何对同一个域名 可以代理到多台applicationserver的服务器上呢 

2.niginx的反向代理 :      它可以代理我们后端的tomcat集群 ,以一个统一域名的方式暴露出去,供用户调用。

3.负载均衡配置:  最后我们可以依靠niginx的负载均衡配置,论询等等负载均衡的策略,使得应用可以水平扩展。

 

解决方案:1.mysql数据库开放远端连接

        2.服务端对称水平部署

        3.验证访问

 

1.一台nginx服务器,一台数据库,另外两台server服务器。

2利用scp将程序cp到另外两台服务器上,本台机子做数据库

 

scp -r /var/www  root@私有网址内网访问速度比较快:/var/

 

3,到服务器启动程序,但是要注意,配置数据库连接,在application.properties中加入一行数据库配置:配置完记得./depoly.sh &

Niginx反向代理负载均衡

利用telnet来ping一下通不通,若没有安转telnet就yum install telnet安装;但是telnet会失败,应该要回到数据库机子上,打开数据库,打开数据库里自带的mysql,

show databases;
use mysql;
show tables;
select host, user,password from user;
grant all privileges on *.* to root@'%' identifided by '密码'; //给所有的database和table都授权,host为%,通过密码就可以访问
flush privileges;

 

 

4.这台服务器还没有安转java版本

cd /var/www
chmod -R 777 jdk-8u(就是传过来的java包,省略了)
rpm -ivh jak-8u(省略了)

5.最后执行./deploy.sh &    启动miaosha服务,可以利用tail -f nohub.out来查看启动日志

6.Nginx:

  1,使用nginx做web服务器    :将css。html等静态资源放上去暴露出来供客户端使用,即静态的web服务器

  2,使用nginx做动静分离服务器  :在做反向代理服务之后,我们可以将 静态的请求依旧路由在本地的html文件中, 直接以静态请求的方式返回给前端,之后依赖第三点

  3,使用nginx做反向代理服务器  :将动态请求反向代理到后端,并且以ajax请求的方式可以返回给前端一些固定的json参数来完成动静分离的使用

 

Niginx反向代理负载均衡

 

上图解析:H5的前端ajax会访问miaoshaserver,nginx通过反向代理到miaosha1或者miaosha2服务器上,然后通过jdbc访问数据库,H5的static静态资源也会访问nginx来获取静态资源,nginx从本地磁盘获取,一般企业级的都会使用NAS网盘来挂载到本地磁盘,因为阿里的服务器一般都有上限的。那么nginx如何来判断何时访问本地磁盘,何时做反向代理呢?一般都是通过请求的地址是不是在miaoshaserver/resources下,如果是就访问本地磁盘,如果不是就做反向代理。

 

6.首先在前端资源页面新键一个gethost.js,将锁头页面中都引入gethost.js   然后将所有的localhost:8080都替换成"+g_host+"

var g_host="localhost:8090";

7nginx:

  我们熟知的apache是c++编写的so文件,可以任意下载和卸载,只需要重启一下服务即可,但是nginx很遗憾,没有集成这一点,他必须基于编译的时候指定我需要将nginx模块编译进我们的nginx中,尤其是nginx对于lua脚本的支持,编译时候需要指定很多lua的参数设定,这样对于开发来说是非常困难的,而且在做商品详情页性能优化的时候,需要lua提供的redis,memcahe,以及本地的内存缓存支持的时候,他的编译过程是非常痛苦的,强烈推荐大家使用OpenResty框架。集成了反向代理,lua的支持 ,redis的支持等等,因此只要将OpenResty打包下载下来,并且编译之后,就可以使用

Niginx反向代理负载均衡