目录
服务器名称 | 主机名 | IP | 安装服务 | 备注 |
Nginx反向代理服务器 | proxy | 192.168.1.10 | nginx | 关闭selinux和firewalld |
httpd网站服务器 | web1 | 192.168.1.20 | httpd | 关闭selinux和firewalld |
httpd网站服务器 | web2 | 192.168.1.30 | httpd | 关闭selinux和firewalld |
(1)、proxy服务器
安装nginx:Nginx安装、配置与概述_桂安俊@kylinOS的博客-CSDN博客
(2)、web1和web2服务器
- yum install httpd -y
-
- #web1服务器
- echo "this is 192.168.1.20 web1 server" > /var/www/html/index.html #做一个首页,用于标记
-
- #web2服务器
- echo "this is 192.168.1.30 web2 server" > /var/www/html/index.html #做一个首页,用于标记
修改web1和web2服务器/etc/httpd/conf/httpd.conf监听端口为8080,并启动httpd服务
实现效果:客户端访问proxy服务器192.179.1.10:80端口转发到web1服务器的8080端口,从而实现对web1 httpd网站的访问
server {
listen 80;
server_name 192.168.1.10; #监听本地IP#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html;
proxy_pass http://192.168.1.20:8080; #转发到指定IP和端口
index index.html index.htm;
}... ...
}
/usr/local/nginx/sbin/nginx -s reload
访问proxy 192.168.1.10 IP
可以看到已经成功转发到web1服务器的8080端口。
实现效果:使用Nginx反向代理,根据访问的路径不同,跳转到不同端口的服务中,nginx监听端口为9001,比如:
访问http://192.168.1.10:9001/edu/ 直接跳转到192.168.1.20:8080
访问http://192.168.1.10:9001/vod/ 直接跳转到192.168.1.30:8080
在web1 httpd的html目录/var/www/html创建edu目录,并在edu目录下放一个a.html
echo "this is web1 server edu a.html" > /var/www/html/edu/a.html #方便测试标识
在web1 httpd的html目录/var/www/html创建vod目录,并在edu目录下放一个a.html
echo "this is web2 server vod a.html" > /var/www/html/edu/a.html #方便测试标识
访问一下:
vim /usr/local/nginx/conf/nginx.conf
新增或修改一个server虚拟主机(nginx.conf下面有server模板):
server {
listen 9001; #监听端口
server_name 192.168.1.10;location ~ /edu/ { #如果路径是/eud/就转发到192.168.1.20:8080
proxy_pass http://192.168.1.20:8080;
}location ~ /vod/ { #如果路径是/vod/就转发到192.168.1.30:8080
proxy_pass http://192.168.1.30:8080;
}
}
/usr/local/nginx/sbin/nginx -s reload
访问:http://192.168.1.10:9001/edu/a.html
访问:http://192.168.1.10:9001/vod/a.html
【补充】:关于location指令说明
该指令用于匹配URL,语法如下:
location [ = | ~ | ~* | ^~ URL ] {
}
注意:如果URL包含正则表达式,则必须要有 ~ 或者 ~* 表示。