ngnix
简介
高性能的Http和反向代理Web服务器、专门为性能优化开发。支持热部署。
- 反向代理
客户端只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器的地址,隐藏了真实服务器的IP。
- 负载均衡
增加服务器的数量,将请求分发到各个服务器上,将原来请求到单个服务器的情况改为将请求分发到多个服务器上,将负载分发到多个服务器上,也就是我们说的负载均衡。
- 动静分离
为了加快网页的解析速度,可以将动态页面与静态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力。
安装
常用命令
- 查看ngnix版本号
ngnix -v
- 启动
ngnix
- 关闭
ngnix -s stop
- 重启
ngnix -s reload
配置文件
配置文件可以分为三部分:
- 全局块(从开头到events之间的内容)
worker_processes 1;
这是ngnix处理并发服务的关键配置,值越大,支持的并发处理量就越多,但是会受到设备制约。
- events块
影响ngnix与用户的网络连接;
worker_connections 1024;支持的最大连接数。
- http块
这是ngnix配置最频繁的部分,又分为http全局块与serve部分;
server {
listen 19090;
server_name localhost;
location / {
#root E:\svn项目\html5\src;
root C:/workspace/bddm-master/trunk/html5/src;
index index.html index.htm;
}
location /operateweb/ {
proxy_pass http://localhost:10060/; #operateweb
}
}
配置反向代理
方法一:
配置ngnix.conf:
server {
listen 80;
server_name 192.168.33.XXX;
location / {
root C:/workspace/bd/trunk/html5/src;
proxy_pass http://127.0.0.1:8080;
index index.html index.htm;
}
}
访问 192.168.33.XXX会被ngnix转发到127.0.0.1;
方法二:
server {
listen 80;
server_name 192.168.33.X;
location ~/resource/ {
proxy_pass http://localhost:10080/; #resourceweb
}
location ~/system/ {
proxy_pass http://localhost:20010/; #systemweb
}
location ~/schedule/ {
proxy_pass http://localhost:10040/; #systemweb
}
}
包含resource就转发到http://localhost:10080,例如192.168.33.4:80/resource/test就转发到http://localhost:10080/test
- location
1、~ :用于表示uri,包含正则表达式并且区分大小写;
2、~*:用于表示uri,包含正则表达式,不区分大小写;
配置负载均衡
http {
upstream myserver{
server 192.168.17.XXX:8080 weight=10;
server 192.168.17.XXX:8081 weight=10;
}
server {
listen 80;
server_name 192.168.33.X;
location / {
root html5;
proxy_pass http://myserver;
index index.html index.htm;
}
}
}
负载分配策略:
1、轮询:默认配置,每个请求按照时间顺序分配到不同服务器;
2、weight:权重越大被分配的请求就越多;
3、ip_hash:每个请求按照ip的hash结果分配,这样每个请求固定访问一个客户端,可以解决session的问题;
upstream myserver{
ip_hash;
server 192.168.17.xx:8080;
server 192.168.17.xx:8081;
}
4、fair:按服务器的响应时间来分配,响应时间短优先分配;
upstream myserver{
server 192.168.17.xx:8080;
server 192.168.17.xx:8081;
fair;
}
配置动静分离
配置静态资源:
location /img/ {
root C:/workspace/bd/trunk/html5/src;//配置在本地系统中的路径
index index.html index.htm;
}