dubbo-nginx-module-plus
配置二进制安装包仓库
首先我们需要配置二进制安装包的仓库,按照以下命令进行配置。(命令中的 CLIENT_TOKEN
需要替换成订阅邮件中的有效 Token)
针对 Ubuntu/Debian/CentOS/Rocky/Red Hat Enterprise Linux/Fedora OS/Alibaba Cloud Linux/Tencent Linux 这些系统:
curl -o get-xray-priv-lib-repo.sh https://pkg2.openresty.com/scripts/get-xray-priv-lib-repo.sh
sudo bash get-xray-priv-lib-repo.sh -l dubbo-nginx-module-plus -t CLIENT_TOKEN
针对 Alpine 操作系统:
curl -o get-xray-priv-lib-repo.sh https://pkg2.openresty.com/scripts/get-xray-priv-lib-repo.sh
sudo sh get-xray-priv-lib-repo.sh -l dubbo-nginx-module-plus -t CLIENT_TOKEN
安装
针对 OpenResty 1.25.3.x
对于使用 yum
包管理器的操作系统,执行以下命令进行私有库的安装。
sudo yum install --disablerepo="*" --enablerepo=dubbo-nginx-module-plus -y dubbo-nginx-module-plus-1.25.3
对于使用 dnf
包管理器的操作系统,执行以下命令进行私有库的安装。
sudo dnf install --disablerepo="*" --enablerepo=dubbo-nginx-module-plus -y dubbo-nginx-module-plus-1.25.3
对于使用 apt
包管理器的操作系统,执行以下命令进行私有库的安装。
sudo apt-get install -y dubbo-nginx-module-plus-1.25.3
对于 alpine
操作系统,执行以下命令进行私有库的安装。
sudo apk add dubbo-nginx-module-plus-1.25.3
重新编译 OpenResty
给 OpenResty 打补丁
下载 OpenResty 源码包并解压,然后在 OpenResty 源码包的 nginx-NGINX_VER
目录下执行以下命令打补丁。
假设补丁文件 ngx-multi-upstream-module-NGINX_VER.patch
在当前目录下。
举例如下:
topdir=$(pwd)
wget https://openresty.org/download/openresty-1.25.3.2.tar.gz
tar -xzvf openresty-1.25.3.2.tar.gz
cd openresty-1.25.3.2/bundle/nginx-1.25.3
cat $topdir/ngx-multi-upstream-module-1.25.3.patch | patch -p1
cd $topdir
tar -czf openresty-1.25.3.2.tar.gz openresty-1.25.3.2
重新编译
根据原来的编译方式重新编译 OpenResty。
Nginx 配置举例
load_module /usr/local/openresty/nginx/modules/ngx_http_multi_upstream_module.so;
load_module /usr/local/openresty/nginx/modules/ngx_stream_multi_upstream_module.so;
load_module /usr/local/openresty/nginx/modules/ngx_http_dubbo_module.so;
http {
access_log logs/access.log;
default_type text/plain;
keepalive_timeout 68000ms;
upstream dubbo_backend {
multi 1;
server 127.0.0.1:20880;
}
server {
listen 1984;
server_name 'localhost';
client_max_body_size 30M;
location /test {
dubbo_pass_all_headers on;
dubbo_pass_set args $args;
dubbo_pass_set uri $uri;
dubbo_pass_set method $request_method;
dubbo_pass org.apache.dubbo.samples.tengine.DemoService 0.0.0 tengineDubbo dubbo_backend;
}
}
}
dubbo 的配置指令
请参考文档 dubbo 用户手册