Niginx反向代理负载均衡

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

             收口的操做。 由于对外的域名是一致的只有一个miaoshaserver.com , 如何对同一个域名 能够代理到多台applicationserver的服务器上呢 html

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

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

 

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

        2.服务端对称水平部署nginx

        3.验证访问c++

 

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

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

 

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

 

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

利用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参数来完成动静分离的使用

 

 

上图解析: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打包下载下来,而且编译以后,就能够使用

相关文章
相关标签/搜索