好吧,这次是个大更新。
如果不知道 VeryNginx 是什么,那么请看这里 /t/255284
现在可以直接在 web 界面上配置反向代理,不需要修改 nginx.conf ,不需要重启 nginx 即可生效。并且可以根据复杂的规则选择代理到哪。
可以对满足特定条件的请求,使用不同的 root 路径
可以对满足特定条件的请求进行计数,指定时间内最多只允许指定次数的请求,超出次数则进行拦截。并支持对不同的 IP , URL 进行分别统计
和 Nginx 集成更简单了,并且提供了一键安装脚本
另外这次更新之后,通过 VeryNginx 反向代理某站可能是一种新玩法了。
祝大家玩的开心~
1
tSQghkfhTtQt9mtd 2016-05-02 11:34:15 +08:00 via Android 1
吼啊,你搞的这个更新啊, Excited! 我已经闷声用了一段时间了!非常不错!
|
2
yov123456 2016-05-02 11:36:40 +08:00 via iPhone 1
好用!
|
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 1
@AlexaZhou 已经实现了,正好用的是你说的方式,这个感觉很好用啊。前端部署 Node.js 应用时,能省很多时间来着。
|
10
Lxxyx 2016-05-02 12:45:11 +08:00 1
已经在自己小轮子的 readme 里添加 VeryNginx 为推荐配置了。
https://github.com/Lxxyx/koa2-easy |
12
CMGS 2016-05-02 13:23:08 +08:00 1
= =竟然用上了 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 1
已经编译准备提交至 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 2016-05-02 19:44:52 +08:00
求个 Docker image 版
|
26
qcloud 2016-05-02 19:52:51 +08:00 1
|
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 1
@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 1
@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
还计划更新吗?
|