环境准备

物理机是公司配置的MBP(i5处理器 8G内存),目前同时运行5台虚拟机速度还算流畅。虚拟机使用virtualbox,操作系统使用CentOS6.9 x86_64最小镜像。NMP(Nginx、MySQL、PHP)使用部署脚本安装。

安装操作系统

虚拟机安装操作系统在此不作细述,需要注意两点,一是配置虚拟机网络为桥接方式,二是关闭虚拟机防火墙。

  1. 虚拟机网络配置如上图。配置完成后,在虚拟机执行service network restart重启网卡
  2. 关闭防火墙
    1
    2
    3
    service iptables stop 		# 关闭命令
    chkconfig iptables off # 永久关闭
    service iptables status # 查看状态

在虚拟机安装软件

创建两台虚拟机,这里取名为nginx1nginx2,使用部署脚本为这两台虚拟机分别安装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表示虚拟机nginx1nginx2(废话还是要扯一扯的)

物理机Nginx配置

接下来到关键时刻了,在物理机Nginx配置里新添加一个虚拟主机,这里取名为proxy.conf,配置内容如下:

1
2
3
4
5
6
7
8
9
10
11
upstream my_server {
server 192.168.30.102;
server 192.168.30.103;
}
server {
listen 80;
server_name proxy.app;
location / {
proxy_pass http://my_server/;
}
}

上面的配置必须添加在http节点下才生效。这段配置的大概意思是,把访问proxy.app的请求以轮询方式反向代理到IP地址为192.168.30.102192.168.30.103服务器中,即那两台虚拟机。最后别忘了修改物理机的hosts和重启Nginx。

在物理机访问proxy.app看下效果。

刷新