一、前言
最近项目需要使用代理技术进行访问加速和url重写,经过多方比较选择了俄罗斯人的nginx,据说并发处理很好,是个比较牛x的代理服务器。
为了解决这一问题考虑使用nginx的rewrite功能,将上面的页面代码改写为:
root
html;
index
index.html index.htm;
二、问题
服务器192.168.1.1上的tomcat下部署了一个网站,网站中某些页面引用了外网的资源,比如test.html中有如下代码:
<html>
<head>
</head>
<body>
<image src="http://www.baidu.com/img/baidu_sylogo1.gif"/>
</body>
</html>
在服务器上直接访问http://localhost:8080/test.html会看到百度的logo,但是由于客户机不允许上外网,通过客户机访问http://192.168.1.1:8080/test.html的时候,图片会显示不出来。
三、方案
在nginx中配置.gif结尾的请求重写url到百度的域名之下,这样客户机发起内网请求的图片,由nginx取回一个外网的图片返回过去,可以解决客户机不能访问外网的问题。
四、nginx安装
使用了windows的版本,下载后解压即可使用,结构如图
![nginx代理加速初步研究 nginx代理加速初步研究](https://i-blog.csdnimg.cn/blog_migrate/a4c26d1e5885305701be709a3d33442f.gif)
nginx.exe就是启动文件了,logs是日志目录如果启动发生异常可以去看,html是web服务的根目录,可以直接用nginx作为web服务器,把html文件放进去就行。conf是配置文件目录,也是最关键的一个目录。
![nginx代理加速初步研究 nginx代理加速初步研究](https://i-blog.csdnimg.cn/blog_migrate/a4c26d1e5885305701be709a3d33442f.gif)
nginx.exe就是启动文件了,logs是日志目录如果启动发生异常可以去看,html是web服务的根目录,可以直接用nginx作为web服务器,把html文件放进去就行。conf是配置文件目录,也是最关键的一个目录。
五、nginx配置
打开nginx.conf,修改或增加内容,首先增加转发到tomcat的配置
upstream tomcat_server{
server 127.0.0.1:8080;
}
然后进行转发,修改location /的配置,增加一行proxy_pass http://tomcat_server;
location / {
#所有根目录请求都转向到
proxy_pass http://tomcat_server;
}
增加url重写规则,可利用正则表达式将所有对于图片、样式表、js的请求都转到外网,也可以指定转发
location ~* ^.+\.(jpg|jpeg|gif|png|swf|rar|zip|css|js)$ {
rewrite ^/images/(.*) http://www.baidu.com/img/$1 last;
}
六、nginx启动、查看、停止
cmd命令模式下执行
启动
D:\>cd nginx-0.9.7
D:\nginx-0.9.7>start nginx.exe
查看
D:\nginx-0.9.7>tasklist /fi "imagename eq nginx.exe"
映像名称
PID 会话名
会话#
内存使用
========================= ======== ================ =========== ============
nginx.exe
5464 Console
0
3,816 K
nginx.exe
4920 Console
0
4,124 K
停止
D:\nginx-0.9.7>nginx -s stop
具体参考