基于IP的虚拟主机
 
IP地址如下:
eth0 192.168.10.10   web1
eth0:0192.168.10.40  web2
nginx 配置文件修改如下:
 35     server {
 36         listen      192.168.1.10:80;
 37         server_name web1;
 38         location / {
 39             root   /www/html/web1;
 40             index index.php index.html index.htm;
 41                    }
 42         }
 43     server {
 44         listen      192.168.1.20:80;
 45         server_name web2;
 46         location / {
 47             root   /www/html/web2;
 48             index index.php index.html index.htm;
 49                  }
 50        }
 
测试如下:
 

nginx配置虚拟主机,代理服务器_nginx反向代理 

 

nginx配置虚拟主机,代理服务器_nginx虚拟主机_02

 
192.168.10.10:80    web1  
192.168.10.10:800  web2
nginx 配置文件修改如下:
 
35     server {
 36         listen      80;
 37         server_name web1;
 38         location / {
 39             root   /www/html/web1;
 40             index index.php index.html index.htm;
 41                    }
 42         }
 43     server {
 44         listen      800;
 45         server_name web2;
 46         location / {
 47             root   /www/html/web2;
 48             index index.php index.html index.htm;
 49                  }
 50        }
 
 测试如下:
 

nginx配置虚拟主机,代理服务器_nginx_03 

nginx配置虚拟主机,代理服务器_nginx_04

 
192.168.10.10   www.sh.com
192.168.10.10  bbs.sh.com
本文为了方便在hosts文件中添加如上内容
nginx 配置文件修改如下:
 
 35     server {
 36         listen      80;
 37         server_name www.sh.com;
 38         location / {
 39             root   /www/html/web1;
 40             index index.php index.html index.htm;
 41                    }
 42         }
 43     server {
 44         listen      80;
 45         server_name bbs.sh.com;
 46         location / {
 47             root   /www/html/web2;
 48             index index.php index.html index.htm;
 49                  }
 50        }
 
 测试如下
 

nginx配置虚拟主机,代理服务器_nginx虚拟主机_05 

nginx配置虚拟主机,代理服务器_nginx反向代理_06

 

 
 

 

nginx配置虚拟主机,代理服务器_nginx_07

 
nginx 作为反向代理服务器,以实现负载均衡,和动,静态页面分离,apache1,apache2 作为http服务器,IP配置如上
nginx 配置静态页面index.html 显示web
apache1 配置php页面test.php 显示 apache1
apache1 配置虚拟目录discuz 安装有discuz
apache2 配置php页面test.php 显示 apache2
访问静态页面直接使用nginx的页面,访问php页面使用代理
 
 
访问discuz定位于apache1
访问php页面定位于apache2
nginx 配置文件如下:
在server模块添加如下内容
     location ^~ /discuz/ {                # (^~表示不实用正则表达式匹配,直接匹配)          
           proxy_pass   http://192.168.10.20;
      }
     location ~ \.php$ {
        proxy_pass   http://192.168.10.30:80; # 正则表达式匹配.php结尾的文件
      }
测试如下:
 

nginx配置虚拟主机,代理服务器_休闲_08 

nginx配置虚拟主机,代理服务器_nginx_09

 
对于同一页面test.php 实现负载均衡(实际上apache1,apache2 使用相同的数据,可以考虑使用存储服务器实现数据同步)
nginx 配置文件如下:
在http模块添加如下内容:
    upstream cluster1 {
          server 192.168.10.20:80;        #群集服务器1
          server 192.168.10.30:80;        #群集服务器2
     }
在server模块添加如下内容
        location ~ \.php$ {
           proxy_pass        http://cluster1; #定义的群集名字
           proxy_redirect    off;
           proxy_set_header Host   $host;
           proxy_set_header X-Real-IP   $remote_addr;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
              }
对于apache1,和apache2 也可以设置权重如下:
    upstream cluster1 {
          server 192.168.10.20:80 weight=4;     #群集服务器1 处理4/5的请求
          server 192.168.10.30:80 ;            #群集服务器2 处理1/5的请求
     }

测试如下:

nginx配置虚拟主机,代理服务器_nginx_10 

 

nginx配置虚拟主机,代理服务器_nginx虚拟主机_11