名词简介html
Nginx ("engine x") 是一个高性能的HTTP和反向代理服务器。占有内存少,并发能力强。通常能支持1万次以上的并发,官方说法是5万次。前端
反向代理(http://z00w00.blog.51cto.com/515114/1031287),就是在服务端附近放一个代理服务器。因为和以往把代理放在客户端附近不一样,因此叫“反向”。其主要做用是加快响速度,负载均衡和保护服务器原始资源。java
优势:nginx
缺点:git
搭建配置github
参考:http://yuan2.blog.51cto.com/446689/1670924web
1 安装java算法
2 安装多个tomcatsegmentfault
若是只有一台机子,能够在在同一台机子上装多个绿色的tomcat。后端
http://blog.csdn.net/zyk906705975/article/details/8471475
3 配置nginx
下载wget http://nginx.org/download/nginx-1.11.3.tar.gz
搭建nginx:http://yuan2.blog.51cto.com/446689/1670924
说几点说得不清楚的
upstream tomcat_server{ server localhost:8081 weight=1; server localhost:8082 weight=1; }
<%@ page language="java" pageEncoding="UTF-8"%> <html> <head> <title>Tomcat1</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> </head> <body> <p>Tomcat1 服务器</p> <p> Session ID : <%= session.getId() %></p> <p> Created on : <%= session.getCreationTime() %></p> </body> </html>
4 其余的配置
大部分见http://www.javashuo.com/article/p-yheskdoy-ha.html。
http://freeloda.blog.51cto.com/2033581/1288553
挑几点来说
◎小问题:中文乱码
◎Nginx的启动和中止
启动./sbin/nginx
中止./sbin/nginx -s stop
重启 ./sbin/nginx -s reload
◎负载均衡详细策略,上面只是helloworld的配置
默认的只有Round-robin和IP-hash两种负载均衡算法
见http://www.csdig.com/fan-xiang-dai-li-de-zuo-yong/
◎Location和Rewrite
见http://seanlook.com/2015/05/17/nginx-location-rewrite/
首先是Location,能够有多个location配置,表示不一样跳转规则。那么多规则服务器怎么选择,先匹配,找出优先级最高的,优先级相同,就选排在前面的。固然没那么复杂,用推荐配置就好。
其次是rewrite,就是个改链接的,典型的正则替换。先直接看最下面的例子。
试着把http://192.168.124.128/test/index.jsp改为http://192.168.124.128/index.jsp。
报错,看日志,发现会屡次执行rewrite规则,变成test/ test/ test/index.jsp,直接死循环。因而就发现上面说的break,last是有用的。还有if条件。
◎会话粘滞
参考http://www.oschina.net/question/12_621
1用cookie或缓存替代session
2 用ip hash实现会话粘滞。可是nginx要在最前端,并且要在负载均衡的最后端。见文章。
3 第三方的nginx sticky,原理是服务器写cookie,对cookie hash从而负载均衡
http://spetacular.github.io/2015/08/01/nginx-sticky-problem.html
http://www.ttlsa.com/nginx/nginx-modules-nginx-sticky-module/
◎页面缓存
◎高可用性
集群的一个要求是高可用性,用nginx+keepalived能够搭建高可用性的集群。参考https://segmentfault.com/a/1190000002881132