分类 "Server" 下的文章

问题: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

问题:405是什么错误,404什么错误,500什么错误,304什么情况,405 Method Not Allowed
解决:了解http的一些状态情况
一、2xx  成功
200  正常;请求已完成。
201  正常;紧接 POST 命令。
202  正常;已接受用于处理,但处理尚未完成。
203  正常;部分信息 — 返回的信息只是一部分。
204  正常;无响应 — 已接收请求,但不存在要回送的信息。
二、3xx  重定向
301  已移动 — 请求的数据具有新的位置且更改是永久的。
302  已找到 — 请求的数据临时具有不同 URI。
303  请参阅其它 — 可在另一 URI 下找到对请求的响应,且应使用 GET 方法检索此响应。
304  未修改 — 未按预期修改文档。
305  使用代理 — 必须通过位置字段中提供的代理来访问请求的资源。
306  未使用 — 不再使用;保留此代码以便将来使用。
三、4xx  客户机中出现的错误
400  错误请求 — 请求中有语法问题,或不能满足请求。
401  未授权 — 未授权客户机访问数据。
402  需要付款 — 表示计费系统已有效。
403  禁止 — 即使有授权也不需要访问。
404  找不到 — 服务器找不到给定的资源;文档不存在。
405 - 资源被禁止
406 - 无法接收
407  代理认证请求 — 客户机首先必须使用代理认证自身。
410 - 永远不可用
412 - 先决条件失败
414 - 请求 - URI 太长
415  介质类型不受支持 — 服务器拒绝服务请求,因为不支持请求实体的格式。
四、5xx  服务器中出现的错误
500  内部错误 — 因为意外情况,服务器不能完成请求。
501  未执行 — 服务器不支持请求的工具。
502  错误网关 — 服务器接收到来自上游服务器的无效响应。
503  无法获得服务 — 由于临时过载或维护,服务器无法处理请求。