【Nginx三】Nginx作为反向代理服务器

Nginx一个常用的功能是作为代理服务器。代理服务器通常完成如下的功能:

  • 接受客户端请求
  • 将请求转发给被代理的服务器
  • 从被代理的服务器获得响应结果
  • 把响应结果返回给客户端

实例

本文把Nginx配置成一个简单的代理服务器

  • 对于静态的html和图片,直接从Nginx获取
  • 对于动态的页面,例如JSP或者Servlet,Nginx则将请求转发给Resin服务器

在Nginx的主配置文件中,做如下配置:

  

upstream resin {
  server http://localhost:8080
}

server {
    location / {
        proxy_pass http://resin
    }

    location ~ \.(gif|jpg|png)$ {
        root /data/images;
    }
    location ~ \.(html|htm)$ {
        root /data/www;
    }   
}

 说明:

1. upstream指令定义了Nginx要反向代理的服务器。通过简单指令server指定被代理的服务其的hostname和端口。在这个配置中,Resin服务器运行于本机8080端口。如果指定多个server指定,则实现了负载均衡的功能

upstream resin {
  server http://localhost:8080
}
  2. 图片文件的访问直接由Nginx从本地系统读取。下面的配置表明,当客户端访 问以gif,jpg和png文件时,Nginx将直接从本地文件系统的/data/images获取,~\.(gif|jpg|png)是一个正则表达式,其中~表示这是一个正则表达式
    location ~ \.(gif|jpg|png)$ {
        root /data/images;
    }

3. 静态文件html或者htm的访问也直接由Nginx从本地系统获取Nginx从本地文件系统的/data/www目录下获取

    location ~ \.(html|htm)$ {
        root /data/www;
    } 

猜你喜欢

转载自bit1129.iteye.com/blog/2115029