好吧,这次是个大更新。
如果不知道 VeryNginx 是什么,那么请看这里 /t/255284
现在可以直接在 web 界面上配置反向代理,不需要修改 nginx.conf ,不需要重启 nginx 即可生效。并且可以根据复杂的规则选择代理到哪。
可以对满足特定条件的请求,使用不同的 root 路径
可以对满足特定条件的请求进行计数,指定时间内最多只允许指定次数的请求,超出次数则进行拦截。并支持对不同的 IP , URL 进行分别统计
和 Nginx 集成更简单了,并且提供了一键安装脚本
另外这次更新之后,通过 VeryNginx 反向代理某站可能是一种新玩法了。
祝大家玩的开心~
![]() | 1 tSQghkfhTtQt9mtd 2016-05-02 11:34:15 +08:00 via Android ![]() 吼啊,你搞的这个更新啊, Excited! 我已经闷声用了一段时间了!非常不错! |
2 yov123456 2016-05-02 11:36:40 +08:00 via iPhone ![]() 好用! |
![]() | 3 holyghost 2016-05-02 11:36:42 +08:00 @liwanglin12 请问是生产环境吗 |
![]() | 4 tSQghkfhTtQt9mtd 2016-05-02 11:41:33 +08:00 via Android @holyghost 唔。。算是吧。。 毕竟咱只有个人站喽┑( ̄Д  ̄)┍ |
![]() | 5 AlexaZhou OP |
6 Lxxyx 2016-05-02 11:55:34 +08:00 好东西啊,话说我在服务器上开一个应用。地址是 www.xxxx.com:3000 ,那么能通过 VeryNginx 设置反向代理,实现访问 app.xxxx.com 等于访问 www.xxxx.com:3000 的效果吗? |
![]() | 7 AlexaZhou OP ![]() 当然可以 先配置一个 Matcher : host=app.xxxx.com ,用来提取出来所有访问 host 为 **app.xxxx.com** 的请求 然后配置 Proxy Pass 把这个请求转发到 127.0.0.1:3000 就可以了 |
![]() | 8 Lxxyx 2016-05-02 12:02:43 +08:00 ![]() @AlexaZhou 已经实现了,正好用的是你说的方式,这个感觉很好用啊。前端部署 Node.js 应用时,能省很多时间来着。 |
![]() | 10 Lxxyx 2016-05-02 12:45:11 +08:00 ![]() 已经在自己小轮子的 readme 里添加 VeryNginx 为推荐配置了。 https://github.com/Lxxyx/koa2-easy |
![]() | 12 CMGS 2016-05-02 13:23:08 +08:00 = =竟然用上了 balancer 的特性,老实讲 openresty 这个特性我个人是存疑的,因为会完全摈弃了 nginx 自带的几个 balance 算法,比如 last conn 。纯粹用 lua 自行实现的话,最简单的应该就是 random 了,所以我们自己的 elb 想了想去还是用了 tengine 里面包含的 dyups 这个插件,反正也是 lua 兼容。。 |
![]() | 13 AlexaZhou OP balancer 特性是比较新,不过我仔细测试过,应该没啥问题。这个特性主要是提供了一种方法,在请求到来时再计算出要反向代理的后端地址,让动态转发成为了可能。 Balancer 其实就相当于绕开了 Nginx 原来的 balancer 那一套,提供了更多可能性的方法。当然如果使用了 balancer 来动态提供后端地址,负载均衡算法也要重新写一遍。 drupes 提供了一种不重启情况下修改 upstream 的方式,一些情况下会很好用。不过 balancer 特性能做的事情会更多一些。 |
![]() | 14 qcloud 2016-05-02 16:01:44 +08:00 ![]() 已经编译准备提交至 AMH ,多谢这么牛逼的东西 |
![]() | 16 qcloud 2016-05-02 16:18:43 +08:00 |
![]() | 19 kdsex 2016-05-02 16:33:26 +08:00 via iPhone mark 支持 |
![]() | 20 AlexaZhou OP 太感谢支持啦 |
![]() | 22 Syc 2016-05-02 19:09:10 +08:00 via Android 火钳刘明 |
![]() | 23 kn007 2016-05-02 19:26:18 +08:00 支持。 |
24 bazingaterry 2016-05-02 19:27:00 +08:00 via iPhone 支持!迟点的小项目用上试试。 |
![]() | 25 YUX PRO 求个 Docker image 版 |
![]() | 26 qcloud 2016-05-02 19:52:51 +08:00 ![]() |
![]() | 27 hljjhb 2016-05-02 19:54:05 +08:00 你这个项目啊…… excited ! |
![]() | 28 xuhaoyangx 2016-05-02 20:45:39 +08:00 反代基础上加上 sub_filter 就好了 |
![]() | 30 lutla 2016-05-03 00:33:54 +08:00 excited ! |
32 dzxx36gyy 2016-05-03 03:12:41 +08:00 via Android ![]() @AlexaZhou 请问下 lua-resty-core 是怎么装的……我今天试了下是修改 makefile 中 include 为 luajit 目录然后直接 make;make install 了,貌似成功,但是不知道为啥插入 server 段的 conf 之后就 502 了。(我用的是 0.3 还没出 release 之前的版本 master 分之,失败之后换回 0.2.1 就正常了,不知道是不是因为 0.3.0 出 release 之前的版本有问题……还是我 lua-resty-core 安装方式不对 |
33 dzxx36gyy 2016-05-03 03:13:57 +08:00 via Android @qcloud 话说不试试直接基于 nginx-1.10.0 来改么,我自己就是这么干的……修改了下模块的编译参数 |
![]() | 34 qcloud 2016-05-03 10:49:00 +08:00 装个这玩意咋就这么难呢 - - https://gyazo.com/41ee1349e9bf43562b4a2dd6d41e85c7 |
![]() | 36 AlexaZhou OP @qcloud 这是因为编译 Nginx 时,没找到 PCRE 源码, Nginx 用 PCRE 库进行 Rewrite 。。。 如果是 fedora 的话,可以执行: yum install pcre pcre-devel 这样把 PCRE 依赖装上就好啦 如果是其它系统的话,可能包的名字不完全一样,需要自己看一下 Ps :编译 Nginx 还需要 openssl ,如果没有的话可以通过下面的命令安装 yum install openssl-devel 我回头会写一个文档来把这些都列出来 |
![]() | 38 AlexaZhou OP @dzxx36gyy 我尝试了手动使用 lua-nginx-module 来安装,我发现并不是缺少了 lua-resty-core ,而是缺少了 lua-resty-dns 这个组件( 这个组件目前没有包含在 lua-resty-core 中 )。老版本没有问题是因为没有使用到这个库。 另外经过我确认, lua-nginx-module 已经集成了 lua-resty-core 了,所以这个并不需要手动安装。为了解决这个问题,我把 lua-resty-dns 集成到 VeryNginx 中了, wiki 我也更新了。 你更新代码再运行一下应该就可以了。 |
![]() | 40 GPU 2016-05-03 14:32:52 +08:00 一直在用 ,没更新前总感觉有点像花瓶 ,毕竟我用不上 match 这些功能。 |
![]() | 41 lzsadam 2016-05-03 16:16:58 +08:00 安装配置好登录 502 什么问题? 用的是 https://blog.linuxeye.com/31.html 的 OpenResty 看他的源码 openresty.sh 里面只少了一个编译的参数,又加上重新编译了一次 环境应该是 OK 的 |
![]() | 43 lzsadam 2016-05-03 17:33:24 +08:00 @AlexaZhou 404 了,没报错,没改默认目录 就是给了个域名,指向 /opt/verynginx/verynginx/dashboard |
![]() | 44 lzsadam 2016-05-03 17:33:57 +08:00 其余配置也没有任何变动 |
![]() | 45 lzsadam 2016-05-03 17:45:09 +08:00 @AlexaZhou 这是我的 nginx 配置 server { listen 80; server_name verynginx.xxx.com; access_log off; root /opt/verynginx/verynginx/dashboard; include /opt/verynginx/verynginx/nginx_conf/in_server_block.conf; location / { index index.html index.htm; } # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } |
![]() | 46 AlexaZhou OP @lzsadam 呃,好吧,看来是安装的方式不对。 VeryNginx 和 Nginx 集成并不是配置一个虚拟主机就可以的,完整的看一下安装文档吧,上面有怎么用脚本安装,也有怎么使用自己编译 Nginx 的说明。如果不想折腾的话,建议直接通过脚本安装吧 |
![]() | 47 lzsadam 2016-05-03 17:48:06 +08:00 |
![]() | 48 AlexaZhou OP 你上面贴出来的配置只有一个 include ,缺少了其它的。如果是自己编译的 Nginx ,直接使用仓库目录下面的 nginx.conf ,应该就可以跑起来了,可以用那个来 debug 。 不需要配置 /root /opt/verynginx/verynginx/dashboard; 也不需要配置 server name 啥的 |
![]() | 49 AlexaZhou OP |
51 guonning 2016-05-03 21:16:06 +08:00 via iPhone 也是没搞定,期待完整说明 |
![]() | 54 henbf 2016-05-06 16:50:41 +08:00 安装好了之后还要修改一下 nginx.conf 里面的用户,我修改成 www-data 就没问题了 |
![]() | 55 Lxxyx 2016-05-07 00:04:49 +08:00 via Android 开启 gzip 是得自己改 nginx.conf 还是? |
![]() | 58 AlexaZhou OP Matcher 这样写: host ≈ .*abc\.com 反向代理怎么配置可以参考 github 上的在线 demo ,那个 demo 是把所有的请求反向代理到 localhost 的 tornado 上去,参考修改就可以啦 |
60 unkn369 2016-05-27 21:04:41 +08:00 @AlexaZhou 添加 Up Stream 点 save 报错 Ajax request failed [status code = 200] |
![]() | 61 AlexaZhou OP |
62 unkn369 2016-05-30 11:53:20 +08:00 ![]() @AlexaZhou 已经参照这个说明设置不行, Up Stream 和 Proxy Pass 之前已经添加成功两对记录, 现在要添加第三条记录, 保存时一直报错 Ajax request failed [status code = 200] |
![]() | 63 AlexaZhou OP ![]() |
![]() | 64 ZiShuo 2016-06-25 20:04:37 +08:00 via Android @qcloud AMH 官方现在只顾着赚钱了,我很早就不用他们的插件了,话说我已经搞成 AMH 面板的插件了。后台一键安装,一键卸载! |
![]() | 66 xiaoz 2016-10-25 19:26:20 +08:00 我就想问问怎样添加 IP 段? |
![]() | 67 qcloud 2016-12-30 13:03:29 +08:00 老哥问个问题啊,如果网站用了 CDN ,表示设置的规则就不起作用了哇 |
![]() | 68 wzw 2018-05-07 06:52:16 +08:00 via iPhone 还计划更新吗? |