nginx根据域名转发

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx根据域名转发相关的知识,希望对你有一定的参考价值。

参考技术A 如今docker使得本地部署服务越来越容易了,例如本人就使用了docker部署了gitlab-ce服务。但是对局域网的其他用户希望是通过gitlab.nathan.com进行访问,这就意味着gitlab服务需要部署在80端口上。但是其他服务也需要这样,即也需要80端口。多个服务不可能同时暂用同一个端口,但是可以通过nginx转发。比如A服务是7080端口,对应的域名是a.center.com;B服务对应的端口是6080端口,域名是b.center.com。nginx更具域名进行转发到不同端口上。
ngxin配置:

备注: 现在很多路由器都支持修改hosts,比如小米路由器、华硕<梅林>路由器等。

前后端分离项目之------nginx路由转发

需求:前后段分离的项目里面,一套系统有N套api,一套api就是一个独立的站点,每个端口都需要开通外网,否则前端页面无法访问站点。有没有一种方法,让服务器只开一个外网端口?

解决思路:

  1. 规范api路由结构。暂且定义路由结构格式为:域名(IP)+端口+/api/controller/function。端口使用同一个,那么域名(IP)+端口是固定的,在nginx里面可以根据/api/controller来匹配路由
  • 接口1:   /api/sso/x1     /api/sso/x2  /api/sso/x3
  • 接口2:/api/open/x1  /api/open/x2 /api/open/x3
  • ..........

          2.配置nginx转发路由

         

         配置解析举例:

         location ~ /api/openmt {
         proxy_pass         http://localhost:8101;
        意思是将http请求中url包含  /api/openm 的全部转发到  http://localhost:8101
        例如:http://xxxx/api/openmt/list1,        http://xxxx/api/openmt/list2 都转发到  http://localhost:8101处理

        所有api站点共用一个端口

以上是关于nginx根据域名转发的主要内容,如果未能解决你的问题,请参考以下文章

nginx 二级域名转发

nginx相同域名下不同路径的转发

nginx做域名转发和uri转发

nginx 多域名转发

nginx 配置域名转发

nginx域名转发