首页 > 系统相关 >dremio nginx proxy 问题简单说明二

dremio nginx proxy 问题简单说明二

时间:2024-05-26 17:34:25浏览次数:18  
标签:dremio http header nginx html proxy location

以前说过基于修改dremio 服务的静态index.html 实际上还有一种方法就是直接通过nginx 的sub_filter 指令,以下是简单说明

配置

核心是nginx ,后端服务就不需要修改了

  • nginx.conf

核心是sub_filter 的匹配处理

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    gzip  on;
    real_ip_header     X-Forwarded-For;
    real_ip_recursive on;
    server {
        listen       80;
        server_name  localhost;
        charset utf-8;
        root /usr/share/nginx/html;
        location = /vlake/ {
           sub_filter '</body>' '<script > history.pushState({}, "default", "/");</script></body>';
           sub_filter_types text/html; 
           sub_filter_once off;
           proxy_set_header Accept-Encoding '';
           proxy_pass http://dremio:9047/index.html;
        }
         location = /vlake/index.html {
          sub_filter '</body>' '<script > history.pushState({}, "default", "/");</script></body>';
           sub_filter_types text/html; 
           sub_filter_once off;
           proxy_set_header Accept-Encoding '';
            proxy_pass http://dremio:9047;
        }
        location @dremio {
            proxy_http_version 1.1;
            rewrite ^/vlake/(.*)$ /$1 break;
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection upgrade;
            proxy_pass http://dremio:9047;
        }
        location /login {
            proxy_pass http://dremio:9047/index.html;
        }
        location  ^~ /static/ {
             proxy_pass http://dremio:9047;
        }
        location /manifest.webmanifest  {
            return 200;
        }
        location /apiv2/ {
            proxy_http_version 1.1;
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection upgrade;
            proxy_pass http://dremio:9047/apiv2/;
        }
        location /api/v3/ {
            proxy_http_version 1.1;
            proxy_set_header X-Forwarded-For $remote_addr;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection upgrade;
            proxy_pass http://dremio:9047/api/v3/;
        }
 
        location ^~ /jobs/ {
            proxy_pass http://dremio:9047/index.html;
        }
 
        # location ^~ /vlake/new_query/ {
        #     rewrite ^/(.*)/$ /vlake/$1/index.html break;
        #     proxy_pass http://dremio:9047;
        # }
 
        # location ^~ /new_query/ {
        #     rewrite ^/(.*)/$ /vlake/$1/index.html break;
        #     proxy_pass http://dremio:9047;
        # }
        location ^~ /vs/ {
            proxy_pass http://dremio:9047/vs/;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

说明

以上是一个简单说明,处理上基于nginx 的sub_filter 处理简单快速,配置我已经push github 了可以参考

参考资料

https://github.com/rongfengliang/nginx-dremio-proxy/tree/dev
https://nginx.org/en/docs/http/ngx_http_sub_module.html

标签:dremio,http,header,nginx,html,proxy,location
From: https://www.cnblogs.com/rongfengliang/p/18212267

相关文章

  • Nginx R31 doc-11-Compression and Decompression 压缩与解压缩
    前言大家好,我是老马。很高兴遇到你。我们为java开发者实现了java版本的nginxhttps://github.com/houbb/nginx4j如果你想知道servlet如何处理的,可以参考我的另一个项目:手写从零实现简易版tomcatminicat压缩与解压缩压缩服务器响应,或者对不支持压缩的客户端进行......
  • nginx-端口复用,不同域名映射到不同服务中
    我使用docker容器运行NGINX,并将主机的80端口映射到容器的8080端口中。[root@harbor20240526]#dockerpsCONTAINERIDIMAGECOMMANDCREATEDSTATUSPORTS......
  • 容器配置nginx
    1.docker命令#启动容器dockerrun-it--namenginx-test-p8888:80--mounttype=bind,source=/data/volumes/nginx,target=/data--mounttype=bind,source=/data/volumes/nginx/nginx.conf,target=/etc/nginx/nginx.confnginx:latest#命令行进入容器dockerexec-......
  • 从零手写实现 nginx-01-为什么不能有 java 版本的 nginx?
    前言大家好,我是老马。很高兴遇到你。作为一个java开发者,工作中一直在使用nginx。却发现一直停留在使用层面,无法深入理解。有一天我在想,为什么不能有一个java版本的nginx呢?一者是理解nginx的设计灵魂,再者java开发者用java语言的服务器不是更加自然吗。于是动手开......
  • Linux-Nginx安装及启动命令
    目录1、安装依赖2、nginx安装3、防火墙打开80端口4、nginx启动停止1、安装依赖yum-yinstallgcc-c++ yum-yinstallpcrepcre-devel yum-yinstallzlibzlib-devel yum-yinstallopensslopenssl—devel2、nginx安装mkdir/usr/local/src/nginxcd......
  • Nginx简介详解
    0-nginx三大功能1.web服务器作为web服务器,Nginx是一个轻量级,而且能够处理的并发量更大2.反向代理服务器正向代理隐藏真实客户端,反向代理隐藏真实服务端3.邮件服务器也可用充当一个IMAP/POP3/SMTP服务器1-nginx特点(1)跨平台:Nginx可以在大多数UnixlikeOS编译运行,而且也......
  • 记录Nginx开机自动启动(Windows环境)
    参考:Nginx配置及开机自启动(Windows环境)_nginx开机自启动windows-CSDN博客winsw下载地址Indexofreleases/com/sun/winsw/winsw或者参考Nginx安装、配置以及开机启动(Win10篇)_win10怎么查看nginx启动成功-CSDN博客......
  • vite config proxy 代理 外网接口 配置单写法
    viteconfigproxy代理外网接口配置单写法之前一个小坑target:'http://yourdomain/',之前域名后面我写子目录了,导致一直不好使。在这之前,用nginx配置,没配置出来~,所以搞成vite配置走起。。vite.config.jsserver:{proxy:{'/ci':{target:'http:/......
  • dremio nginx proxy 问题简单说明
    dremioui处理上部分直接依赖了locationpathname对于使用默认的/的proxy是没有问题的,但是很多时候我们需要自己配置一个proxypath,以下简单说明下问题,以及解决方法环境准备docker-composeversion:"3"services:nginx:image:nginx:alpine......
  • Nginx的配置文件
    Nginx的配置文件是其核心组件之一,它决定了Nginx服务器的行为和功能。以下是关于Nginx配置文件的重点解说:1.配置文件的位置和名称Nginx的配置文件通常命名为nginx.conf,并且位于Nginx安装目录的conf或config文件夹中。在Linux系统上,常见的位置是/etc/nginx/nginx.conf或/usr/l......