1.1 什么是nginx
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强, 高达 50,000 个并发连接数的响应 ,事实上nginx的并发能力在同类型的网页服务器中表现较好。反向代理服务器。
1.2 为什么使用nginx反向代理服务器
1.3 如何安装nginx代理服务器
nginx它使用c语言编写,通过源码的形式安装nginx.
(1)先安装nginx需要的依赖环境
yum install -y gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
(2)下载nginx
(3)把下载的nginx放入linux系统
(4)创建一个目录作为nginx的安装目录
mkdir /usr/soft/nginx
(5)解压nginx源码文件
tar -zxvf nginx-1.18.0.tar.gz
(6)进入解压后的目录
(7)编译
make
(8) 安装
make install
(9)查看安装nginx的目录中的内容
(10)启动nginx
sbin/nginx 启动nginx sbin/nginx -s stop 关闭nginx sbin/nginx -s reload 重新加载nginx配置
(11)window浏览器就可以访问代理服务器
http://端口号:80
3. ngnix的配置文件的介绍
自定义了server
创建一个目录main 并在该目录下创建一个main.html
注意: 你修改了nginx配置文件,必须重新加载配置文件
./nginx -s reload
一个nginx对应多个server
4. nginx的核心功能
4.1 反向代理
(1)正向代理
拿借钱打个比方,A想向C借钱,但是C不认识A所以不借给他,然后A就通过B向C借钱,B借到钱之后再转交给A,在这个过程中B就扮演了一个正向代理的角色,这个过程中,真正借钱的人是谁,C是不知道的~ 我们常说的代理也就是指正向代理,正向代理的过程,它隐藏了真实的请求客户端,服务端不知道真实的客户端是谁,客户端请求的服务都被代理服务器代替来请求. 比如我想访问www.google.com,要想翻越这堵墙,你可以在国外用Shadowsocks来搭建一台代理服务器,代理帮我们请求www.google.com,代理再把请求响应结果再返回给我。思考: 谷歌是否知道真正的访问者。 正向代理: 代理的客户端,对于服务器来说不知道真实的客户。
(2)反向代理
还用借钱的例子,A想向C借钱,然后C借给他了,但是实际上这个钱可能C向B借的~至于钱到底是谁的,A是不知道的~ 这里的C扮演着一个反向代理的角色,客户不知道真正提供服务的人是谁。 反向代理隐藏了真实的服务端,对于客户来说不知道访问的是哪台服务器。 可以使用nginx反向代理。
准备:
搞一台真实服务器----tomcat项目。----搞一个springboot项目并放入linux服务器系统
运行springboot项目
java -jar qy165-demo01.jar
(2)配置nginx来代理上面springboot真实项目服务。
重新加载nginx配置文件
(3)浏览器访问nginx
4.2 负载均衡
配合反向代理+负载均衡
真实服务器准备2台。
nginx重新加载配置文件
默认使用轮询策略。
还有哪些负载均衡策略:
(1)权重策略:----合适服务器的配置不同,被访问的频率不同。
(2)ip_hash: ----根据客户端的ip分配相应真实服务器。
(3)使用第三方插件:----大多数付费。
4.3 动静分离
把静态资源【css,js,img】交于nginx来处理,而动态资源[接口,jsp]还是有真实服务器处理
好处: 当修改静态资源时,无需对每个真实服务器的静态资源做修改,只需要修改nginx一处的静态资源。