nginx 虚拟主机、反向代理

虚拟主机

什么是虚拟主机

实现一台主机,对外提供多个web服务,每个虚拟主机之间是独立的,互不影响。

怎么样实现虚拟主机

  • 绑定多IP
    一块物理网卡上绑定多个IP地址,这样就能够在使用单一网卡的同一个服务器上运行多个基于IP的虚拟主机。
  1. 实验
    1.1 环境准备,绑定多个IP
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens33:01
[root@localhost network-scripts]# vim ifcfg-ens33:01
OTPROTO=dhcp
BOOTPROTO=static
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777736
UUID=0ae9d555-0fa5-427b-a186-ffe9c2e98aa4
DEVICE=ens33:01
ONBOOT=yes
PEERDNS=yes
PEERROUTES=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPADDR=192.168.176.4
DNS1=192.168.176.2

复制一份网络配置文件为ifcfg-ens33:01,修改DEVICE=ens33:01和IPADDR,重启系统即可
1.2 配置虚拟主机
修改 /usr/local/conf/nginx.conf

 server {
        listen       80;
        server_name  192.168.176.104;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   /usr/local/nginx/html;
            index  index.html index.htm;
        }

        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

 
    }
    
    server {
          listen       80;
          server_name  192.168.176.4;

          location / {
              root   /usr/local/nginx/html4;
              index  index.html index.htm;
          }
    }
nginx 虚拟主机、反向代理_第1张图片
多ip-104.png
nginx 虚拟主机、反向代理_第2张图片
多ip-192.168.176.4.png
  • 多端口
  1. 需求
    nginx对外提供两个端口监听服务,请求80端口则请求html80目录下的html,请求8080则是html8080目录下的html
  2. 配置
    
    server {
      listen       80;
      server_name  192.168.176.4;

      location / {
          root   /usr/local/nginx/html80;
          index  index.html index.htm;
      }

        }
        
        server {
      listen       8080;
      server_name  192.168.176.4;

      location / {
          root   /usr/local/nginx/html8080;
          index  index.html index.htm;
      }
        }
  1. 测试


    nginx 虚拟主机、反向代理_第3张图片
    多端口-8080.png
nginx 虚拟主机、反向代理_第4张图片
多端口-80.png
  • 通过域名区分
    两个域名指向同一台nginx服务器,用户访问不同的域名显示不同的网页内容。
  1. 需求
    访问aaa.test.com、bbb.test.com对应192.168.176.4虚拟机,出现不同的网页
  2. 配置
    2.1 修改主机host
    C:\Windows\System32\drivers\etc
192.168.176.4   aaa.test.com
192.168.176.4   bbb.test.com

2.2 配置nginx.conf

    server {
      listen       192.168.176.4:80;
      server_name aaa.test.com; 

      location / {
          root   /usr/local/nginx/html80;
          index  index.html index.htm;
      }

        }
        
        server {
      listen       192.168.176.4:80;
      server_name  bbb.test.com;    

      location / {
          root   /usr/local/nginx/html8080;
          index  index.html index.htm;
      }

        }
  1. 测试
nginx 虚拟主机、反向代理_第5张图片
多域名-aaa.test.com.png

nginx 虚拟主机、反向代理_第6张图片
多域名-bbb.test.com.png

nginx反向代理

什么是正向代理,什么是反向代理

客户机通过代理服务器去访问Internet,帮助内网client去访问外网中的目的主机(正向代理);反向代理,访问代理服务器,由代理服务器去决定外网的哪个服务器来处理请求(反向代理)。

为什么要正向代理

方便企业、办公管理,禁止内网的访问限制。

为什么要反向代理

负载均衡,解决服务器的压力。正向代理隐藏真实客户端,反向代理隐藏真实服务端,

实验

  1. 需求
    两个tomcat服务通过nginx代理
    aaa.test.com tomcat1 192.168.176.4:8080
    bbb.test.com tomcat2 192.168.176.4:8081
    nginx 192.168.176.4:80
  2. 修改nginx.conf
    upstream tomcat_server1 {
            server 192.168.176.4:8080;
        }

    upstream tomcat_server2 {
            server 192.168.176.4:8081;
        }
    
    server {
      listen       80;
      server_name aaa.test.com; 

      location / {
          proxy_pass http://tomcat_server1;
          index  index.html index.htm;
      }
        }
        
        server {
      listen       80;
      server_name  bbb.test.com;    

      location / {
          proxy_pass http://tomcat_server2;
          index  index.html index.htm;
      }

        }
  1. 测试


    nginx 虚拟主机、反向代理_第7张图片
    nginx反向代理-bbb.test.com.png
nginx 虚拟主机、反向代理_第8张图片
nginx反向代理-aaa.test.com.png

负载均衡

负载均衡 建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。

负载均衡,英文名称为Load Balance,其意思就是分摊到多个操作单元上进行执行,例如Web服务器、FTP服务器、企业关键应用服务器和其它关键任务服务器等,从而共同完成工作任务。

你可能感兴趣的:(nginx 虚拟主机、反向代理)