NGINX Proxy Pass 无法正常工作

NGINX Proxy Pass 无法正常工作

我尝试将 NGINX 设置为反向代理以路由到不同的服务器,但遇到了一些问题。

因此,我基本上想在不同的 URL 路径下使用主机名“webserver”访问服务器上的不同 LXD 容器。当我访问http://web 服务器/service1/some/path我希望它将请求传递给容器,以便容器接收请求http://service1/some/路径

这是我的配置文件(我用“service1”替换了容器和端口的名称):

server {
  listen 80;

  server_name webserver;

  location /service1/ {
    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-Proto $scheme;

    #rewrite /service1/(.*) /$1 break;
    proxy_pass http://service1;
    sub_filter "http://service1/" "http://webserver/service1/";
    sub_filter_once off;
    sub_filter_types *;

    proxy_redirect http://service1/ http://$host/$uri/;
  }
}

我尝试跟随一开始我尝试了答案,成功了一半。我能够访问容器中运行的服务实例,但资产丢失,我得到了 404。我尝试了各种配置选项的组合,但无法让它工作。

任何帮助都将不胜感激。谢谢。

预计到达时间:NGINX 在尝试通过以下方式访问网站时会记录“http://web 服务器/grafana“(grafana 是我作为测试托管的服务,也是我想要访问的服务):

192.168.188.52 - - [04/Sep/2019:15:48:49 +0000] "GET /grafana/ HTTP/1.1" 404 6293 "-" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"

192.168.188.52 - - [04/Sep/2019:15:48:50 +0000] "GET /public/img/grafana_icon.svg HTTP/1.1" 404 152 "http://webserver/grafana/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"
192.168.188.52 - - [04/Sep/2019:15:48:50 +0000] "GET /public/img/icn-dashboard-tiny.svg HTTP/1.1" 404 152 "http://webserver/grafana/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"
192.168.188.52 - - [04/Sep/2019:15:48:50 +0000] "GET /public/img/graph404.svg HTTP/1.1" 404 152 "http://webserver/grafana/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"
192.168.188.52 - - [04/Sep/2019:15:48:50 +0000] "GET /public/fonts/fontawesome-webfont.woff2?v=4.7.0 HTTP/1.1" 404 178 "http://webserver/public/build/grafana.dark.75ccb77dbb4b5e3c9285.css" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"
192.168.188.52 - - [04/Sep/2019:15:48:50 +0000] "GET /public/fonts/fontawesome-webfont.woff?v=4.7.0 HTTP/1.1" 404 178 "http://webserver/public/build/grafana.dark.75ccb77dbb4b5e3c9285.css" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"
192.168.188.52 - - [04/Sep/2019:15:48:50 +0000] "GET /public/fonts/fontawesome-webfont.ttf?v=4.7.0 HTTP/1.1" 404 152 "http://webserver/public/build/grafana.dark.75ccb77dbb4b5e3c9285.css" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"

请求的 URL 是错误的,不是我想要实现的,但我不知道如何修复它。

答案1

我认为你的阻止似乎是错误的,正常的代理密码应该有效

server {
    proxy_read_timeout 3600;
    listen 80;
    #listen 443 ssl http2;
    <server_name domain.local;>


            location /app1 {

                    proxy_set_header        X-Cache-Status $upstream_cache_status;
                    proxy_cache_valid       200 1w;
                    proxy_pass              <http://10.10.200.4; >                                                      
                    proxy_set_header        Host $http_host;
                    proxy_buffers           16 8m;
                    proxy_buffer_size       2m;
                    gzip on;
                    gzip_vary          on;
                    gzip_comp_level    9;
                    gzip_proxied       any;}} 

您的应用应该可以通过 domain.local/app1 访问

相关内容