1 前言

1.1 目的

为了正确的部署“ngix+memcached”特编写此部署手册,使安装人员可以通过部署手册知道如何部署系统,也为需要安装该系统的安装人员正确、快速的部署本系统提供帮助。

1.2 总体架构图

当一个请求结束时,session会被送回Memcached进行备份。当下一次请求开始时,本地Session可用,直接服务,请求结束后,session又被送回Memcached备份。如果下一次请求会被路由到其他Tomcat上。负责处理此此请求的Tomcat并不清楚Session的信息。此时它会从Memcached查找该Session,更新该Session并将其保存在本机内容。此次请求结束,session被修改,送回Memcached备份。

1.2.1 术语1

1.2.2 术语2

2 安装环境要求

2.1 网络环境要求

网络带宽要求10M 到100M。

2.2 硬件环境要求

设备

主机名

配置

功能

1

PC服务器环境

CPU:2*8核(最小4C),内存:32GB(最小16GB)

应用服务器器A

2.3 软件环境要求

软件类型

软件名

版本号

相关说明

操作系统

Windows Server2008以上

Windows Server2008

64位

数据库

Oracle

11.0.2

中间件

Tomcat

8.0

JDK

JDK

1.8

3 基础软硬件系统安装

3.1 硬件拓扑

【编写提示:说明应用系统运行的硬件拓扑,应当包括硬件环境要求中列出的所有硬件设备。】

3.2 软件部署

主机名

操作系统

系统软件

部署的应用

Web应用服务器

Windows server 2008

Jdk1.8

Tomcat8.0

应用程序

数据库服务器

Windows server 2008

Oracle 11.0.2

数据库

4 安装部署过程

4.1 安装概述

1、安装Java

2、安装nginx

3、Nginx代理配置

4、安装memcached(可选)

5、配置tomcat

4.2 基于tomcat中间件的集群部署(Windows环境)

4.2.1 Memcached+tomcat+nginx

4.2.1.1 安装java

1)         点击jdk1.8.exe文件,进入安装界面,按照导航,一步步安装完毕

2)         配置环境变量

3)         验证jdk是否安装成功

CMD窗口输入java –version,如果出现上图,则表示jdk安装成功

4.2.1.2 Nginx的安装部署

1)         下载nginx,并解压

2)         启动nginx

在命令窗口进入到nginx的解压目录(路径不能包含中文),运行以下命令:

start niginx

启动成功后,可以通过nginx –t查看nginx是否启动成功

如果出现上述successful,则代表启动成功

3)         配置nginx.conf文件,增加以下代码段

upstream 127.0.0.1 {

#设定负载均衡的服务器列表

ip_hash;

#同一机器在多网情况下,路由切换,ip可能不同 #weigth参数表示权值,权值越高被分配到的几率越大

server 127.0.0.2:8080 weight=1 max_fails=20 fail_timeout=600s;

server 127.0.0.3:8080 weight=2 max_fails=20 fail_timeout=600s;

……

#此处省略server,有几个server,就添加几个

}

map $http_upgrade $connection_upgrade {

default upgrade;

'' close;

}

server {

listen 80;

server_name 127.0.0.1;

charset UTF-8;

#设定本虚拟主机的访问日志

access_log  logs/host.access.log  main;

#对 "/" 所有应用启用负载均衡

location / {

proxy_pass http://127.0.0.1;

#保留用户真实信息

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header Host $host;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

proxy_http_version 1.1;

proxy_set_header Upgrade $http_upgrade;

proxy_set_header Connection "upgrade";

index  index.html index.htm index.aspx demo.jsp;

}

}

以上配置文件有5个地方需要修改,已用黄色进行标志

①   upstream 127.0.0.1                            设置upstream的名称

②   ip_hash;      设置是否进行ip映射,关闭则前面加#,设置后同一个session访问同一台服务器

③   server 127.0.0.2:8080             设置代理的服务器IP,可以为多个

④   server_name 127.0.0.1                    与①设置的名称要保持一致

⑤   proxy_pass http://127.0.0.1;                    设置访问的ip地址

index  index.html index.htm index.aspx demo.jsp    设置访问页地址

4.2.1.3 memcached的安装部署(选装)

安装前提:如果nginx的步骤ip_hash设置了,则此步骤可以不用安装。

在此解释下为什么ip_hash设置后,不用安装memcached了,因为nginx做ip_hash之后,同一个session的请求会发往同一台服务器。假如不设置,则会发往不同的应用服务器,造成session不同步。

1) 安装memcached

下载memcached,并解压,右键以管理员身份打开cmd命令,进入解压目录,并运行以下启动命令:

memcached.exe –d install

2) 启动memcached

进入到memcached解压目录,运行以下命令:

memcached.exe –p 11211 –d start

其中11211为memcached的默认端口,启动成功后,在任务管理器中可以查看到,也可以在服务中查看到该服务,如下图:

4.2.1.4 TOMCAT的集群部署(memcached部署可选,步骤1和2为memcached安装启动后操作,若未安装,则不用执行步骤1和2)

1) 将session共享需要的依赖包放到tomcat的lib文件夹下

2) 配置TOMCAT的memcached的关联

3) 应用服务器部署tomcat

在大于等于2台的应用服务器部署tomcat,启动tomcat

4) 执行nginx的刷新命令

进入nginx的解压路径,执行nginx –s reload

5) 在浏览器输入网址:

http://nginx服务器地址/首页地址

4.2.1.5 测试是否正确安装

1、修改完后,重新reload  nginx:nginx -s reload

2、添加测试jsp:demo.jsp

3、启动所有的tomcat

4、打开web浏览器,测试

 注意:因某些限制,最新源代码和后续通用配置实现数据抽取 已放置在笔者公众号上,请关注微信公众号: 大喇叭学数据库, 回复关键字:【nginx】,获取本例安装程序


nginx和tomcat 反向代理 部署实例 直接运行的更多相关文章

  1. Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点

    上一篇分享了 Nginx + Tomcat 反向代理 负载均衡 集群 部署指南,感觉还是相当实用型的,但是一般集群部署是基于大访问量的,可能有的企业用不到,类似一些企业官网,访问量并不是很大,基于这个 ...

  2. nginx反向代理部署vue项目(history模式)的方法

    前言: 根据标题我们要区分出两个信息 1. history 模式部署 ( vue的路由模式如果使用history,刷新会报404错误.) 2. Nginx 做反向代理 问题1思考: vue-route ...

  3. Nginx之搭建反向代理实现tomcat分布式集群

    参考博文: Nginx反向代理实现Tomcat分布式集群 1. jdk 安装 jdk 下载网址: http://www.oracle.com/technetwork/java/javase/downl ...

  4. nginx反向代理部署springboot项目报404无法加载静态资源

    问题:nginx反向代理部署springboot项目报404无法加载静态资源(css,js,jpg,png...) springboot默认启动端口为8080,如果需要通过域名(不加端口号)直接访问s ...

  5. 五、Nginx多Server反向代理配置

    Nginx强大的正则表达式支持,可以使server_name的配置变得很灵活,如果你要做多用户博客,那么每个用户拥有自己的二级域名也就很容易实现了. server_name的匹配顺序 Nginx中的s ...

  6. Nginx 之六: Nginx服务器的反向代理功能

    一:Nginx作为正向代理服务器: 1.正向代理:代理(proxy)服务也可以称为是正向代理,指的是将服务器部署在公司的网关,代理公司内部员工上外网的请求,可以起到一定的安全作用和管理限制作用,正向代 ...

  7. nginx 为什么要反向代理 影藏后端 高效连接(给nginx,他自己返回) 端口冲突解决 多个服务

    nginx 为什么要反向代理  影藏后端   高效连接(给nginx,他自己返回)  端口冲突解决  多个服务 单机使用反向代理可以根据不同url匹配到不同站点   rsync 的工作原理和应用实例 ...

  8. Nginx介绍与反向代理

    Nginx的产生 没有听过Nginx?那么一定听过它的"同行"Apache吧!Nginx同Apache一样都是一种WEB服务器.基于REST架构风格,以统一资源描述符(Unifor ...

  9. 【转】Nginx服务器的反向代理proxy_pass配置方法讲解

    [转]Nginx服务器的反向代理proxy_pass配置方法讲解 转自:http://www.jb51.net/article/78746.htm 就普通的反向代理来讲Nginx的配置还是比较简单的, ...

  10. nginx是一个反向代理的软件

    nginx只是一个反向代理的软件,和语言无关,理论上支持任何Web平台,当然http://Asp.net也不例外,http://51aspx.com就是http://Asp.net开发的,前端暴漏的是 ...

随机推荐

  1. 【预定义】C语言预定义代码(宏、条件编译等)内容介绍【最全的保姆级别教程】

    浅谈C语言预定义中的预定义符号,#define,以及符号#,##的相关运用 求个赞求个赞求个赞求个赞 谢谢 先赞后看好习惯 打字不容易,这都是很用心做的,希望得到支持你 大家的点赞和支持对于我来说是一 ...

  2. 深入剖析Java中的反射,由浅入深,层层剥离!

    写在开头 之前更新了不少Java的基础知识,比如Java的类.对象.基础类型.关键字.序列化.泛型.值传递等等,今天要上点深度了,来聊一聊Java中的 反射 ! 所谓反射,就是在运行时分析.检查和操作 ...

  3. navicat破解(15以前的版本)

    navicat破解各种不成功,很耽误事.所以,再次整理一个相对省事有效的办法.内容如下: 一:下载此激活工具 二:按下图生成激活码 1. 2. 点击手动激活 3. 将请求码按图粘贴,按图点击操作便可激 ...

  4. 《ASP.NET Core 与 RESTful API 开发实战》-- (第9章)-- 读书笔记(上)

    第 9 章 测试和文档 9.1 测试 测试是软件生命周期中的一个非常重要的阶段,对于保证软件的可靠性具有极其重要的意义 常见的测试方法有很多,根据不同的维度,可以把测试方法分为不同的类别 从观察结构的 ...

  5. SpringMVC关于@RequestBody加与不加的区别

    SpringMVC关于@RequestBody加与不加的区别 前两天在做项目的时候遇到了这样一个问题,小组成员为了方便做接口测试,给Controller控制器上加了@RequestBody注解,但是前 ...

  6. Python_json类方法

    Python_json类方法 import requests import json headers = { "User-Agent": "Mozilla/5.0 (Li ...

  7. 问题解决:Ubuntu18.04显示器分辨率不正常

    在Ubuntu18.04下出现显示器分辨率不正确的情况,只能选择1024x768的分辨率,没有其它选项,显示器本身可以支持1920x1080的分辨率.经查询,采用cvt, xrandr的方法不成功,显 ...

  8. RESTful架构与RPC架构

    RESTful架构与RPC架构 在RESTful架构中,关注点在于资源,操作资源时使用标准方法检索并操作信息片段,在RPC架构中,关注点在于方法,调用方法时将像调用本地方法一样调用服务器的方法. RE ...

  9. Java集合框架学习(十一) Hashtable详解

    Hashtable介绍 1. 继承自Dictionary; 2. 线程安全: 3. 支持Iterator和Enumeration: 4. key和value都不可为null; 5. 一般用于多线程环境 ...

  10. 了解企业架构EA(Enterprise Architecture)

    一.企业架构简介 企业架构:Enterprise Architecture,EA,或企业体系结构,是在信息系统架构设计与实践基础上发展起来的一个特殊领域. 但是企业架构现在还没有一个公认的定义,综合现 ...