反向代理与负载均衡
nginx通常被用作后端服务器的反向代理,这样就可以很方便的实现动静分离以及负载均衡,从而大大提高服务器的处理能力。
nginx实现动静分离,其实就是在反向代理的时候,如果是静态资源,就直接从nginx发布的路径去读取,而不需要从后台服务器获取了。
但是要注意,这种情况下需要保证后端跟前端的程序保持一致,可以使用Rsync做服务端自动同步或者使用NFS、MFS分布式共享存储。
Http Proxy模块,功能很多,最常用的是proxy_pass和proxy_cache
如果要使用proxy_cache,需要集成第三方的ngx_cache_purge模块,用来清除指定的URL缓存。这个集成需要在安装nginx的时候去做,如:
环境说明./configure --add-module=…/ngx_cache_purge-1.0 …
| 系统 | IP | 服务 |
|---|---|---|
| CentOS8调度器 DR | 192.168.101.210 | Nginx |
| CentOS8 动态页面处理 Dynamic(动态) | 192.168.101.120 | LNMP |
| CentOS8 静态页面处理 Static(静态) | 192.168.101.200 | httpd |
各服务已部署完成
Dynamic
Static
DR
[root@DR ~]# vim /usr/local/nginx/conf/nginx.conf
upstream Dynamic {
server 192.168.101.120 # 在server段上添加
}
upstream Static {
server 192.168.101.200
}
#location / {
# root html;
# index index.html index.html #将这段添加注释
;
#}
location ~ .php$ {
proxy_pass http://Dynamic; # 在server段添加
}
location / {
proxy_pass http://Static;
}
[root@DR ~]# nginx -s reload
测试效果
当访问根目录的时候默认是跳到静态的httpd上
当访问动态资源时就自动跳到Dynamic上
DR上
[root@DR ~]# vim /usr/local/nginx/conf/nginx.conf
upstream LJT {
server 192.168.101.120;
server 192.168.101.200; # 在server段上面添加
}
location / {
proxy_pass http://LJT; # 在server段内添加
}
测试效果
刷新,每刷新一次就在Dynamic和Static上跳转
也可设置权重,让高性能主机的多处理任务
[root@DR ~]# vim /usr/local/nginx/conf/nginx.conf
upstream LJT {
server 192.168.101.120 weight=3; # 设置权重就会多处理任务
server 192.168.101.200; # 在server段上面添加
}
location / {
proxy_pass http://LJT; # 在server段内添加
}



