uodate njs
This commit is contained in:
164
nginx启用njs动态修改请求.md
Normal file
164
nginx启用njs动态修改请求.md
Normal file
@ -0,0 +1,164 @@
|
|||||||
|
### nginx 使用njs模块动态修改请求
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### 安装编译环境
|
||||||
|
|
||||||
|
```bash
|
||||||
|
#GCC
|
||||||
|
apt install -y build-essential
|
||||||
|
|
||||||
|
#安装正则库
|
||||||
|
apt install -y libpcre3 libpcre3-dev
|
||||||
|
|
||||||
|
#安装zlib库
|
||||||
|
apt install -y zlib1g-dev
|
||||||
|
|
||||||
|
#openssl
|
||||||
|
apt install -y openssl libssl-dev
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### 下载源码
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
# 创建源码目录
|
||||||
|
mkdir -p ~/build && cd ~/build
|
||||||
|
|
||||||
|
# 下载最新稳定版 Nginx
|
||||||
|
wget https://nginx.org/download/nginx-1.24.0.tar.gz
|
||||||
|
tar -zxvf nginx-1.24.0.tar.gz
|
||||||
|
|
||||||
|
# 下载 njs 模块
|
||||||
|
wget https://github.com/nginx/njs/archive/refs/tags/0.7.11.tar.gz -O njs-0.7.11.tar.gz
|
||||||
|
tar -zxvf njs-0.7.11.tar.gz
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
##### 编译
|
||||||
|
这里采用最小化 默认配置编译
|
||||||
|
|
||||||
|
```
|
||||||
|
cd ~/build/nginx-1.24.0
|
||||||
|
```
|
||||||
|
|
||||||
|
```
|
||||||
|
./configure \
|
||||||
|
--with-http_ssl_module \
|
||||||
|
--with-http_v2_module \
|
||||||
|
--with-http_realip_module \
|
||||||
|
--with-http_gzip_static_module \
|
||||||
|
--add-module=../njs-0.7.11/nginx
|
||||||
|
|
||||||
|
```
|
||||||
|
```
|
||||||
|
make && make install
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
##### 配置
|
||||||
|
|
||||||
|
编辑conf/nginx.conf
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
worker_processes 1;
|
||||||
|
events {
|
||||||
|
|
||||||
|
worker_connections 1024;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
http {
|
||||||
|
|
||||||
|
include mime.types;
|
||||||
|
default_type application/octet-stream;
|
||||||
|
|
||||||
|
sendfile on;
|
||||||
|
|
||||||
|
keepalive_timeout 65;
|
||||||
|
|
||||||
|
include /usr/local/nginx/conf.d/*.conf;
|
||||||
|
include /usr/local/nginx/sites-enabled/*;
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
创建子配置目录
|
||||||
|
|
||||||
|
```
|
||||||
|
mkdir /usr/local/nginx/{conf.d,sites-enabled}
|
||||||
|
|
||||||
|
|
||||||
|
```
|
||||||
|
编辑子配置
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
js_import /usr/local/nginx/test.js;
|
||||||
|
|
||||||
|
server {
|
||||||
|
listen 80;
|
||||||
|
location / {
|
||||||
|
root html;
|
||||||
|
index index.html index.htm;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /njs {
|
||||||
|
return 200 test.version;
|
||||||
|
}
|
||||||
|
|
||||||
|
location /hello {
|
||||||
|
js_content test.hello;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
error_page 500 502 503 504 /50x.html;
|
||||||
|
location = /50x.html {
|
||||||
|
|
||||||
|
root html;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
编辑js 脚本
|
||||||
|
```
|
||||||
|
function hello(r) {
|
||||||
|
r.return(200, "Hello from njs!\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
export default {hello, version: "1.0.0"};
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
##### 访问测试
|
||||||
|
|
||||||
|
测试配置是否正确
|
||||||
|
|
||||||
|
```
|
||||||
|
sbin/nginx -t
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
启动nginx
|
||||||
|
```
|
||||||
|
sbin/nginx
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
访问测试
|
||||||
|
```
|
||||||
|
[root@cdh-node-3 nginx]# curl 127.0.0.1:80/njs
|
||||||
|
test.version[root@cdh-node-3 nginx]# curl 127.0.0.1:80/hello
|
||||||
|
Hello from njs!
|
||||||
|
|
||||||
|
```
|
||||||
|
|
Reference in New Issue
Block a user