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