CentOS7下Nginx搭建反向代理,并使用redis保存session
1、启动两个tomcat,端口分别为8080,8081
2、配置nginx,vim /usr/local/nginx/conf/nginx.conf
添加如下配置:
3、启动nginx或热加载
启动:
cd /usr/local/nginx/sbin
./nginx
热加载
./nginx -s reload
4、在tomcat中部署一个项目,写个servlet如下
import java.io.IOException;
import java.util.Random; import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession; public class HelloWorldServlet extends HttpServlet{
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
HttpSession session= request.getSession();
int port2=request.getLocalPort();
if(session.getAttribute("userid")==null){
String userid= String.valueOf(new Random().nextInt(100)) ;
session.setAttribute("userid", userid);
response.getWriter().append("Hello, "+userid+",this is "+port2+ " port");
}else{
String userid=(String)session.getAttribute("userid");
response.getWriter().append("Welcome back, "+userid+", this is "+port2+" port") ;
} }
}
配置web.xml
<servlet>
<servlet-name>HelloWorldServlet</servlet-name>
<servlet-class>com.atguigu.servlet.HelloWorldServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloWorldServlet</servlet-name>
<url-pattern>/test</url-pattern>
</servlet-mapping>
5、访问测试,浏览器地址栏输入:
nginx所在电脑ip/项目名/test
此时,默认是轮询算法,每次访问的tomcat不一样导致,无法维护session会话。
6、解决办法:用redis存储session,实现session共享
6.1把jar包拷到tomcatlib包下
commons-pool2-2.0.jar
jedis-2.5.2
tomcat-redis-session-manager1.2.jar
6.2通知tomcat,不要管理session了,交给redis管理,需要修改tomcat配置文件,注意修改前先关闭tomcat
启动redis redis-server /redis配置文件
编辑context.xml,在context节点加入:
<Valve className="com.orangefunction.tomcat.redissessions.RedisSessionHandlerValve" />
<Manager className="com.orangefunction.tomcat.redissessions.RedisSessionManager"
host="redis电脑ip"
port="redis端口号"
database="0"
maxInactiveInterval="60" />
7、在刷新浏览器,即使就会保持会话了,检查redis中也存了数据。
CentOS7下Nginx搭建反向代理,并使用redis保存session的更多相关文章
- 七、CentOS 6.5 下 Nginx的反向代理和负载均衡的实现
CentOS 6.5 下 Nginx的反向代理和负载均衡的实现 * 修复上面文章的问题: 复制出一个tomcat2之后,修改service.xml文件时,要修改三个端口: 1. <!-- 800 ...
- 使用Nginx搭建Tomcat9集群,Redis实现Session共享
使用Nginx搭建Tomcat9集群,Redis实现Session共享 1.tomcat准备 首先准备两个tomcat9 ,修改配置文件server.xml 如果在多个服务器上分别启动tomcat 则 ...
- linux下nginx【反向代理】配置【负载均衡】配置
nginx 可以配置多个端口: 1.10088端口 配置反向代理,消除跨域问题. 2.10087端口 配置ip_hash模式的负载均衡,ip_hash可以绕开解决session共享的问题. nginx ...
- ECS上nginx搭建反向代理通过内网访问阿里云OSS服务
对于付不起钱的小伙计,为了给公司省钱,想尽一切招数.今天就来分享一个使用阿里云OSS存储搭配CDN使用的网站服务器部署方法. 简介 阿里云OSS 阿里云提供的一种文件存储方案,和我们以前接触的百度云B ...
- windows环境下 nginx+iis 反向代理解决跨域问题
项目基本完成,是时候花点时间整理一下最近的姿势了 1 什么是跨域? 网上对于跨域的概念会有大篇幅的文章去解释,似乎有点玄乎,初学者很容易对这个概念产生恐惧,跨域其实很简单,其实只要知道一点,无法跨域访 ...
- centos7下apache2.4反向代理
apache安装目录在/data/apache24,这里就不介绍apache的安装了. 一.反向代理配置 在/data/apache24/conf/extra下创建htttpd-proxy.conf文 ...
- [nginx] - 使用nginx实现反向代理,动静分离,负载均衡,session共享
反向代理概念 先说正向代理,比如要访问youtube,但是不能直接访问,只能先找个FQ软件,通过FQ软件才能访问youtube. FQ软件就叫做正向代理.所谓的反向代理,指的是用户要访问youtube ...
- Centos7 下nginx 搭建文件图片服务器
现在服务器部署nginx yum install -y epel-release yum install nginx -y 安装完成之后 访问ip 由此可见nginx服务是可用的 修改nginx的配置 ...
- Centos7.4下用Docker-Compose部署WordPress(续)-服务器端用Nginx作为反向代理并添加SSL证书(阿里云免费DV证书)
前言 在我写完Centos7.4下用Docker-Compose部署WordPress这篇文章后,我的个人博客已经正式的开始运作.但考虑到网站访问的安全性以及今后可能会重复利用服务器来部署其他网站的可 ...
随机推荐
- Zookeeper系列一:Zookeeper介绍、Zookeeper安装配置、ZK Shell的使用
https://www.cnblogs.com/leeSmall/p/9563547.html 一.Zookeeper介绍 1. 介绍Zookeeper之前先来介绍一下分布式 1.1 分布式主要是下面 ...
- QT插件+ROS 1 安装配置
测试环境: 系统版本:Ubuntu14.04 ROS版本:indigo QT版本:5.8.0 QtCreator安装 1 安装前准备,安装相应的GNU开发工具集和OpenGL开发库, 请注意安装软件都 ...
- Node.js读取某个目录下的所有文件夹名字并将其写入到json文件
针对解决的问题是,有些时候我们需要读取某个文件并将其写入到对应的json文件(xml文件也行,不过目前用json很多,json是主流). 源码如下:index.js var fs = require( ...
- 猜数字游戏,判断输入的数字与系统产生的数字是否一致(Math.random()与if嵌套循环)
package com.summer.cn; import java.util.Scanner; public class Test041509 { /** * java 随机数 Math * Mat ...
- 安装NVIDIA
安装NVIDIA显卡驱动 $ ubuntu-drivers devices; $ sudo apt install nvidia-340 (安装指定版本) 重启系统: $ nvidia-smi (查看 ...
- 20175310 《Java程序设计》第7周学习总结
20175310 <Java程序设计>第7周学习总结 本周博客: https://www.cnblogs.com/xicyannn/p/10705376.html 教材学习内容总结 这周学 ...
- odoo8 和odoo10区别
V8 函数:'sale_order_count': fields.function(_sale_order_count, string='# of Sales Order', type='integ ...
- 拉格朗日乘子法(Lagrange Multiplier)和KKT条件
拉格朗日乘子法:对于等式约束的优化问题,求取最优值. KKT条件:对于含有不等式约束的优化问题,求取最优值. 最优化问题分类: (1)无约束优化问题: 常常使用Fermat定理,即求取的导数,然后令其 ...
- Apache Spark 内存管理详解(转载)
Spark 作为一个基于内存的分布式计算引擎,其内存管理模块在整个系统中扮演着非常重要的角色.理解 Spark 内存管理的基本原理,有助于更好地开发 Spark 应用程序和进行性能调优.本文旨在梳理出 ...
- Nginx学习之如何搭建文件防盗链服务
前言 大家都知道现在很多站点下载资料都是要收费的,无论是积分还是金币,想免费只能说很少很少了,那么这些网站是如何做到资源防盗链的呢? 这里推荐一款比较容易上手的神器,Nginx本身提供了secure_ ...