反向代理

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
配置文件如下:

  1. server {
  2. listen 80;
  3. server_name 127.0.0.1;
  4. location / {
  5. proxy_pass http://127.0.0.1:2000;
  6. }
  7. location /api/ {
  8. proxy_pass http://127.0.0.1:3000/;
  9. }
  10. }

这里需要注意的是在配置后台反向代理时 http://127.0.0.1:3000/ 后面一定要加上 /,或者当访问 127.0.0.1:80/api 时,访问的地址为 127.0.0.1:3000/api 而不是 127.0.0.1:3000/