专栏首页技术的专栏Apache reverse proxy
原创

Apache reverse proxy

apache 配置 http 反向代理

先看下module,已经编译的有这些代理相关的,看名字就知道干嘛的。
-rwxrwxrwx 1 root root   122209 Aug  4  2017 mod_proxy.so
-rwxr-xr-x 1 root root    31726 Aug  4  2017 mod_proxy_connect.so
-rwxr-xr-x 1 root root    87170 Aug  4  2017 mod_proxy_ftp.so
-rwxr-xr-x 1 root root    84576 Aug  4  2017 mod_proxy_http.so
先全部加载到apache httpd.conf 里面,如下:
 LoadModule proxy_module       modules/mod_proxy.so       //基本
 LoadModule proxy_http_module  modules/mod_proxy_http.so  //http代理
 LoadModule proxy_connect_module modules/mod_proxy_connect.so     //socket代理

在v.host里面新增配置:

    <IfModule mod_proxy.c>
        ProxyRequests Off
        <Proxy *>
            Order deny,allow
            Allow from all
        </Proxy>

		    ProxyPass /tipnode http://localhost:8081/tipnode
		    ProxyPassReverse /tipnode http://localhost:8081/tipnode    //这个要写。路径映射跟上面一直,防止后台机器和apache之间重定向。
    </IfModule>

访问:curl 'http://127.0.0.1/tipnode/static/js/md5.js?v=1' 。 达到目的。

apache 配置 websocket 反向代理

var ws = new WebSocket("wss://example.com/aaa/bbb");

ws.onopen = function(evt) { 
  console.log("Connection open ..."); 
  ws.send("Hello WebSockets!");
};

ws.onmessage = function(evt) {
  console.log( "Received Message: " + evt.data);
  ws.close();
};

ws.onclose = function(evt) {
  console.log("Connection closed.");
};   

apache access_log如下:

100.1.2.3 - - [14/Dec/2018:15:09:45 +0800] "GET /aaa/bbb HTTP/1.1" 404 205 315 - 615628103 LIBoaYbUsMO0E2NyaC47XmWHvfI7jFZYYzy9KXu1GBg_ o0615628103 LIBoaYbUsMO0E2NyaC47XmWHvfI7jFZYYzy9KXu1GBg_

检查 header 发现,

apache并没有转发 upgrade 头,,,

搜了很多,尝试了很多都不行,发现貌似只有apache2.4以后,才支持 websocket的 proxy,,,涉及到 mod_wstunel 模块。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • The "path" argument must be of type string. Received type undefined

    想了下,应该是 认不出 process.env.VUE_APP_DIR,这个是运行时才有的,eslint可能查不出来,,

    shirishiyue
  • 误修改 libc.so.6 急救

    动了 libc.so.6 或者软连,,,,各种linux命令将无法使用。而且,千万别断掉ssh连接,不然连不上!!!

    shirishiyue
  • ffmpeg mp4解码管道输出的问题

    上面主进程读取的字节数如下:共,2834行,与理想的166帧166行相差甚远,每帧560*320*3=537600也和下面的不一样。

    shirishiyue
  • 2021腾讯犀牛鸟精英科研人才培养计划课题(八)——视觉及多媒体计算

    12月11日,2021年腾讯犀牛鸟精英科研人才培养计划正式对外发布。计划截止申报时间为2021年1月28日24:00。 本年度精英科研人才计划将延续人工智能领...

    腾讯高校合作
  • LeetCode 820. 单词的压缩编码(后缀树)

    例如,如果这个列表是 ["time", "me", "bell"],我们就可以将其表示为 S = "time#bell#" 和 indexes = [0, 2,...

    Michael阿明
  • 除了美团点评合并,国庆长假O2O还发生了什么?

    国庆长假后的第一天,大众点评与美团合并终于尘埃落定。除了这一资本大事件之外,业务层面O2O市场也是风起云涌,七天长假笔者身处广州,逛街、聚餐、看电影较多,明显感...

    罗超频道
  • Go教程:26 Go mod 使用私有仓库构建

    go modules 是 golang 1.11 新加的特性.现在1.12 已经发布了,是时候用起来了.Modules官方定义为:

    mojocn
  • 程序员修仙之路--设计一个实用的线程池

    经过一个多小时的代码排查终于查明了线上程序线程数过多的原因:这是一个接收mq消息的一个服务,程序大体思路是这样的,监听的线程每次收到一条消息,就...

    架构师修行之路
  • 【小家java】BlockingQueue阻塞队列详解以及5大实现(ArrayBlockingQueue、DelayQueue、LinkedBlockingQueue...)

    在新增的Concurrent包中,BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题。通过这些高效并且线程安全的队列类,为我们快速搭...

    YourBatman
  • 腾讯文档品牌设定

    腾讯ISUX

扫码关注云+社区

领取腾讯云代金券