一、简介
- Nginx本质上是一款轻量级的Web服务器、反向代理服务器、电子邮件代理服务器,暂用内存少,并发能力强。
- 可以在windows、linux上安装,也可以使用docker安装。
- 安装好之后,一共四个目录,分别是conf配置文件目录,html存放静态资源目录,logs日志文件目录,sbin脚本目录,包含nginx各种命令。
- 相比于Tomcat,Nginx处理静态资源的能力更加高效。
二、命令
./nginx -v
./nginx -t
// 启动nginx
./nginx
// 停止nginx
./nginx -s stop
// 启动完成查看nginx进程(默认会有一个master进程和一个worker进程)
ps -ef | grep nginx
./nginx -s reload
三、配置文件conf/nginx.conf结构
- 全局块
配置文件开头一直到Events块都是全局块,全局块是和Nginx运行相关的全局配置。 - Events块
和网络连接相关的配置。 - Http块
代理、缓存、日志记录、虚拟主机配置。
- Http全局块(Http块中开头到Server块的位置都是)
- Server块
- Server全局块(Server块中开头到location块的位置都是)
- location块
注意:Http块中可以配置多个Server块,每个Server块中可以配置多个location块。
四、具体应用
一、部署静态资源
- 只需将文件复制到Nginx安装目录下的html目录中即可
- server块理解
我们配置不同的server,可以实现,监听不同端口的不同路径,还可以设置该路径下的首页和静态资源目录
server{
listen 80; #监听端口
server_name localhost; # 服务器名称
location / { # 匹配客户端请求url
root html; # 指定静态资源根目录
index index.html; # 指定默认首页
}
}
二、反向代理(就是请求转发)
- 正向代理:如VPN,我知道目标地址,但是无法访问,通过nginx代理,就可以将目标地址的资源转给客户端。
- 反向代理:我们请求某个资源时,不知道目标地址,但是知道nginx的地址,nginx反向代理服务器集群,这样可以保护集群不被攻击,我们向nginx发送请求,nginx转发到服务器,然后将结果返回给客户端。
server{
listen 80;
server_name localhost;
location / {
# 反向代理配置,将nginx服务器地址80端口/路径请求,转发到指定服务
proxy_pass http://192.168.142.85:8080;
}
}
三、负载均衡
- 应用集群:将同一应用部署到多台机器上,组成应用集群,接收负载均衡器分发的请求,进行业务处理并返回响应数据。
- 负载均衡器:将用户请求根据对应的负载均衡算法分发到应用集群中的一台服务器进行处理。
- 负载均衡策略有好几种
- 轮询(默认)
- weight权重方式
- ip_hash依据ip分配方式
- least_conn依据最少连接方式
- url_hash依据url分配方式
- fair依据响应时间方式
upsteam targetserver{ # upstream指令可以定义一组服务器
server 192.168.142.85:8080 weight=10; # 设置权重
server 192.168.142.86:8080 weight=5;
}
server{
listen 8080;
server_name localhost;
location / {
proxy_pass http://targetserver; # 负载均衡
}
}