负载均衡的做用:在多个服务器上部署同一个web项目,nginx会将用户的请求随机(可自定义)分发到其中一个web服务器,当其中任意一个或多个web服务器宕机时,不影响用户的正常访问。 css
基本网络构架: html
步骤: 前端
一、到http://nginx.org/ 下载好windows的zip包,解压后直接运行 nginx.exe,窗口会一闪而过,但在任务管理器可看到两个进程,咱们如今访问http://localhost,会显示以下内容。这是由于ngnix启动后,默认会监听本机的80端口,而后将该端口下的全部访问都转到了 html/index.html。 nginx
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
} web
service : 一个配置实例 windows
listen: 当前这个实例监听本机的端口号,这个在全部server中就是惟一的,否则一个端口被多个实例监听,nginx就不知该用哪一个处理了。 缓存
server_name:给当前实例定义一个名称 tomcat
location / : 监听当前端口全部请求 服务器
root : location 请求对应的本机文件目录,html 表示全部的请求都将以html文件夹作为根目录.这个配置最经常使用于缓存静态文件时使用,如js / css / image等 网络
index: 默认的首页,若是不存在index.html ,则显示index.htm
若是想让nginx监听到80端口访问时转到咱们本身的tomcat服务器,只需将localtion / 修改成以下就能够了:
location / {
proxy_pass http://localhost:8080
}
这时咱们再访问http://localhost ,则会显示若是页面了,并且任何功能都不会受影响:
三、两个web服务器负载均衡:
upstream local_tomcat {
# 这里是本机的第一个web服务器
server localhost:8080;
# 这里是本机的第二个web服务器
server localhost:9090;
#还可添加不少
}
server{}
当访问http://localhost时,nginx会随机的跳转到8080与9090服务器。当8080服务器宕机时,9090会继续工做。若是想控制两个服务器的权重,好比 9090 服务器性能好,能够多处理一些请求,则能够以下配置权重
upstream local_tomcat {
server localhost:8080 weight=1;
server localhost:9999 weight=2;
}
这样在9090受访的机率会比8080多一倍。
三、静态文件,这个好像conf.xml有现成的配置,只要改一下就能够,以下对图片的配置
#location ~ \.(png|jpg|bmp)$ {
root image;
}
全部png 、 jpg 、 bmp 的请求都会直接去访客根目录下的image文件夹,固然也可使用绝对路径。
四、还有待学习的地址
session如何处理,由于分发到不一样的web服务器,session也须要在各个服务器上访问。好像这个能够作成无状态的session,这个在之后单独写文字进行探究。