nginx反向代理性能不错,今天由于公司要用到,经过测试,可以完成任务
1.对于反向代理时,把请求发送到其他机器,类似如下
http {
........
upstream test {
server 192.168.190.20 ;
server uninx:/tmp/nginx;
server test.example.com;
}
server {
listen 80;
server_name 192.168.190.1;
location /abc/def/ghi {
proxy_pass http://test;
}
}
以上为常规配置方式,即我们把人家请求中带有 /abc/def/ghi的链接反向代理到test中,再看下面一组
2,如果反向代理时,出现server中的机器是一个域名,而且是带有二级目录,如果 "server 192.168.190.13/abc/def/ghi ;"这样,上面的方式就会报错,可以这样来
server {
listen 80;
server_name 192.168.190.1;
location /abc/def/ghi {
proxy_pass 192.168.190.13/abc/def/ghi ;
}
http标签里就不用添加upstream了,把要反向代理里的http的链接地址直接放在location里的proxy_pass
3.通常来说,反向代理都是用最上面的方法,我也尝试过,把人家访问的url进行重写,就有了下面的方法
server {
listen 80;
server_name 192.168.190.1;
location /abc/def/ghi {
rewrite ^(.*)$ 192.168.190.13/abc/def/ghi permanent ;
}
虽然2和3的结果是一样的,一个是反向代理,一个是重写,但效果怎样,没尝试过,以前用的是方法1,突然要反向代理到域名的多级目录下,居然不会了,但想到重写,后来同事说可以用方法2,尝试过也确实是行的,效率哪个高,不知道了。