一文带你深入Nginx,由基础到进阶,包你轻松入门Nginx

客户端、服务端 通过 正向代理服务器、反向代理服务器 进行数据的交互。

[](()三、负载均衡、动静分离

===============================================================================

[](()

1、负载均衡

(1)为什么出现负载均衡?

一个小型的项目,一台服务器可以处理(可以提升机器硬件的能力)。

对于大型的项目,一台服务器处理起来,效率会很低下,采用 多台服务器 进行处理可以提高处理效率,但是请求如何到达服务器、各个服务器处理请求的数量 是需要解决的问题。

可以采用 反向代理 去代理多个服务器(解决请求到达服务器问题),并 根据某种规则 指定 服务器处理请求,使各个服务器处理请求的数量尽量均匀,即负载均衡(解决服务器处理请求问题)。

如下图所示:

客户端发送了 1000 个请求到 反向代理服务器。

反向代理服务器通过某种负载均衡算法,将请求分发到不同的真实服务器上处理。

比如真实服务器 A 处理了 320 个请求,B 处理了 350 个请求,C 处理了 330 个请求。

(2)负载量?均衡?什么是负载均衡?

Nginx 在负载均衡中的角色 就是 反向代理服务器。

负载量 实质指的是 客户端发送、被 反向代理服务器 接收到的请求数量。

均衡 实质指的是 按照某种规则,反向代理服务器 将接受的请求 发送给不同的 真实服务器处理(使各个真实服务器处理的请求量尽量均匀)。

所以负载均衡 实质指的是 反向代理服务器接收请求、并按照某种规则发送到 不同的真实服务器 处理的过程。

(3)负载均衡的方式?

负载均衡可以分为 硬件负载均衡、软件负载均衡。

硬件负载均衡 一般造价昂贵,但数据传输更加稳定。比如: F5 负载均衡。

软件负载均衡 一般采用 某种 负载均衡 算法实现(一种消息队列分发机制)。

[](()

2、动静分离

为了加快网站的解析速度,通常会将 动态页面静态页面内容 放在不同的服务器上处理,从而降低单个服务器的压力,加快解析速度。

动静分离实质就是将 动态资源 与 静态资源分开,放在不同的服务器上处理。

如下图:

真实服务器分为 动态资源处理服务器 与 静态资源处理服务器,反向代理根据不同的业务需求,将处理发送到不同的服务器上处理并返回内容。

五、Nginx 实现反向代理


[](()

1、实现效果?

使用 nginx 作为反向代理,根据访问路径的不同跳转到不同端口的服务中进行处理。

其中:

nginx 监听 80 端口(可省略),

访问:

http://120.26.184.41/blog,跳转到 https://www.cnblogs.com/l-y-h/。

http://120.26.184.41/baidu,跳转到 https://www.baidu.com/。

[](()

2、修改 nginx 配置文件

(1)配置文件简单分析

/etc/nginx/conf.d/default.conf 配置文件如下:

【配置文件中常用关键字解析:(server 块)】

listen 用于配置网络监听、监听端口、IP地址等。

比如:

listen port 监听 port 端口的所有的连接。

listen IP_address 监听 IP_address 所有端口。

listen IP_address:port 监听 IP_address 的 port 端口。

server_name 用于设置虚拟主机,可以为 域名、IP地址。

location 用于匹配 URL。

比如:

location = uri 表示严格匹配 uri,非正则表达式匹配。

location ~ uri 正则表达式匹配,区分大小写。

location ~* uri 正则表达式匹配,不区分大小写。

【location 块中常用关键字解析:】

proxy_pass 用于设置被代理服务器的地址

index 用于设置网站默认首页

【/etc/nginx/conf.d/default.conf 配置文件如下:】

server {

listen 80;

server_name localhost;

#charset koi8-r;

#access_log /var/log/nginx/host.access.log main;

location / {

root /usr/share/nginx/html;

index index.html index.htm;

}

#error_page 404 /404.html;

redirect server error pages to the static page /50x.html

error_page 500 502 503 504 /50x.html;

location = /50x.html {

root /usr/share/nginx/html;

}

proxy the PHP scripts to Apache listening on 127.0.0.1:80

#location ~ .php$ {

proxy_pass http://127.0.0.1;

#}

pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000

#location ~ .php$ {

root html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;

include fastcgi_params;

#}

deny access to .htaccess files, if Apache’s document root

concurs with nginx’s one

#location ~ /.ht {

deny all;

#}

}

(2)修改 nginx.conf 配置文件,用于添加代理映射。
《一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义》无偿开源 威信搜索公众号【编程进阶路】

【添加映射关系:(server 块)】

server {

listen 80;

server_name localhost;

location /blog/ {

proxy_pass https://www.cnblogs.com/l-y-h/;

}

location /baidu/ {

proxy_pass https://www.baidu.com/;

}

}

【完整 nginx.conf】

user nginx;

worker_processes 1;

error_log /var/log/nginx/error.log warn;

pid /var/run/nginx.pid;

events {

worker_connections 1024;

}

http {

include /etc/nginx/mime.types;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值