文章目录
- Nginx
- Nginx的核心功能
- Nginx的优势
- Nginx常用指令
- Nginx配置文件
- Nginx的核心功能:反向代理
Nginx
- Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
- Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like(开源协议)协议下发行
- 其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好
Nginx的核心功能
- 高性能的静态web服务器
- 高性能:并发能力强,大概是5w左右
- 静态web服务器:可以存储静态资源
- 反向代理
Tomcat与Nginx的异同:
- 相同点:
- 都是web服务器
- 都可以处理HTTP请求,返回HTTP响应报文
- 不同点:
- Tomcat是使用Java语言开发,而Nginx使用C开发
- Tomcat支持servlet-jsp规范,可以部署java应用,而Nginx不支持servlet-jsp规范,不能部署java应用
正向代理 vs 反向代理:
- DNS服务器:域名解析服务器,可以把域名解析成对应的IP地址
- 谷歌提供的DNS服务器地址:8.8.8.8
- 国内常用的电信和联通搭建的DNS服务器:114.114.114.114
- “墙”:就说国内的DNS服务器把一些国外的域名给屏蔽了,没有这些域名的ip地址信息
- ”翻墙“(正向代理):
- 先与VPN服务器建立连接,这个VPN服务器一般位于国外
- 再把这个访问的请求发给VPN服务器,再由这个VPN服务器去DNS域名解析器
- 找到对应站点的服务器,由VPN把请求发给目标服务器,然后目标服务器把响应数据返回给VPN服务器
- VPN服务器再把数据返回给我的电脑
- 正向代理:代理服务器是代表用户客户端去访问后端服务器,代理的对象是前面的用户
- 代理服务器代理的是客户端
- 代理服务器代理的是客户端
- 反向代理:代理服务器是代表后端服务器供客户端去访问,对于前面的用户来说是无感知的,代理的对象是后面的后台服务器
- 代理服务器代理的是目标服务器,客户端感知不到代理服务器的存在
- Nginx就说一种反向代理服务器
Nginx的优势
- 高并发、高性能
- 扩展性好(模块化设计)
- 异步非阻塞(NIO)的事件驱动模型
- 高可靠性(热部署(不用重启,直接生效)、7*24)
Nginx常用指令
#启动命令
sudo nginx
#关闭命令
sudo snginx -s stop
#重启命令
sudo nginx -s reload
Nginx配置文件
- 核心配置文件就是
nginx.conf
,打开这个核心配置文件 - 配置文件中有很多
#
, 开头的表示注释内容
- 很明显,
nginx.conf
配置文件分为三部分:
Nginx的核心功能:反向代理
反向代理配置:
- 修改配置文件
sudo vim /etc/nginx/nginx.conf
http{
...
...
#这部分是nginx作为反向代理服务器的配置
server{
#nginx监听的端口
listen 8080;
#虚拟服务器的识别标记,一般配置为本机ip
# 这部分是虚拟机/xshell的ip地址
server_name 192.168.45.151;
#代理设置地址
location / {
# 这部分是路由器给你分配的ip地址
proxy_pass http://192.168.45.151:8888;
}
}
}
集群及负载均衡配置:
- 集群:集群中服务器部署在不同的IP和端口号,对外暴露同样的接口,提供同样的功能,我们往集群中的任意节点发送同样的请求,总是得到相同的响应
- 集群的意义:主要为了解决单个Tomcat并发能力有限的问题,因为单个Tomcat的并发能力受到硬件等资源的限制,处理请求的能力是有限的,不能满足企业的需要,所以产生了集群。
- 负载均衡策略:
-
- 轮询(默认)
-
- weight(加权)
- 应对硬件资源可能不同
- 代表权重,默认为 1,权重越高被分配的客户端越多
-
- ip_hash
- ip_hash 每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题
-
- least_conn (最少连接方式)
-
- fair(第三方) (最短响应时间)
-
- url_hash (第三方)
-
eg:
-
先配置多个Tomcat服务器
-
在配置文件中声明一个集群
-
访问网址:192.168.88.129:8080按照负载均衡策略分配Tomcat