反向代理
nginx 可以根据服务器传来的请求,转发到其他端口。是的客户端只有知道反向代理的 IP 地址,而不知道在代理服务器后面你的服务集群的存在。
反向代理可以解决前后端跨域问题。比如我启动了前台服务和后台服务,域名都是本机回环 IP。前台端口为 2000
,后台端口为 3000
。
我可以使用 nginx 的反向代理功能,来将 127.0.0.1:80
访问 127.0.0.1:2000
,将 127.0.0.1:80/api
访问 127.0.0.1:3000
。
配置文件如下:
server {
listen 80;
server_name 127.0.0.1;
location / {
proxy_pass http://127.0.0.1:2000;
}
location /api/ {
proxy_pass http://127.0.0.1:3000/;
}
}
这里需要注意的是在配置后台反向代理时
http://127.0.0.1:3000/
后面一定要加上/
,或者当访问127.0.0.1:80/api
时,访问的地址为127.0.0.1:3000/api
而不是127.0.0.1:3000/
。