【问题标题】:Nginx layer 7 request routingNginx 七层请求路由
【发布时间】:2020-04-16 16:58:13
【问题描述】:

所以我正在尝试根据使用 docker 和 Nginx 的请求路由到 3 个不同的容器。 容器具有相同的 IP 和不同的端口。这是 Nginx 配置:

upstream helpdesk{
    server 10.10.10.20:8089;
}

upstream dsi_helpdesk{
    server 10.10.10.20:8088;
}

upstream drh_helpdesk{
    server 10.10.10.20:8090;
}

server {

    listen       80;
    server_name  myticket.grgsh.com;


    location / {
        proxy_set_header Host $host;
        proxy_pass http://helpdesk;
    }

    location /dsi {
        proxy_set_header Host $host;
        proxy_pass http://dsi_helpdesk;
    }

    location /drh {
        proxy_set_header Host $host;
        proxy_pass http://drh_helpdesk;
    }

}

当我导航到 myticket.grgsh.com 时,服务器将我重定向到上游帮助台,但是当我导航到 myticket.grgsh.com/dsi 或 myticket.grgsh.com/drh 时,我收到错误:

未找到 在此服务器上未找到请求的 URL。

谁能帮助解决这个问题?谢谢。

【问题讨论】:

  • 上游名称是helpdesk,但在您的proxy_pass 中,您将其传递给all_helpdesk。这是发布问题时的拼写错误还是您真的有这个配置?
  • @Yogeshwar 发布问题时出错,很抱歉我已修复。
  • 您是否在 nginx 日志中看到对 myticket.grgsh.com/dsi 或 myticket.grgsh.com/drh 的请求?我的意思是您是否检查了 nginx 是否正在抛出 404 或者它是上游服务器?因为 nginx 配置对我来说看起来不错。
  • @Yogeshwar 这里是码头工人日志10.1.12.130 - - [26/Dec/2019:13:57:05 +0000] "GET /drh HTTP/1.1" 404 196 "http://myticket.grgsh.com/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:69.0) Gecko/20100101 Firefox/69.0" "-
  • 日志不是很清楚,请通过修改日志格式在日志中添加更多细节。试试这个:stackoverflow.com/a/26299679/2313097

标签: docker nginx


【解决方案1】:

解决办法是:

这个

location /dsi {
    proxy_set_header Host $host;
    proxy_pass http://dsi_helpdesk;
}

需要这样

location /dsi/ {
    proxy_set_header Host $host;
    proxy_pass http://dsi_helpdesk/;
}

【讨论】:

    【解决方案2】:

    解决第一个问题后,我又得到了一个,所以我重定向到myticket.grgsh.com/dsi,我得到的网页是without css or icons,这是日志输出:

     [29/Dec/2019:14:03:56 +0000] 10.1.12.142 - - - myticket.grgsh.com myticket.grgsh.com to:10.10.10.51:80: GET /dsi HTTP/1.1 200 upstream_response_time0.028 msec 1577628236.505 request_time 0.033
        10.1.12.142 - - [29/Dec/2019:14:03:56 +0000] "GET /css/styles.css HTTP/1.1" 404 196 "http://myticket.grgsh.com/dsi" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)" "-"
        10.1.12.142 - - [29/Dec/2019:14:03:56 +0000] "GET /css/palettes/flood.min.css?v=9.3.1 HTTP/1.1" 404 196 "http://myticket.grgsh.com/dsi" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)" "-"
        10.1.12.142 - - [29/Dec/2019:14:03:56 +0000] "GET /lib/font-awesome-4.7.0/css/font-awesome.min.css?v=9.3.1 HTTP/1.1" 404 196 "http://myticket.grgsh.com/dsi" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)" "-"
        10.1.12.142 - - [29/Dec/2019:14:03:56 +0000] "GET /lib/jqueryplugins/select2/js/select2.full.js?v=9.3.1 HTTP/1.1" 404 196 "http://myticket.grgsh.com/dsi" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)" "-"
        10.1.12.142 - - [29/Dec/2019:14:03:56 +0000] "GET /lib/jquery/js/jquery-1.10.2.min.js?v=9.3.1 HTTP/1.1" 404 196 "http://myticket.grgsh.com/dsi" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)" "-"
        10.1.12.142 - - [29/Dec/2019:14:03:56 +0000] "GET /lib/jqueryplugins/select2/css/select2.min.css?v=9.3.1 HTTP/1.1" 404 196 "http://myticket.grgsh.com/dsi" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)" "-"
        10.1.12.142 - - [29/Dec/2019:14:03:56 +0000] "GET /js/common.min.js?v=9.3.1 HTTP/1.1" 404 196 "http://myticket.grgsh.com/dsi" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)" "-"
        10.1.12.142 - - [29/Dec/2019:14:03:56 +0000] "GET /front/cron.php HTTP/1.1" 404 196 "http://myticket.grgsh.com/dsi" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)" "-"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-02-21
      • 1970-01-01
      • 2013-02-16
      • 2018-02-23
      • 1970-01-01
      • 2013-04-09
      • 2018-12-28
      • 2018-05-26
      相关资源
      最近更新 更多