1、nginx简介
Nginx 是?个?性能的HTTP和反向代理web服务器,核?特点是占有内存少,并发能?强。 Nginx的应用场景:
- Http服务器(Web服务器)
1、性能?常?,?常注重效率,能够经受?负载的考验。 2、?持50000个并发连接数,不仅如此,CPU和内存的占?也?常的低,10000个没有活动的连接才占?2.5M的内存。 - 反向代理服务器
2、nginx的安装
- 上传nginx安装包到linux服务器
nginx安装包(.tar?件)下载地址:http://nginx.org - 安装Nginx依赖,pcre、openssl、gcc、zlib(推荐使?yum源?动安装)
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
- 解包Nginx软件包
tar -xvf nginx-1.17.8.tar
- 进?解压之后的?录 nginx-1.17.8,依次执行以下命令
cd nginx-1.17.8
./configure
make
make install
- 执行完上述步骤,会在/usr/local/下会产??个nginx?录,进入nginx目录开始启动nginx
cd nginx/sbin
./nginx
- 访问服务器的80端口(nginx的默认端口为80)
3、核心配置文件
Nginx的核?配置?件conf/nginx.conf包含三块内容:全局块、events块、http块 7. 全局块 从配置?件开始到events块之间的内容,此处的配置影响nginx服务器整体的运?,? 如worker进程的数量、错误?志的位置等 8. events块 events块主要影响nginx服务器与?户的?络连接,?如worker_connections 1024,标识每个workder_process?持的最?连接数为1024 9. http块 从http开始都是http块,http块是配置最频繁的部分,虚拟主机的配置,监听端?的配置,请求转发、反向代理、负载均衡等
4、nginx应用场景之反向代理
- 第一种
代码实现: - 部署tomcat,保持默认监听8080端口
- 修改nginx配置,并重新加载
- 修改nginx配置 -重新加载nginx配置 ./nginx -s reload - 访问nginx路径,返回tomcat页面,我是上图的端口号改成9001了,因为9003没开放,就换成9001了
- 第二种
配置location路径 现在就通过不同的路径访问了不同的服务器,此处时location的基本配置,location的集中配置分别是: location [=|~|~*|^~] /uri/ { … }
- 正则匹配 location ~ /lotus { }
- 不区分??写的正则匹配 location ~* /lotus { }
- 匹配路径的前缀 location ^~ /lotus { }
- 精确匹配 location = /lotus { }
- 普通路径前缀匹配 location /lotus { }
优先级:4 > 3 > 2 > 1 > 5
5、nginx应用场景之负载均衡
先将三个tomcat的index.jsp文件修改一下 然后启动三个tomcat服务器 进入nginx的配置文件nginx.conf中进行负载均衡配置
然后重新加载nginx 以上就是nginx的默认的负载均衡策略
Nginx负载均衡策略
- 轮询
默认策略,每个请求按时间顺序逐?分配到不同的服务器,如果某?个服务器下线,能?动剔除
upstream lotus{
server 127.0.0.1:8080;
server 127.0.0.1:8001;
server 127.0.0.1:8002;
}
location / {
proxy_pass http://lotus/;
}
- weight
权重,默认每?个负载的服务器都为1,权重越?那么被分配的请求越多(?于服务器性能不均衡的场景)
upstream lotus{
server 127.0.0.1:8080 weight=1;
server 127.0.0.1:8001 weight=1;
server 127.0.0.1:8002 weight=2;
}
- ip_hash
每个请求按照ip的hash结果分配,每?个客户端的请求会固定分配到同?个?标服务器处理,可以解决session问题
upstream lotus{
ip_hash;
server 127.0.0.1:8080;
server 127.0.0.1:8001;
server 127.0.0.1:8002;
}
6、nginx应用场景之动静分离
动静分离就是讲动态资源和静态资源的请求处理分配到不同的服务器上,?较经典的组合就是Nginx+Tomcat架构(Nginx处理静态资源请求,Tomcat处理动态资源请求),那么其实之前的讲解中,Nginx反向代理?标服务器Tomcat,我们能看到?标服务器ROOT项?的index.jsp,这本身就是Tomcat在处理动态资源请求了。 首先在nginx目录下创建一个staticData目录,在staticData目录下创建static目录,并在目录存放一个html文件
<html lang="en">
<head>
<meta charset="UTF-8">
<title>static resouce</title>
</head>
<body>
Hello Minicat-static resouce!
</body>
</html>
在nginx.conf中配置静态资源 开始测试效果: 结束!
|