前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >JAVA单服务应用拆分成多个服务的实践(3)--前端的nginx转发

JAVA单服务应用拆分成多个服务的实践(3)--前端的nginx转发

作者头像
星痕
发布2019-03-15 16:21:48
发布2019-03-15 16:21:48
75600
代码可运行
举报
文章被收录于专栏:JAVA后端开发JAVA后端开发
运行总次数:0
代码可运行

上篇文章JAVA单服务应用拆分成多个服务的实践(2)--服务的dubbo化已经将部分模块微服务化了,但我们怎么测试?

我们的目标是支持ALL In One,又要支持多个微服务,但前端怎么处理,前端代码又只有一个版本,但又要怎么面向多个微服务呢。

这样的话,我们只能引入伟大的nginx。

前端只认一个,就使用nginx的转发,将特定的请求转发到微服务的接口里,让前端无感请求到到另一服务中。

nginx的配置如下:

代码语言:javascript
代码运行次数:0
运行
复制
upstream auth {
  server 127.0.0.1:9082;
}
upstream org {
  server 127.0.0.1:9081;
}


upstream log {
  server 127.0.0.1:9083;
}

upstream dict {
  server 127.0.0.1:9084;
}

upstream  form {
  server 127.0.0.1:9085;
}
upstream  workflow {
  server 127.0.0.1:9086;
}

upstream  attachment {
  server 127.0.0.1:9087;
}
server {
  listen       80;
  server_name  localhost;

  #charset koi8-r;
  #access_log  /var/log/nginx/host.access.log  main;

  location / {
    proxy_set_header Host    $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://workflow/oa_workflow/;
  }

  location ^~ /sys/auth {
    proxy_set_header Host    $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://auth/sys_auth/sys/auth;
  }
  location ^~ /sys/org {
    proxy_set_header Host    $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://org/sys_org/sys/org;
  }

  location ^~ /sys/log {
    proxy_set_header Host    $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://log/sys_log/sys/log;
  }

  location ^~ /sys/dict {
    proxy_set_header Host    $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://dict/sys_dict/sys/dict;
  }

  location ^~ /oa/form {
    proxy_set_header Host    $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://form/oa_form/oa/form;
  }
  location ^~ /oa/workflow {
    proxy_set_header Host    $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://workflow/oa_workflow/oa/workflow;
  }
  location ^~ /sys/attachment {
    proxy_set_header Host    $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://attachment/sys_attachment/sys/attachment;
  }


  #error_page  404              /404.html;

  # redirect server error pages to the static page /50x.html
  #
  error_page   500 502 503 504  /50x.html;
  location = /50x.html {
    root   /usr/share/nginx/html;
  }

  # proxy the PHP scripts to Apache listening on 127.0.0.1:80
  #
  #location ~ \.php$ {
  #    proxy_pass   http://127.0.0.1;
  #}

  # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
  #
  #location ~ \.php$ {
  #    root           html;
  #    fastcgi_pass   127.0.0.1:9000;
  #    fastcgi_index  index.php;
  #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
  #    include        fastcgi_params;
  #}

  # deny access to .htaccess files, if Apache's document root
  # concurs with nginx's one
  #
  #location ~ /\.ht {
  #    deny  all;
  #}
}

按上所示,按前端请求的URL地址转发到各个服务中,有一点要特别提到的,关于/的转发,后面一定要有/

如下:

代码语言:javascript
代码运行次数:0
运行
复制
 location / {
    proxy_set_header Host    $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_pass http://workflow/oa_workflow/;
  }

oa_workflow后面一定要有/,这个是默认转发,之前缺了这个,折腾了我很久。

至此,前端调整完成。

【未完待续】

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.03.04 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档