目录
1.什么是nginx
Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强, 高达 50,000 个并发连接数的响应 ,事实上nginx的并发能力在同类型的网页服务器中表现较好。
2.为什么使用nginx反向代理服务器
3.国内有哪些企业在使用nginx代理服务器
中国大陆使用nginx网站用户有:百度、 京东 、 新浪 、 网易 、 腾讯 、 淘宝 等。
4.如何安装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)解压该压缩文件
tar -zxvf nginx-1.24.0.tar.gz
(5)创建一个目录作为nginx的安装目录
mkdir /usr/nginx
(6)进入解压后的目录
指定nginx安装目录:
./configure --prefix=/usr/nginx
(7)进行编译和安装操作
make 对nginx源码进行编译
make install 编译并安装
(8)查看安装nginx的目录中的内容
conf: nginx的配置目录 nginx.conf
html: 静态资源目录
logs: 日志----如果启动nginx出现错误时,会在该目录下的日志文件中显示
sbin: 启动和关闭nginx的脚本目录
(9)启动nginx
sbin/nginx 启动nginx
sbin/nginx -s stop 关闭nginx
sbin/nginx -s reload 重新加载nginx配置ps -ef | grep nginx 查看nginx的进程
(10)window浏览器 (宿主机)访问linux中的nginx代理服务器
http://nginx所在服务的ip:port
默认端口为80
5.nginx的配置文件的介绍
自定义server:
创建一个目录main 并在该目录下创建一个main.html。
注意: 你修改nginx配置文件后,必须重新加载配置文件。./nginx -s reload
一个nginx可以对应多个server
6.nginx的核心功能
6.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反向代理。
①搭建nginx服务器,准备springboot项目并放入linux服务器系统
运行项目: java -jar XXXX.jar
注意: linux环境中必须安装了jdk。
②修改nginx配置文件的内容--192.168.184.250
重新加载nginx配置文件:
/usr/nginx/sbin/nginx -s reload
6.2 负载均衡
随着访问量的不断增加,一台真实服务器无法处理那么多请求。这时需要搭建真实服务器的集群。如何把请求均摊到集群的不同服务器上。 需要负载均衡组件,该组件可以帮你完成把请求均摊到集群服务器。
真实服务器准备2台
upstream: 定义集群信息
nginx重新加载配置文件
默认使用轮询策略
(1)权重策略:----合适服务器的配置不同,被访问的频率不同。
(2)ip_hash: ----根据客户端的ip分配相应真实服务器。
(3)使用第三方插件:----大多数付费。
6.3 动静分离
把静态资源【css,js,img】交于nginx来处理,而动态资源[接口,jsp]还是有真实服务器处理
好处: 当修改静态资源时,无需对每个真实服务器的静态资源做修改,只需要修改nginx一处的静态资源。
(1)如何完成动静分离
该工程中没有静态资源。
运行该工程: java -jar XXX.jar
(2)修改nginx配置文件
server {
listen 88;
server_name localhost;
location /{
proxy_pass http://192.168.223.233:8080;}
# 以jpg或css或js或png结尾的资源有nginx来处理,去static目录查找对应资源名称。 这里以相对路径为例
location ~ \.jpg|.css|.js|.png$ {
root static;
}}
注意: 把static目录放入到nginx的目录下