概述:Nginx是一个高性能的HTTP和反向代理服务器。能够支持较高的并发数量。
一些概念
1. 正向代理
在浏览器端需要配置关于代理服务器的地址和信息,浏览器感知到代理服务器的存在。
2. 反向代理
在浏览器端不需要进行配置代理服务器的地址和信息,浏览器无法感知代理服务器的存在。
3. 动静分离
为了加快网站的解析速度,可以把静态页面和动态页面交给不同的服务器来解析,加快解析速度,降低单个服务器的压力。
4. 负载均衡
为减少服务器的压力,将客户端发送的请求平均分发给不同的服务器中。
一.Nginx的安装
- 百度下载好安装包
- tar -zvf ngin-xxxxx进行解压
- 进入到解压后nginx文件中,执行./confugure 命令进行检查。
- 使用命令 make && make install 进行编译安装。
二.Ngixn的基本命令
1. 运行nginx
进入nginx/sbin,执行命令:./nginx。
2. 关闭nginx
./nginx stop
3. 重启nginx
./nginx -s stop
三.配置文件解析
配置文件一共分为三个部分,具体可以看下这个博客:www.cnblogs.com/hunttown/p/…
1. 全局配置
对nginx的全局配置
2. 事件配置
3. http配置
反向代理和负载均衡都在这里配置。
配置反向代理
server{
listen 8080;
server_name 10.10.10.1; //1. 这两行表明nginx监听这个主机的这个端口
location /api {
proxy_pass http://myserver; //2. 通过这个URL去匹配上面负载均衡的URL
},
location /api2 {
proxy_pass http://mysever2;
},
location /api3 {
proxy_pass http://myserv3;
}
}
配置负载均衡
在http块中,添加配置
upstream myserver{ //3. 根据这个服务,将其平均分配到下面的服务器中
server 10.10.10.1;
server 10.10.10.2; //4. 需要进行负载均衡的服务器IP
.....
}
server{
listen 80;
server_name 10.10.10.1; //1. 这两行表明nginx监听这个主机的这个端口
location / {
proxy_pass http://myserver; //2. 通过这个URL去匹配上面负载均衡的URL
}
}
当浏览器发送请求时,在nginx中的执行流程就是如图的1 2 3 4,最终完成负载均衡。
负载均衡的计算策略
1. 轮询策略【默认策略】
每个请求按照时间顺序逐一分配到不同的后端服务器,如果后端服务器宕机,能够进行自动剔除。
2. 权重
每个服务器有自己的权重,默认为1,权重越高,被分配的几率越大。
upstream myserver{
server 10.10.10.1 weight=1;
server 10.10.10.2 weight=10;
.....
}
3. ip_hash
每个请求按照访问ip的hash进行分配这样每个访客固定访问一个后端服务器,可以解决session问题。
upstream myserver{
ip_hash;
server 10.10.10.1;
server 10.10.10.2;
.....
}
4. fair根据响应时间进行分配
按照后端服务器的响应时间来进行分配,响应时间短的进行优先分配!
upstream myserver{
server 10.10.10.1;
server 10.10.10.2;
.....
fair;
}
动静分离
将客户端的动态请求和静态请求相分开 步骤:
- 在根目录下创建一个data目录,里面创建www和image两个子目录
在www文件里面放一个静态页面,image中随便放一个图片
- 配置nginx的配置文件
server {
listen 80;
server_name 10.10.10.220;
#charset koi8-r;
#access_log logs/host.access.log main;
location /www/ {
root /data/; //注意顺序是倒写的,表示是data目录下的www文件夹
index index.html index.htm;
}
location /image/ {
root /data/; //同样,表示的是data目录下的image文件夹
autoindex on; //表示会以文件列表形式展示
}
- 配置结束以后必须要重启下nginx
进入到nginx的sbin目录中 : ./nginx -s reload
- 在页面进行访问 页面
图片
相反,如果我们启动了nginx,但是却不配置静态文件访问路径匹配的话,那么就无法访问的。
Nginx配置高可用的集群
1. 准备工作
- 需要两台服务器
- 两台服务器均安装上nginx
- 两台服务器上都安装上keepalived
Tomcat
一. Linux环境下的下载
进入官网下载:tomcat.apache.org/
二 . 启动
- 下载tomcat安装包以后,解压。
- 进入解压后的bin目录,运行命令./startup.sh,Tomcat即运行成功。
- 运行命令:ps -ef|grep tomcat,可查看Tomcat是否运行。
三. 部署项目
直接将项目放在webapp目录下即可进行访问!
Nginx执行原理
当我们执行 ps -ef|grep nginx的时候,会发现nginx一共有两个进程!
完整流程是这样的
一个Master,多个worker的好处?
- 可以使用./nginx -s reload来实现热部署。
- 每个worker都是一个独立的进程,如果有其中一个worker出现问题,其他worker独立运行,不会造成服务的中断。
- 每个worker都能够最大程度使用cpu效率,所以将worker数设置成服务器cpu个数最为合适。