回答
收藏
分享
举报
NGINX变量求值
提问于2021-03-27 21:09

浏览 4k

NGINX中的某些指令正在使用ngx_http_compile_complex_value(&ccv)来编译变量,并使用ngx_http_complex_value()来在运行时获取指令参数的原始值。 同样,其他一些指令也使用ngx_http_script_compile(&sc)和ngx_http_script_run()实现相同的目标。

请问这两者之间的区别是什么?

已修改于2023-02-27 02:11



写下您的回答
发表回答
全部回答(2)

按点赞数排序

按时间排序

自问自答了。看了一下代码,感觉ngx_http_compile_complex_value和ngx_http_script_compile是两套实现,前者对后者进行了封装,使用起来应该更方便。

比如,如果有一个指令需要支持复杂变量,使用ngx_http_compile_complex_value只需要定义一个ngx_http_complex_value_t变量就可以。但是使用ngx_http_script_compile需要定义flushes,lengths,variables一系列数组。。


赞同

1

回复举报

回答于2021-04-01 21:32



回复皮皮鲁
回复

有同类疑问。。。

赞同

0

回复举报

回答于2021-03-30 10:10



回复阿尔巴
回复
提问者
皮皮鲁
这家伙很懒还未留下介绍~
85
文章
2
问答
45
粉丝
相关问答

你采用的是什么负载均衡策略?

点赞 0
浏览 4.2k

看下error.log日志,先确认下是哪个URL引发了重定向。

点赞 0
浏览 6.2k

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log warn;
pid /var/run/nginx.pid;

worker_rlimit_nofile 900000;

events {
use epoll;
multi_accept on;
worker_connections 900000;
}

http {

include /etc/nginx/conf.d/*.conf;

server {
client_body_buffer_size 10M;
client_max_body_size 10M;
listen 80;
server_name XXXX;
charset utf-8;
access_log main;
location / {
add_header Access-Control-Allow-Credentials 'true';
add_header Access-Control-Allow-Methods 'GET,PUT,POST,OPTIONS,DELETE';
add_header Access-Control-Allow-Headers '*';
proxy_pass http://192.168.10.25:8200;
proxy_set_header Host $http_host;
#proxy_set_header Host $host;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /static {
access_log off;
expires 30d;
alias /app/static;
}
}

server {
listen 443 ssl;
server_name XXXX;
client_body_buffer_size 10M;
client_max_body_size 10M;
ssl_certificate /etc/nginx/cert/xxxx.pem;
ssl_certificate_key /etc/nginx/cert/xxxx.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
add_header Access-Control-Allow-Methods 'GET,POST,OPTIONS';
add_header Access-Control-Allow-Headers '*';
add_header Access-Control-Allow-Credentials 'true';
proxy_pass http://192.168.10.25:8200;
proxy_set_header Host $http_host;
#proxy_set_header Host $host;
proxy_ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
location /static {
access_log off;
expires 30d;
alias /app/static;
}
}
}

点赞 0
浏览 7.8k