Nginx学习
1、Nginx介绍
Nginx由俄罗斯人研发,应对Rambler的网站,在2004年发布第一版。
2、Nginx特点
1、稳定性强,7*24小时不间断运行。
2、Nginx提供了非常丰富的实例
3、占用内存小,并发能力强。
4、能承受住5W以上的并发,tomcat能承受住150的并发
3、Nginx配置文件
nginx.conf文件中worker_connections的数值越大,并发量越大。
error_log - 代表Nginx错误日志存放位置。
http块:
include代表引入外部文件
一般修改/etc/nginx/conf.d下的*.conf文件
server块:
listen - 代表nginx默认监听的端口号
loction块:
root - 代表将接收到的请求根据/usr/share/nginx.html去找静态资源
index - 默认去上述的路径中找到index.html或者index.htm文件给用户响应回去
4、Nginx反向代理
正向代理:
由客户端设立,客户端了解代理服务器和目标服务器都是谁。帮助我们实现突破访问权限,提高访问速度,对目标服务器隐藏ip地址。
反向代理:
反向代理服务器是配置在服务端的,客户端不知道访问的到底是哪一台服务器,可以达到负载均衡,可以隐藏服务器真正的ip地址。
、
5、关于Nginx的location路径映射
优先级关系:
(location = )> (location /xx/yy/zz) > (location ^~) > (location ~,~*) > (location /起始路径) > (location /)
#1 匹配 例子:www.baidu.com/xxx这个是匹配不到的
location = / {
# 精准匹配,主机名后面不能带任何字符串
}
#2 通用匹配
location /xxx {
# 通用匹配, 匹配所有 以/xxx开头的路径
}
#3 正则匹配
location ~/xxx {
# 匹配所有以/xxx开头的路径,和通用匹配的区别是,这种匹配的优先级高于通用匹配。
}
#4、匹配开头路径
location ~^ /images/ {
# 匹配所有以/images开头的路径,这个优先级要高于正则匹配
}
#5、 ~* \. (gif|jpg|png)$ {
#匹配以gif|jng|png结尾的路径
}
6、Nginx的负载均衡策略
默认提供了三种负载均衡的策略
#1、轮询
将客户端发起的请求,平均分配给每一个服务器
实现:在*.conf下配置 注意自己申明的一定不要用“_”以免冲突
upstream my-server {
server 192.168.1.1:8080;
server 192.168.1.1:8081;
}
server {
listen:80;
server_name localhost;
location / {
proxy_pass http://my-server
}
}
#2、权重
会将客户端发起的请求,根据服务器的权重不同,分配不同的数量
加权重是修改上面的my-server,server 后面加上weight = 数字
#3、ip_hash
基于发起的请求客户端ip地址的不同,他始终会将请求发送到指定的服务器上。
在my-server中加ip_hash;
7、Nginx动静分离
Nginx的最大并发量计算公式:
全局变量worker_processes * worker_connections/4 |/2
动态资源/4;静态资源/2
动态资源最少需要4个连接数,静态资源最少需要2个连接数
动态资源请求简图:
动态资源代理:
配置:
location / {
proxy_pass: 路径
}
静态资源代理:
配置:
location / {
root 静态资源路径;
index 默认访问资源路径下的什么资源
autoindex on: 表示展示静态资源的全部内容,以列表的形式展开。
}