如何proxy_pass到子路径

时间:2020-02-18 12:18:19

标签: nginx

我有一个带有两个容器的主机:

  • nginx
  • check_mk

可以通过http://172.17.0.2:5000/cmk访问check_mk界面 我在nginx中设置了proxy_pass规则:

server {                                                                  
    listen 80;                                                            
    server_name cmk.domain.com;                                     
    location / {                                                          
        proxy_pass         http://172.17.0.2:5000;                        
        proxy_redirect     off;                                           
        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_set_header   X-Forwarded-Host $server_name;                 
    }                                                                     
}                                      

当我用cmk.domain.com/cmk在端口80上触摸Nginx时,它会起作用。

我想要的是,当点击server_name cmk.domain.com时,/cmk将被自动添加。 我尝试做proxy_pass http://172.17.0.2:5000/cmk;,但随后出现页面未找到错误。 我在这里想念什么?

1 个答案:

答案 0 :(得分:1)

尝试一下

server {
    listen 80;
    server_name cmk.domain.com;

    location /cmk {
        proxy_pass         http://172.17.0.2:5000;
        proxy_redirect     off;
        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_set_header   X-Forwarded-Host $server_name;
    }

    location / {
        return 301 http://cmk.domain.com/cmk$request_uri;
    }
}