目录
一、简介
Nginx是一款轻量级的web服务器/反向代理服务器,并具有占用内存少、并发能力强的特点
突出贡献:
- 反向代理
- 负载均衡
二、使用场景
1 高并发
高并发通常是指通过设计保证系统能够同时并行处理很多请求。通俗来讲,高并发是指在同一个时间点,有很多用户同时的访问同一个API接口或者URL地址。经常会发生在有大活跃用户量、用户高聚集的业务场景中。
2 负载均衡
负载均衡将请求/数据均匀分摊到多个操作单元上执行,负载均衡的关键在于均匀
3 正向代理
代理人明确知道买家的目标是谁,代理人帮我们去联系目标
4 反向代理
客户只需要发送请求到代理服务器,代理服务器会将请求转发给内部的服务器去处理,处理完毕之后会讲结果返回给客户,但整个过程中客户和实际处理服务器是不会直接建立连接的
三、源码安装Nginx
# 解压
tar -zxvf nginx-1.8.1.tar.gz
cd nginx-1.8.1
# 安装依赖
yum install gcc pcre-devel zlib-devel openssl-devel -y
# 配置安装路径
./configure —-prefix=/opt/nginx
# 编译并安装
make && make install
# 开启Nginx
cd /opt/nginx/sbin
./nginx
http://192.168.146.201/
# 常用命令
nginx -s reload # 重新加载配置文件
nginx -s quit # 关闭nginx
四、负载均衡搭建
修改nginx配置文件
upstream bd_name {
server 192.168.146.202:8080;
server 192.168.146.203:8080;
server 192.168.146.204:8080;
}
server{
listen 80;
server_name www.bd_name.com
location / {
proxy_pass http://bd_name;
}
}
五、负载均衡策略
1 请求轮询
依次转发给配置的服务器
2 增加权重
使用服务器权重,还可以进一步影响nginx负载均衡算法,谁的权重越大,分发到的请求越多
upstream bd_name {
server 192.168.146.201:8080 weight=2;
server 192.168.146.201:8080 weight=1;
}
3 最少连接数
在连接负载最少的情况下,nginx会尽量避免将过多的请求分发给繁忙的应用程序服务器,而是将新请求分发给不太繁忙的服务器,避免服务器过载
upstream bd_name {
least_conn;
server 192.168.146.201:8080 weight=2;
server 192.168.146.201:8080 weight=1;
}
4 IpHash
确保来自同一客户端的请求将始终定向到同一台服务器,除非次服务器不可用
upstream bd_name {
ip_hash;
server 192.168.146.201:8080 weight=2;
server 192.168.146.201:8080 weight=1;
}
六、资源静态化
配置静态资源路径
location ^~ /static/ {
root html;
}
七、单Linux搭建多Tomcat
1 拷贝多份tomcat的文件
2 设置环境变量
# tomcat
export CATALINA_HOME=/opt/dbp/apache-tomcat8080
export CATALINA_BASE=/opt/dbp/apache-tomcat8080
export TOMCAT_HOME=/opt/dbp/apache-tomcat8080
# tomcat1
export CATALINA_HOME1=/opt/dbp/apache-tomcat18080
export CATALINA_BASE1=/opt/dbp/apache-tomcat18080
export TOMCAT_HOME1=/opt/dbp/apache-tomcat18080
3 配置server.xml文件
第一台保持不变,只需要将第二台的8085、8080、8089修改为第二台即可
4 修改脚本
修改第二台tomcat, catalina.sh脚本
# 113行开始
export CATALINA_HOME=$CATALINA_HOME1
export CATALINA_BASE=$CATALINA_BASE1
export TOMCAT_HOME=$TOMCAT_HOME1
5 分别启动两个tomcat
八、虚拟主机
虚拟主机是指在网络服务器上分出一定的磁盘空间,用户可以租用此部分空间,以供用户防止站点及相应组件,提供必要的数据存放和传输功能
- 基于域名:通过域名来区分虚拟主机
- 基于端口:通过端口来区分虚拟主机
九、Session一致性
1 内存数据库
# 安装数据库
yum install memcached -y
# 开启数据库服务
systemctl status memcached
systemctl start memcached
systemctl enable memcached
vim /etc/sysconfig/memcached
2 Tomcat
**1.**拷贝jar包到当前服务器lib目录下
**2.**如果一个服务器有多个tomcat都需要session一致性
配置tomcat/conf/server.xml
相同项目如果像共享session,需要把jvmRoute命名一致
如果你只有一个tomcat忽略此步骤
3. 配置tomcat/conf/context.xml
<Engine name=“Catalina” defaultHost=“localhost” jvmRoute=“jvm18080”>