Nginx简介&集群搭建

一、nginx简介

1.什么是nginx?

一个高性能的HTTP反向代理服务,也是一个IMAP/POP3/SMTP服务
特点是占用内存少,并发能力强

2.为什么使用niginx?

互联网时代,海量用户高并发已然成为互联网的主体。
如何能让一个网站承载几万甚至几十万个用户的持续访问呢?这是中小网站急需解决的问题。
传统单机tomcat搭建的网站,在比较理想的状态下能够承受的并发访问量在 150 到 200 左右。按照并发访问量占总用户数量的 5% 到 10% 这样计算,单点 tomcat 网站的用户人数在 1500 到 4000 左右。远远不能满足海量用户的访问需求。这时候可以使用负载均衡来解决高并发的问题,而nginx就是一款高性能可以实现负载均衡的代理服务器。

应用场景:

  • http 服务器,可以做静态网页的 http 服务器。
  • 配置虚拟机,一个域名可以被多个 ip 绑定。可以根据域名的不同把请求转发给运行在不同端口的服务器。
  • 反向代理,负载均衡。把请求转发给不同的服务器。

二、搭建集群

1.在Windows下搭建集群

1.1.在 D 盘新建两个新建两个目录 tomcat1、tomcat2
1.2.修改 tomcat2 的端口,例如, 在以 tomcat1 的端口为基础上+10,修改完,启动这两个 tomcat,再分别访问

  • 访问 8080 端口:localhost:8080/test/
  • 访问 8090 端口:localhost:8090/test/

1.3.解压 nginx


图片.png

修改 ngnix 的 nginx.conf 文件,在 location / 下添加反向代理服务器,代理 8080 端口:

location / {
  root   html;
  index  index.html index.htm;
  proxy_pass http://localhost:8080
}

以上只是代理了一台服务器。启动 nginx,每次访问 localhost/test/, 最后访问的都是8080端口服务器的数据。
1.4.代理集群,例如代理两台服务器

//需要在http节点上添加一个
upstream mz{
  server 127.0.0.1:8080;
  server 127.0.0.1:8090;
}
//修改location /下的反向代理
    proxy_pass http://mz

修改如图:


图片.png

另外,还可以给服务器添加权重:


图片.png

表示如果有 6 次访问,则有 4 次可能访问到第二个服务器。启动 nginx,则每次访问localhost/test/,会有可能访问到8080端口服务器的数据,也可能访问到8090端口服务器的数据。
1.5.Session共享问题
  • 解决方式一(只能在 windows 下好使):
    web 服务器解决(广播机制),注意:tomcat 下性能低
    修改两个地方:
    • 修改两个 tomcat 的 server.xml,支持共享,将引擎标签下的 <Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>注释去掉
      图片.png
    • 修改项目的配置文件 web.xml 中添加一个节点 <distributable/>
      图片.png
  • 解决方式二:可以将 session 的 id 放入 redis 中
  • 解决方式三:保证一个 ip 地址永远的访问一台 web 服务器,就不存在 session 共享问题了,在 nginx 的配置文件中 upstream 中添加 ip_hash(在 Linux 下经常使用该方式)

    ip_hash 指令能够将某个客户端 IP 的请求通过哈希算法定位到同一台后端服务器上。

2.在Linux下搭建集群

2.1.先将 nginx 上传到 linux 上
2.2.解压 nginx
2.3.先编译 nginx

安装依赖包
yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
执行编译
先进入 nginx的目录
执行
        ./configure

2.4.安装 nginx

  • 执行make
  • 执行make install
    2.5.启动 nginx:
cd nginx 目录下
    配置文件 conf
    启动nginx
        ./nginx

注:
①在 nginx 目录下有一个 sbin 目录,sbin 目录下有一个 nginx 可执行程序
②关闭 ngnix:

  • 关闭命令:相当于找到 nginx 进程kill ./nginx -s stop
  • 退出命令 ./nginx -s quit等程序执行完毕后关闭,建议使用此命令。
    2.6.将端口号 80 放行
/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
将该设置添加到防火墙的规则中
/etc/rc.d/init.d/iptables save

2.7.修改 conf 文件和 window 下一样:配置集群

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 195,980评论 5 462
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 82,422评论 2 373
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 143,130评论 0 325
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,553评论 1 267
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,408评论 5 358
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,326评论 1 273
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,720评论 3 386
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,373评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,678评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,722评论 2 312
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,486评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,335评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,738评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,009评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,283评论 1 251
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,692评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,893评论 2 335

推荐阅读更多精彩内容