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)是一个正则表达式,其中~表示这是一个正则表达式