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 使用者手冊