一、nginx反向代理简单配置

1、准备nginx环境

这篇文章的前提是已经配置好了NGINX,而且tomcat已经配置好了,而且能能够访问了。
反向代理不同端口(本案例均是单节点)
这里介绍一台nginx服务器(192.168.83.130),代理两个本机的tomcat(端口分别为:192.168.83.130:8080、192.168.83.130:8081),下面是安装后情况:

1)nginx目录:

2)tomcat实例:

首先在两个tomcat的/conf/server.xml里面分别配置端口如下:

分别重启待用。
重启tomcat命令:

#首先,进入Tomcat下的bin目录
cd  tomcat安装目录/bin
# 使用Tomcat关闭命令
./shutdown.sh
# 查看Tomcat是否以关闭
ps -ef|grep java
# 如果显示以下相似信息,说明Tomcat还没有关闭
root 12976 1 0 Sep01 ? 00:10:22 /usr/java/jdk1.7.0_80/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Djava.endorsed.dirs=/usr/local/tomcat/endorsed -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start #如果你想直接干掉Tomcat,你可以使用kill命令,直接杀死Tomcat进程
kill -9 12976
#然后继续查看Tomcat是否关闭
ps -ef|grep java
#如果出现以下信息,则表示Tomcat已经关闭
root 19955 19757 0 17:48 pts/0 00:00:00 grep java#启动Tomcat(在bin目录下执行命令)./startup.sh
#查看tomcat日志(记得切换路径哦)
tail -f catalina.out

2、nginx的具体配置
然后在nginx的/conf/nginx.conf下设置如下:

设置完成后重启nginx。

浏览器输入主机ip:http://192.168.83.130/,显示如下

二、负载均衡具体配置

1、上面一种情况是对不同端口的代理 ,也可以采用负载均衡设置(upstream)
这里对不同的ip采用的ip hash策略。

upstream server_tomcat{ip_hash;server 10.1.14.228:8080 weight=8;server 10.1.14.228:80   weight=2;}server {listen       8887;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {root   html;proxy_pass http://server_tomcat;proxy_set_header Host $host:$server_port;index  index.html index.htm;}

注意 这里的proxy_set_header Host $host;一定要设置,否则无法使用upstream反向代理。报错如下(

upstream后的是tomcat的实例名称,必须和proxy_pass 后面的server_tomcat是同一个实例。

2、 nginx之http反向代理多台服务器(不同的ip的负载均衡)
1)conf文件设置
一个主机(192.168.83.130)代理另2台主机(192.168.83.128、192.168.83.131)上的tomcat类似,只要将 upstream里的ip换掉就行了。
注意 这里的proxy_set_header Host $host;一定要设置,否则无法使用upstream反向代理。

 upstream server_tomcat{ip_hash;server 192.168.83.131:8081 weight=2;server 192.168.83.128:8080 weight=8;}

2)参数含义

是Nginx可以基于ngx_http_upstream_module模块提供服务器分组转发、权重分配、状态监测、调度算法等高级功能。http upstream配置参数:upstream name
#自定义一组服务器,配置在http内;指定upstream服务器组的名称,名称中不能包含"_",否则会报错;upstream可以和server配置在一个文件中,也可以单独一个文件,但是upstream不能配置在server里面。server address parameters;
address可以配置为IP、域名、unix套接字;
parameters参数可以配置下面几种:weight=number #设置权重,默认为1。max_conns=number  #给当前server设置最大活动链接数,默认为0表示没有限制。max_fails=number  #对后端服务器连续监测失败多少次就标记为不可用。fail_timeout=time #对后端服务器的单次监测超时时间,默认为10秒。backup  #设置为备份服务器,当所有服务器不可用时将重新启用次服务器。down    #标记为down状态。resolve #当server定义的是主机名的时候,当A记录发生变化会自动应用新IP而不用重启Nginx。hash KEY consistent;
#基于指定key做hash计算,使用consistent参数,将使用ketama一致性hash算法,适用于后端是Cache服务器(如varnish)时使用,consistent定义使用一致性hash运算,一致性hash基于取模运算。KEY可以设置为$request_uri,基于用户的请求的uri做hash运算。ip_hash;
#源地址hash调度方法,基于的客户端的remote_addr(源地址)做hash计算,以实现会话保持。least_conn;
#最少连接调度算法,优先将客户端请求调度到当前连接最少的后端服务器。注:调度算法需要设置在upstream中;默认调度算法是轮询。

nginx之http反向代理多台服务器

三、反向代理web架构

Nginx反向代理的两种配置方式相关推荐

  1. Java框架篇---spring aop两种配置方式

    Java框架篇---spring aop两种配置方式 第一种:注解配置AOP 注解配置AOP(使用 AspectJ 类库实现的),大致分为三步:  1. 使用注解@Aspect来定义一个切面,在切面中 ...

  2. SpringBoot的properties和yml两种配置方式, 配置注入参数, 以及配置文件读取失效的问题

    SpringBoot支持两种配置方式,一种是properties文件,一种是yml 首先在pom文件中添加依赖: <dependency><groupId>org.spring ...

  3. Nginx反向代理以及负载均衡配置

    一 .nginx 的优缺点: nginx 相对 apache 的优点: 轻量级,同样起web 服务,比apache 占用更少的内存及资源 抗并发,nginx 处理请求是异步非阻塞的,而apache 则 ...

  4. Oracle RAC集群资源的两种配置方式,Admin Managed 和 Policy Manager,以及实验

    对于Oracle RAC集群数据库,有两种资源管理方式:Administrator Managed(管理员管理的),Policy Managed(策略管理的) 要理解这两个概念,首先应该了解Serve ...

  5. SpringAop动态代理的两种实现方式

    Spring的面向切面编程也是基于动态代理来实现的 静态代理:也就是自己手动创建的代理对象 动态代理:也就是在程序运行中通过配置参生的 那么Spring的AOP也就是面向切面编程,就是基于动态代理来实 ...

  6. Vite内网ip访问,两种配置方式

    问题 使用vite运行项目的时候,控制台会只出现127.0.0.1(localhost)本地地址访问项目.不可以通过公司内网ip访问,其他团队成员无法访问,这是因为没有将服务暴露在局域网中: 两种解决 ...

  7. nginx反向代理的三种方式

    文章目录 根据域名代理 根据端口代理 根据路径path代理 总结 根据域名代理 server {listen 1111;server_name tomcat.local;proxy_set_heade ...

  8. Nginx反向代理实现负载均衡配置图解

     come from: http://www.php100.com/html/program/nginx/2013/0905/5529.html 负载均衡配置是超大型机器需要考虑的一些问题,同时也 ...

  9. Nginx反向代理、使用OneinStack配置Nginx、多网站配置、多域名配置

    文章目录 一.卸载原装Nginx 二.通过 OneinStack 安装 Nginx 三.创建 vhost 四.按照提示选择或输入相关信息 文章PDF下载 配不好Nginx,誓不罢休 本教程适用于 不会 ...

最新文章

  1. Python解析json字符串,json字符串用法
  2. Java多线程、高并发秒杀时MySQL出现死锁原因(Deadlock found when trying to get lock)及对应解决方案
  3. 计算机电子与网络技术,电子信息工程与计算机网络技术
  4. 去培训机构参加IT培训值不值
  5. 解决客户端从服务器请求数据乱码问题
  6. ASP.net 網站和Web Application的區別(轉)
  7. Opencv3编程入门学习笔记(五)之通道分离(split)与合并(merge)
  8. 电子计算机技能竞赛数据,2015年浙江省中等职业学校计算机应用技术专业学生职业技能大赛“计算机检测维修与数据恢复”赛项规程.doc...
  9. 继苹果亚马逊之后 微软加入1万亿美元市值俱乐部
  10. Node Sass version 6.0.0 is incompatible with ^4.0.0.
  11. php网站信息更新时间,php显示当前时间_php 自动更新时间
  12. 如何解二阶齐线性微分方程
  13. php基础知识速记,电气工程师5大背诵妙招速记基础知识
  14. 【微信测试号实战——02】编写你独有的微信消息模板
  15. VS找到w3wp.exe 附加到23wp.exe进行debug程序调试
  16. Hikari数据库连接池泄露问题排查
  17. Kali linux 2016.2(Rolling)里Metasploit连接(包括默认和自定义)的PostgreSQL数据库之后的切换到指定的工作空间...
  18. [深入理解Android卷二 全文-第四章]深入理解PackageManagerService
  19. 【解决方案】如何结合智慧工地上云平台实现视频监控的多终端观看?
  20. 按了锁定计算机,鼠标锁定了按什么键解锁

热门文章

  1. 排序算法《一》冒泡排序
  2. java弱签名视为未签名,[java 被视为未签名]QQ幸福签名:你所愿,我终于将你视为平常,连看你一眼都觉得多余。...
  3. 小米刷 android o,一代神机!五年前的小米2刷入Android 8.0原生系统
  4. 挣扎数学建模:各种算法汇总(2)多属性决策模型
  5. 时序分析寄存器到寄存器
  6. 空军部队计算机专业有没有用武之地,报名当兵可以选择陆军、海军、空军、武警、火箭军,艰苦地区部队...
  7. 蓝桥杯-K好数(详解易懂)java
  8. Enter实现Tab键的功能
  9. webserver、phpstorm和IDEA报错: 创建JVM失败,JVM路径:D:WebStorm 2020.1\jbr\
  10. 【linux】将Linux里的文件上传 到gitee仓库