目录
1.启动一个tomcat,浏览器地址栏输入 127.0.0.1:8080 ,出现如下界面
1.Nginx概述和功能
1.Nginx
Nginx:是一个高性能的HTTP和反向代理服务器.
Nginx可以作为静态页面的 web 服务器,同时还支持 CGI 协议的动态语言,比如perl 、 php等。
2.正向代理
正向代理:如果把局域网外的Internet 想象成一个巨大的资源库,则局域网中的客户端要访问 Internet ,则需要通过代理服务器来访问,这种代理服务就称为正向代理。
3.反向代理
反向代理,其实客户端对代理是无感知的,因为客户端不需要任何配置就可以访问,我们只需要将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,在返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴露的是代理服务器地址,隐藏了真实服务器 IP 地址。
4.负载均衡
单个服务器解决不了,我们增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器上的情况改为将请求分发到多个服务器上,将负载分发到不同的服务器,也就是我们所说的负载均衡
5.动静分离
为了加快网站的解析速度,可以把动态页面和静态页面由不同的服务器来解析,加快解析速度。降低原来单个服务器的压力。
2.Nginx的安装
1.下载地址:nginx news
2. 安装:解压即可
3.Nginx的常用命令
1.目录结构
conf: 配置
html: 部署
logs: 日志
2.Windows版本
3.启动Nginx
在CMD中输入
start nginx
启动成功之后,在任务管理中有2个nginx.exe的进程
启动成功之后,在地址栏输入: http://localhost或http://127.0.0.1 访问
4.Nginx的配置实例
1.反向代理
实现效果:使用 nginx 反向代理,访问 www.123.com 直接跳转到 127.0.0.1:8080
1.启动一个tomcat,浏览器地址栏输入 127.0.0.1:8080 ,出现如下界面
2.在nginx.conf 配置文件中增加如下配置
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
location ^~ /testa/ {
proxy_pass http://127.0.0.1:8080/;
}
}
反向代理:
http://127.0.0.1:8080 当与/testa/匹配时,访问tomcathttp://127.0.0.1:8080下面的testa资源
http://127.0.0.1:8080/ 当与/testa/匹配时访问tomcathttp://127.0.0.1:8080下面的默认资源
2.负载均衡
实现效果: 配置负载均衡
1.启动俩个同时启动的Tomcat
2.在nginx.conf中进行配置
http{
# 配置上游服务
upstream myservers{
server 127.0.0.1:8080;
server 127.0.0.1:8081;
}
server{
location ^~ /testb/ {
proxy_pass http://myservers/;
}
}
}
3. Nginx 提供了几种分配方式
轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
weight weight代表权重默认为 1, 权重越高被分配的客户端越多指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
ip_hash 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
fair(第三方) 按后端服务器的响应时间来分配请求,响应时间短的优先分配。
3.动静分离
Nginx 动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和静态页面物理分离
1.项目资源准备
2.进行 nginx 配置 找到nginx 安装目录,打开 /conf/nginx.conf 配置文件
server {
listen 80;
server_name localhost;
charset utf-8;
location / {
root html; #设置虚拟主机的网站根目录
try_files $uri $uri/ /index.html; #依次尝试资源
index index.html index.htm; #设置虚拟主机默认访问的网页
}
location /prod-api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:8080/; #设置代理转发地址
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
添加监听端口、访问名字, 重点是添加location
3.最后检查 Nginx 配置是否正确即可,然后测试动静分离是否成功,之需要删除后端 tomcat服务器上的某个静态文件,查看是否能访问,如果可以访问说明静态资源 nginx 直接返回了,不走后端 tomcat 服 务器