一台电脑玩玩架构 - Nginx反向代理
环境准备
物理机是公司配置的MBP(i5处理器 8G内存),目前同时运行5台虚拟机速度还算流畅。虚拟机使用virtualbox,操作系统使用CentOS6.9 x86_64最小镜像。NMP(Nginx、MySQL、PHP)使用部署脚本安装。
安装操作系统
虚拟机安装操作系统在此不作细述,需要注意两点,一是配置虚拟机网络为桥接方式,二是关闭虚拟机防火墙。
- 虚拟机网络配置如上图。配置完成后,在虚拟机执行
service network restart
重启网卡 - 关闭防火墙
1
2
3service iptables stop # 关闭命令
chkconfig iptables off # 永久关闭
service iptables status # 查看状态
在虚拟机安装软件
创建两台虚拟机,这里取名为nginx1
和nginx2
,使用部署脚本为这两台虚拟机分别安装Nginx和PHP(后面搭建MySQL主从会再新建虚拟机,所以这里只安装必要的Nginx和PHP即可)。安装完成后,在物理机访问虚拟机IP地址,不出意外的话,页面会显示部署脚本的自定义内容。若出意外,不外乎两个原因,虚拟机网络连接方式和防火墙是否关闭,耐心解决一下就好了。
为了直观显示,在两台虚拟机的/data/wwwroot/default/
目录下先把全部文件删除,新建index.html
文件并添加如下内容:1
2
3
4
5
6
7
8<html>
<head>
<title>Nginx1(2)</title>
</head>
<body>
<h1>This is Nginx 1(2).</h1>
</body>
</html>
html内容里的1和2表示虚拟机nginx1
或nginx2
(废话还是要扯一扯的)
物理机Nginx配置
接下来到关键时刻了,在物理机Nginx配置里新添加一个虚拟主机,这里取名为proxy.conf
,配置内容如下:
1 | upstream my_server { |
上面的配置必须添加在http节点下才生效。这段配置的大概意思是,把访问proxy.app
的请求以轮询方式反向代理到IP地址为192.168.30.102
和192.168.30.103
服务器中,即那两台虚拟机。最后别忘了修改物理机的hosts和重启Nginx。
在物理机访问proxy.app
看下效果。
刷新