通过nginx搭建一个简单的代理服务器
来源:互联网 发布:推荐一款手机编程软件 编辑:程序博客网 时间:2024/06/05 11:56
原文:http://nginx.org/en/docs/beginners_guide.html
nginx另一个使用的比较多的情况是作为代理服务器,代理服务器接收请求,然后把请求传递到代理服务器,nginx最后会提取代理服务器的回复,并把这些回复发送给客户端。
我们将配置一个基本的代理服务器,图片文件的请求在本地目录中服务,其他的所有请求发送到代理服务器。这个示例中,两个服务都被定义在同一个nginx实例中。
首先,定义用来代理的服务器需要添加一个或者更多个server block到nginx配置文件中,内容如下:
server {
listen 8080;
root /data/up1;
location / {
}
}
这个服务监听8080端口(先前的,listen指令没有指定端口,是因为默认的端口是标注端口80被使用),映射所有的请求到本地文件系统的/data/up1目录。创建/data/up1目录,放进index.html文件。注意:root指令是放在server里的。这个root指令是在匹配到用来服务请求的location block中没有指定自己的root指令时。
接下来,使用先前的配置作为服务配置文件,然后修改它成为一个代理服务器配置。放置proxy_pass指令代表代理协议,proxy_pass的参数代表代理服务器的名字和端口号(这里是,http://localhost:8080):
server { location / { proxy_pass http://localhost:8080; } location /images/ { root /data; }}
我们将修改第二个location block,当前映射的请求使用/images/前缀去比较,然后到/data/images目录下找文件。为了通过典型的文件后缀进行图片请求的匹配,我们这样修改:
location ~ \.(gif|jpg|png)$ {
root /data/images;
}
参数是一个正则表达式,匹配所有以.gif, .jpg, 或者 .png结尾的URI。一个正则表达式应该由~开头。图片请求就会映射到/data/images目录下。
当nginx选择一个location块去服务一个请求,nginx首先检测出location指令所指的前缀,并且会记住匹配到的最长前缀的location,然后检查正则表达式。如果匹配到了一个正则表达式,nginx就使用这个正则表达式所在的location,否则,使用先前记住的那个最长字串的location。
代理服务器的最终配置结果:
server {
location / {
proxy_pass http://localhost:8080/;
}
location ~ \.(gif|jpg|png)$ {
root /data/images;
}
}
这个服务器将会过滤以.gif, .jpg, or .png 结尾的请求,并映射他们到/data/images目录下,其他所有请求都传送到上面配置的代理服务器进行处理。
关于代理链接的更多配置可以查看这里
http://nginx.org/en/docs/http/ngx_http_proxy_module.html
- 通过nginx搭建一个简单的代理服务器
- 用nginx搭建一个简单的代理服务器
- nginx代理服务器的搭建
- 使用Nginx搭建代理服务器通过https访问 tomcat下的webapps内容
- Nginx搭建反向代理服务器
- Nginx 搭建反向代理服务器
- 搭建一个大型网站架构的实验环境(Nginx代理服务器篇)
- 用vlc搭建简单的流媒体代理服务器
- 搭建简单的nginx
- 一个简单的python代理服务器源码分析
- 编写了一个简单的http代理服务器
- java实现一个简单的代理服务器
- 使用nginx搭建http代理服务器
- 使用Nginx搭建Http代理服务器
- 使用nginx搭建http代理服务器
- 使用nginx搭建http代理服务器
- 使用nginx搭建http代理服务器
- Nginx搭建HTTP正向代理服务器
- 简单直接的无限极分类(基于thinkphp)
- 主板获取UUID
- duilib任务栏小窗口图标设置
- metasploit终端命令大全 MSF
- workspace中改派时选择的参与者为中文名字会出现乱码的情况
- 通过nginx搭建一个简单的代理服务器
- oracle简单用户创建
- 异步加载google-analytics,用户看不到loading等待效果
- android获取图片尺寸的两种方法以及bitmap的缩放
- jquery 使用鼠标移入移出
- Mybatis XML映射文件
- 微服务概述
- 前端正则校验
- Tensorflow学习:Session会话控制