Nginx
网课链接 https://www.bilibili.com/video/BV1zJ411w7SV?from=search&seid=9903911586220805630
Nginx基本概念
轻量级的Web服务器/反向代理服务器及电子邮件代理服务器
特点
占用内存少
并发能力强
支持热部署 热部署,就是在应用正在执行的时候升级软件,却不须要又一次启动应用
正向代理
通过代理服务器去访问目标服务器
依赖代理服务器去访问
反向代理
客户端不需要做配置就可以访问
只需要将请求发送到反向代理服务器
反向代理服务器获得数据后,返回给客户端
此时,反向代理服务器和目标代理服务器对外是一个服务器
暴露了代理服务器,隐藏了真实服务器IP地址
负载均衡
将请求分发到不同服务器
动静分离
加快网站的解析速度,把动态页面和静态页面由不同的服务器来解析,加快解析速度,降低原来单个服务器的压力
在动态资源部署到tomcat
用一台服务器专门放静态资源
Nginx安装、常用命令和配置文件
安装在/usr/scr目录下
连接上linux操作系统
linux安装nginx 需要安装的东西
pcre-8.37.tar.gz
openssl-1.0.1t.tar.gz
zlib-1.2.8.tar.gz
nginx-1.11.1.tar.gz
linux命令
wget 加地址 安装pcre
rz -E 传输文件到linux 直接拖也可以
tar -xvf 解压压缩包
./configure
make && make install 编译 安装
pcre-config --version 查看版本号
yum -y install make zlib zlib-devel gcc-c++ libtoolopenssl openssl-devel
安装nginx
解压
执行./configure
make && make install
安装完成后 会在/usr/local中创建nginx
启动命令在/usr/local/nginx/sbin 中
./nginx即可启动nginx
配置文件在/usr/local/nginx/conf/nginx.conf
默认端口号80
查看进程
ps -ef | grep nginx
常用命令
查看版本号
启动 ./nginx
关闭 ./nginx -s stop
重新加载 ./nginx -s reload
Nginx配置文件
/usr/local/nginx/conf/nginx.conf
1)全局块
worker_processes 1 并发处理量
2)events块
worker_connections 1024 最大连接数
3)http块
- http全局块
- server块
Nginx配置实例
1)实现反向代理
实例1
实现输入www.123.com跳转到tomcat主页
安装tomcat 解压 进入bin目录
启动 ./startup.sh
安装 JDK https://www.cnblogs.com/wjup/p/11041274.html
windows的host文件配置域名和IP地址对应关系
反向代理配置
server
listen 端口
server_name IP (访问这个IP+端口)
location{
proxy_pass http://127.0.0.1:8080 (转发到这个地址)
}
实例2
访问127.0.0.1:9001/aa 跳转到127.0.0.1:8001
访问127.0.0.1:9001/bb 跳转到127.0.0.1:8002
listen 9001
server_name IP
location ~ /aa/ {
proxy_pass http://127.0.0.1:8001 (转发到这个地址)
}
location ~ /bb/ {
proxy_pass http://127.0.0.1:8002 (转发到这个地址)
}
2)实现负载均衡
相关链接 https://blog.csdn.net/qq_34801169/article/details/89678063
默认轮询
ip-hash每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题
least-connected算法的中文翻译是最少连接,即每次都找连接数最少的服务器来转发请求
加权
fair(第三方)按后端服务器的响应时间来分配请求,响应时间短的优先分配
http {
upstream myserver{
ip_hash;
server 115.28.52.63:8080 weight=1;
server 115.28.52.63:8180 weight=1;
}
server{
location {
...
proxy_pass http://myserver (转发到这个地址)
}
}
...
}
3)实现动静分离
将动态请求和静态请求分开
可以理解成用nginx处理静态页面
用tomcat处理动态页面
4)Nginx配置高可用集群
主从模式
类似哨兵
两台nginx服务器
安装keepalived
虚拟IP
修改配置文件
Nginx原理与优化参数配置
IO多路复用
一个master
多个worker 争抢请求
好处
可以使用nginx -s reload热部署
每个worker都是独立进程,不需要加锁
连接数
worker_connection
发送请求,占用多少个worker的连接数
2或者4
nginx有一个 master,有四个woker,每个 woker支持最大的连接数据1024,支持的最大并发数是多少
4*1024 / 2
4*1024 / 4