Nginx反向代理实现负载均衡以及session共享
随着社会的发展和科技水平的不断提高,互联网在人们日常生活中扮演着越来越重要的角色,同时网络安全,网络可靠性等问题日益突出。传统的单体服务架构已不能满足现代用户需求。随之而来的就是各种分布式/集群式的服务架构模式。实现多台服务共同提供服务。最常见的就是Nginx代理技术。
对于用户的请求到达nginx代理服务器后,根据不同的策略被转发到不同的server上,以实现负载均衡。
使用多个Tomcat实例,配置server.xml
<!-- Connector中使用线程池 -->
修改:不同的实例中使用不同的端口号
<1>-----------------------------------------------------------------------------------------------------------------------------
<Connector executor="tomcatThreadPool" port="8081" protocol="org.apache.coyote.http11.Http11AprProtocol"
connectionTimeout="30000" redirectPort="8443" URIEncoding="UTF-8" enableLookups="false"
connectionUploadTimeout="150000" acceptCount="300" keepAliveTimeout="120000"/>
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>
<2>-----------------------------------------------------------------------------------------------------------------------------
<Connector executor="tomcatThreadPool" port="8082" protocol="org.apache.coyote.http11.Http11AprProtocol"
connectionTimeout="30000" redirectPort="8443" URIEncoding="UTF-8" enableLookups="false"
connectionUploadTimeout="150000" acceptCount="300" keepAliveTimeout="120000"/>
<Connector port="8019" protocol="AJP/1.3" redirectPort="8443"/>
...
在环境变量中配置多个CATALINA_HOME,分别对应各自的tomcat实例,还需修改catalina.bat和startup.bat中各自的CATALINA_HOME的名字和环境变量中的要对应。
部署好项目。
配置Nginx:在。。Nginx/conf/nginx.conf,打开并配置nginx.conf
#tomcat 集群配置
upstream myapp {
# myapp 是集群的名称,低版本(8.5.31之前)的tomcat会对该名称构成的转发地址进行校验,不能存在下划线“_”等特殊字符,否则会产生400错误;
#weight 根据权重值的大小决定访问几率;
#ip_hash 根据客户端ip地址的hash值分配将要转发的server(由于此ip是固定的,可以实现session共享。另外使用redis,springSession也可以实现session共享机制);
#fair 根据server的响应速度快慢分配;
# url_hash;
#默认采用轮询方式
server 127.0.0.1:8081 ; #tomcat1配置
server 127.0.0.1:8082 ;
#server 127.0.0.1:8083 weight=6;
# server 192.168.1.108:88 weight=3; #tomcat2配置
}
server {
listen 9090; #监听端口
server_name localhost; #nginx服务的ip地址
location / {
proxy_pass http://myapp;
proxy_redirect default;
proxy_set_header Host $host:$server_port;
}
}
分别启动应用服务,再启动nginx服务
最后,访问 http://localhost:9090/(项目名称)
Nginx反向代理实现负载均衡以及session共享的更多相关文章
- nginx和tomcat实现反向代理、负载均衡和session共享
这类的文章很多,nginx和tomcat实现反向代理.负载均衡实现很容易,可以参照http://blog.csdn.net/liuzhigang1237/article/details/8880752 ...
- Tomcat+Nginx+Redis+MySQL实现反向代理、负载均衡、session共享
一.环境准备 时间同步 关闭防火墙 联通网络,配置yum源 软件包链接:https://pan.baidu.com/s/1qYbtpnQ 二.安装nginx 1.解决依赖关系 [root@nginx- ...
- Nginx反向代理,负载均衡,redis session共享,keepalived高可用
相关知识自行搜索,直接上干货... 使用的资源: nginx主服务器一台,nginx备服务器一台,使用keepalived进行宕机切换. tomcat服务器两台,由nginx进行反向代理和负载均衡,此 ...
- 通过Nginx+tomcat+redis实现反向代理 、负载均衡及session同步
一直对于负载均衡比较陌生,今天尝试着去了解了一下,并做了一个小的实验,对于这个概念有一些认识,在此做一个简单的总结 什么是负载均衡 负载均衡,英文 名称为Load Balance,指由多台服务器以对称 ...
- 【转】Nginx反向代理和负载均衡
原文链接:http://www.cnblogs.com/shuoer/p/7820899.html Nginx反向代理和负载均衡 环境说明 由于我使用的是windows系统,所以我用虚拟机虚拟出来了3 ...
- [转]Nginx反向代理和负载均衡部署指南
Nginx反向代理和负载均衡部署指南 1. 安装 1) 从Nginx官网下载页面(http://nginx.org/en/download.html)下载Nginx最 ...
- Nginx反向代理与负载均衡应用实践(一)
Nginx反向代理与负载均衡应用实践(一) 链接:https://pan.baidu.com/s/1xB20bnuanh0Avs4kwRpSXQ 提取码:migq 复制这段内容后打开百度网盘手机App ...
- nginx反向代理与负载均衡
一:nginx反向代理与负载均衡配置思路与用法 1.nginx反向代理:就是你去相亲时,媒婆就是这里的代理,让媒婆带你去见姑娘 2.nginx负载均衡:就是有很多的媒婆经过商量给你选出最适合你的姑娘, ...
- 谁说前端不需要懂-Nginx反向代理与负载均衡
转:https://juejin.im/post/5b01336af265da0b8a67e5c9 学到老活到老 前端圈一直很新,一直要不停的学习,而且在进入大厂的路上,还要求熟悉一门后台语言等等.用 ...
随机推荐
- Docker 系列之 常用镜像
Ubuntu 实战 操作 # 拉取 18.04 版本的 Ubuntu 镜像 docker pull ubuntu:latest # 以交互方式运行并进入 ubuntu 容器环境 docker run ...
- 【带着canvas去流浪(10)】文字烟花
目录 一. 文字烟花 二. 动画原理 2.1 像素操作 2.2 烟花生成算法 2.3 计时器 示例代码托管在:http://www.github.com/dashnowords/blogs 博客园地址 ...
- Format a Business Object Caption 设置业务对象标题的格式
In this lesson, you will learn how to format the caption of a detail form that displays a business o ...
- 自学_JAVASCRIPT<四>
自学_JAVASCRIPT 什么是JAVASCRIPT HTML只是描述网页长相的标记语言,没有计算.判断能力,如果所有计算.判断(比如判断文本框是否为空.判断两次密码是否输入一致)都放到服务器端执行 ...
- 【React Native】react-native之集成支付宝支付、微信支付
一.在使用支付宝支付.微信支付之前导入桥接好的头文件 github地址:https://github.com/xujianfu/react-native-pay 二.集成支付宝支付流程 RN支付宝需要 ...
- Python安装常见问题(1):zipimport.ZipImportError: can't decompress data(此问题不解决pip安装不成功)
在CentOS以及其他的Linux系统中遇到安装包安装错误的原因,大多数都是因为缺少依赖包导致的,所以对于错误:zipimport.ZipImportError: can’t decompress d ...
- android 获得一些设备信息的静态函数
1.Brand,IMEI,DeviceOS,DeviceFactoryTime public static String getDeviceBrand(Context context) { Strin ...
- 轻量级监控平台之cpu监控
轻量级监控平台之cpu监控脚本 #!/bin/bash #进程监控脚本 #功能需求: 上报机器的硬件层面-cpu负载数据 . /etc/profile . ~/.bash_profile pushur ...
- 【tf.keras】Resource exhausted: OOM when allocating tensor with shape [9216,4096] and type float on /job:localhost/replica:0/task:0/device:GPU:0 by allocator GPU_0_bfc
运行以下类似代码: while True: inputs, outputs = get_AlexNet() model = tf.keras.Model(inputs=inputs, outputs= ...
- JUC-3-ConcurrentHashMap
ConcurrentHashMap 锁分段机制 JDK1.8