Linux Nginx 反向代理
使用代理服务器可以将请求转发给内部的Web服务器,使用这种加速模式显然可以提升静态网页的访问速度。因此也可以考虑使用这种技术,让代理服务器将请求 均匀转发给多台内部Web服务器之一上,从而达到负载均衡的目的。这种代理方式与普通的代理方式有所不同,标准代理方式是客户使用代理访问多个外部Web 服务器,而这种代理方式是多个客户使用它访问内部Web服务器,因此也被称为反向代理模式。
实现这个反向代理能力并不能算是一个特别复杂的任务,每针对一次代理,代理服务器就 必须打开两个连接,一个为对外的连接,一个为对内的连接,因此对于连接请求数量非常大的时候,代理服务器的负载也就非常之大了,在最后反向代理服务器会成 为服务的瓶颈。
使用反向代理的好处是,可以将负载均衡和代理服务器的高速缓存技术结合在一起,提供有益的性能,具备额外的安全性,外部客户不能直接访问真实的服务器。并且实现起来可以实现较好的负载均衡策略,将负载可以非常均衡的分给内部服务器,不会出现负载集中到某个服务器的偶然现象。
-
实验环境:
-
网站域名 : www.myweb.com
-
Server 192.168.1.2 CentOS 7.5 Nginx反向代理+DNS服务器
-
Web 1 192.168.1.3 CentOS 7.5 Nginx+MariaDB
-
Web 2 192.168.1.4 CentOS 7.5 Nginx+PHP+BBS
-
Web 3 192.168.1.5 CentOS 7.5 Nginx+PHP+BLOG
-
Server 192.168.1.2 配置 Nginx 作为反向代理服务器,放置到三台 Web 服务器之前,作为用户访问的入口
Web 1 服务器仅仅处理静态页面,动态的页面(php请求)统统都交付给后台的Web 2 和 Web 3 服务器来处理。也就是说,可以把网站的静态页面或者文件放置到 Web 1下;动态的页面和数据库访问都保留到后台的 Web+PHP 服务器上。
- 首先在 Server 192.168.1.2 上安装、配置 Nginx 和 DNS
- 详细安装、配置请参考拙作:
- DNS :https://blog.****.net/gaofei0428/article/details/103752324
- Nginx + PHP :https://blog.****.net/gaofei0428/article/details/104058580
- LNMP 部署分离:https://blog.****.net/gaofei0428/article/details/104224132
- 部署 LNMP 搭建 Discuz 和 WordPress:https://blog.****.net/gaofei0428/article/details/104269959
- 下面列出配置结果
- /var/named/myweb.com.zone
$TTL 1D
@ IN SOA www.myweb.com. root.myweb.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
IN NS www.myweb.com.
MX 10 root.mytest.com.
www IN A 192.168.1.3
bbs IN A 192.168.1.4
blog IN A 192.168.1.5
root IN A 192.168.1.2
- /etc/named.rfc1912.zones
zone "myweb.com" IN {
type master;
file "myweb.com.zone";
};
zone "1.168.192.in-addr.arpa" IN {
type master;
file "myweb.com.zone";
};
- 将本地 DNS 指向本机后,测试 DNS
-
Nginx 反向代理设置
-
server { #设置 Web 1
listen *:80;
location / {
proxy_pass http://www.myweb.com;
root /data/web/;
index index.html index.htm index.php;
}
}
server { #设置 Web 2
listen *:80;
location / {
proxy_pass http://bbs.myweb.com;
root /data/web/bbs;
index index.html index.htm index.php;
}
}
server { #设置 Web 3
listen *:80;
location / {
proxy_pass http://blog.myweb.com;
root /data/web/blog;
index index.html index.htm index.php;
}
}
- 启动 Nginx 服务
- Web 1 设置
- Web 2 和 Web 3 设置
- 下面开始测试,首先将 WINDOWS 的 DNS 指向 Server 192.168.1.2