鍍金池/ 問(wèn)答/PHP  Linux/ nginx使用路徑重定向至服務(wù)

nginx使用路徑重定向至服務(wù)

現(xiàn)在有域名www.services.com, 對(duì)應(yīng)的服務(wù)器上部署了三個(gè)服務(wù)ServiceA, ServiceB, ServiceC,
每個(gè)服務(wù)的訪問(wèn)方法為訪問(wèn)對(duì)應(yīng)路徑的index.html文件即可, 如ServiceA服務(wù)的前端路徑為Path/to/A, ServiceB服務(wù)的前端路徑為pATh/tO/B

然后我想要實(shí)現(xiàn)通過(guò)http://www.services.com/ServiceA 來(lái)訪問(wèn)Path/to/A/index.html, 于是我嘗試了這樣子的配置:

http {
  listen 80;
  server_name www.services.com;

  # nginx默認(rèn)配置
  location /  {
    root html;
    index index.html index.htm
  }

  # ServiceA配置
  locaton ^~ /ServiceA {
    root Path/to/A
    index.index.html index.htm
  }
}

而最后實(shí)際上會(huì)請(qǐng)求訪問(wèn)到/Path/to/A/ServiceA/或是/usr/share/nginx/html/ServiceA/, 于是返回404報(bào)錯(cuò).

請(qǐng)問(wèn)為什么會(huì)出現(xiàn)這樣的路由規(guī)則? 如何實(shí)現(xiàn)期望效果?

回答
編輯回答
痞性

可以使用 try files 解決

# ServiceA配置 
locaton ^~ /ServiceA { 
    root Path/to/A ;
    #index.index.html index.htm 
    try_files $url  index.html;
}
2018年9月17日 10:12
編輯回答
離夢(mèng)
  index index.html index.htm;
  locaton /ServiceA/ {
    alias Path/to/A/;
  }
  locaton /ServiceB/ {
    alias Path/to/B/;
  }
  locaton /ServiceC/ {
    alias Path/to/C/;
  }
2018年5月16日 00:02