nginx
一、nginx概述
nginx不单可以作为强大的
web静态服务器
,也可以作为一个
反向代理服务器
,而且nginx还可以按照调度规则实现动态、静态页面的分离,可以按照轮询、ip哈希、URL哈希、权重等多种方式对后端服务器做
负载均衡
,同时还支持后端服务器的
健康检查
二、nginx架构
三、nginx搭建使用
1、安装nginx和tomcat
nginx绿色版解压ok
这里安装了两个tomcat,端口分别是8082和8081。第二个tomcat的首页随便加了些代码区分
2、nginx配置
#只需要修改这两处(红色的)
#在http节点里添加:定义负载均衡设备的 Ip及设备状态
#这里的域名要和下面proxy_pass的一样
upstream fengzp.com {
server 127.0.0.1:8082 weight=1;
server 127.0.0.1:8081 weight=2;
#server 127.0.0.1:9090 down;
#server 127.0.0.1:7070 backup;
}
server {
listen 80;
server_name 127.0.0.1 ;
location / {
proxy_pass http://fengzp.com;
proxy_redirect default;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
3、启动与测试
启动方式:
一、双击nginx.exe图标,可见黑窗口一闪而过,启动完毕。
二、命令行到nginx目录,输入nginx启动。(注,此方式命令行窗口无任何提示,且被锁定)
三、命令行到nginx目录,输入start nginx启动,此方式不锁定
验 证:
四、nginx补充
启动后,默认情况下(无修改配置),可见到有两个nginx的进程,一个是master process,一个是worker processes。
1.配置项补充:参数
upstream 每个设备的状态:
down 表示单前的server暂时不参与负载
weight 默认为1.weight越大,负载的权重就越大。
max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误
fail_timeout:max_fails 次失败后,暂停的时间。
backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。
Nginx还支持多组的负载均衡,可以配置多个upstream 来服务于不同的Server.
配置负载均衡比较简单,但是最关键的一个问题是怎么实现多台服务器之间session的共享
其他配置:worker_processes 1;表示一个工作进程
events {
worker_connections 1024; #表示工作进程最大并发量
}
2.静态剥离-添加配置
#所有js,css相关的静态资源文件的请求由Nginx处理
location
~.*
\.
(
js
|
css
)
$
{
root
/
opt
/
static
-
resources
;
#指定文件路径
expires
12h
;
#过期时间为12小时
}
#所有图片等多媒体相关静态资源文件的请求由Nginx处理
location
~.*
\.
(
html
|
jpg
|
jpeg
|
png
|
bmp
|
gif
|
ico
|
mp3
|
mid
|
wma
|
mp4
|
swf
|
flv
|
rar
|
zip
|
txt
|
doc
|
ppt
|
xls
|
pdf
)
$
{
root
/
opt
/
static
-
resources
;
#指定文件路径
expires
7d
;
#过期时间为7天
}
五、附录:
http://tengine.taobao.org/book/index.html
Nginx开发从入门到精通(讲的比较深源码)