最近项目上线,做的是重构的项目,需要把老接口的流量切到新接口上,客户端一直访问的是老接口的url,没有办法改变,如果要做处理,就可以使用c 通达信行情接口,nginx把要访问的url跳转到新的接口上。
比如:老接口要访问http://gateway.io/getUserById,请求从客户端传出来,到c 通达信行情接口,nginx的时候,如果不做处理,nginx就会访问对应机器。如果不想这样,nginx可以做url跳转,就可以通过配置来访问其他的url。
Nginx是什么?
如果没有接触过nginx的同学,可以看看小编以前写的博客。
【Nginx】什么是Nginx?为什么使用Nginx?
简单的说nginx有两个作用:
反向代理,流量跳转做http服务器,做静态文件服务器
这里我们用到的就是反向代理的功能。
如何配置指定接口跳转?
Nginx在/etc/nginx/cond路径下有nginx.conf文件:
server {
listen 80;
listen [::]:80;
server_name api.ares.com;
access_log /opt/nginxlogs/api.ares.com/access_log main;
error_log /opt/nginxlogs/api.ares.com/error_log error;
include /etc/nginx/conf.d/proxy-api-test7;
location / {
proxy_pass http://www.baidu.com;
}
}
可以通过include文件全路径,来指定文件,就不用把这个conf文件写的很长。可以把所有的跳转抽出来,方便修改,方便管理。而且方便管理。
比如,我们配置了多个server,每个server监听的是不同的域名。抽出文件后,就可以清楚的把每个域名的跳转指定到固定的文件中。
jumpInfo文件,配置具体接口跳转信息
location ~* ^/Login/Record {
rewrite ^(.*)$ /fee-system/Login/record break;
proxy_pass http://gateway.ares.com;
proxy_set_header Host gateway.ares.com;
}
location ~* ^/User/status {
rewrite ^(.*)$ /user-system/user/status break;
proxy_pass http://gateway.ares.com;
proxy_set_header Host gateway.ares.com;
}
location ~* ^/Pay$ {
rewrite ^(.*)$ /fee-system/pay break;
proxy_pass http://gateway.ares.com;
proxy_set_header Host gateway.ares.com;
}
这个文件就是include/etc/nginx/cond/jumpInfo。配置的指定全路径的跳转信息文件。其实简单的也就是通过localtion来进行跳转的。
http://apares.com/Login/Record是访问的原路径http://apares.com/fee-system/Login/record是访问的新路径
注意
/Pay$
这里要说明一下这个,$表示是终止符,到这里就结束。否则如果还有配置/Pay/AAA的这种,如果在后面,就会跳转到/Pay指定的url了。
这样就完成了跳转
^(.*)$
匹配所有的路径映射到入口文件
^是正则表达式匹配字符串开始位置
$是正则表达式匹配字符串结束位置
小结
加油,重温一下。要保持热度。坚持就是胜利。
文章为作者独立观点,不代表股票交易接口观点