分类 "Server" 下的文章

问题:nginx内置变量有哪些?

解决:

内置变量存放在  ngx_http_core_module 模块中,变量的命名方式和apache 服务器变量是一致的。总而言之,这些变量代表着客户端请求头的内容,例如$http_user_agent, $http_cookie, 等等。下面是nginx支持的所有内置变量:

$arg_name
请求中的的参数名,即“?”后面的arg_name=arg_value形式的arg_name

$args
请求中的参数值

$binary_remote_addr
客户端地址的二进制形式, 固定长度为4个字节

$body_bytes_sent
传输给客户端的字节数,响应头不计算在内;这个变量和Apache的mod_log_config模块中的“%B”参数保持兼容

阅读全文

问题:nginx的日志如何分析?

参考:

https://www.jianshu.com/p/cb77fae262b0

问题:nginx的配置文件中如何写多个条件的if语句?如何写if else

解决:nginx不支持if else,所以只能使用if语句,然后将多条件合并或者使用正则表达式

方法:

set $is_allow_domain '';
if ($host ~* 'xiaomantu.com') {
    set $is_allow_domain 1;
}
if ($host ~* 'mantutu.com') {
    set $is_allow_domain 1;
}
if ($is_allow_domain != 1) {
    return 403;
}

阅读全文

问题:nginx配置文件中listen [::]:80是什么意思?

解决:

listen 80;
监听所有的ipv4的地址

listen [::]:80
监听所有的ipv6的地址

server_name
用来匹配域名域名

注:国内还没有推广ipv6……

参考:

https://segmentfault.com/q/1010000011103271

问题:nginx升级后出错nginx: [emerg] module "/usr/share/nginx/modules/ngx_http_geoip_module.so" version 1014000 instead of 1016001 in /etc/nginx/modules-enabled/50-mod-http-geoip.c
onf:1

解决:卸载旧模块

方法:

sudo apt remove nginx-mod*

参考:

https://www.cnblogs.com/mingetty/p/11125391.html