NGINX

nginx自定义变量与内置预定义变量

总览nginx可以使用变量简化配置与提高配置的灵活性,所有的变量值都可以通过这种方式引用: $变量名而nginx中的变量分为两种,自定义变量与内置预定义变量 内置变量声明可以在sever,http,location等标签中使用set命令(非唯一)声明变量,语法如下 set $变量名 变量值注意nginx中的变量必须都以$开头。 可见性nginx的配置文件中所有使用的变量都必须是声明过的,否则nginx会无法启动并打印相关异常日志 nginx变量的一个有趣的特性就是nginx中没一个变量都是全局可见的,而他们又不是全局变量。比如下面这个例子 lo ...

nginx配置负载均衡

nginx负载均衡 负载均衡建立在现有网络结构之上,提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽,增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。 随着网站的发展,服务器压力越来越大,我们可能首先会将数据库,静态文件分离出去。但是随着发展,单独业务API的请求的压力也会变得很大,这时候我们可能需要做负载均衡将一台服务器面临的压力分散到多台服务器上。 nginx 不仅可以作为强大的web服务器,也可以作为反向代理服务器,而且nginx还可以按照调度规则实现动静分离,还可以对后端的服务器 ...

linux下的nginx日志自动备份压缩–日志切割机

linux下的nginx日志自动备份压缩–日志切割机 部署完毕nginx之后,发现自己的/var/log/nginx/*log的日志不会压缩,一直都是一个文本写日志, 时间久了,日志文件内存过于增加,将会导致在日志添加过程效率降低,延长时间。 默认安装的nginx都会每天凌晨自动去备份,但是也有nginx 不会自动备份压缩日志, 于是我们先使用命令看看配置:  cat /etc/logrotate.d/nginx 当然也可以直接修改    vim /etc/logrotate.d/nginx 然后把我下面的命令粘贴进去 /var/log/nginx/*log { crea ...

nginx地址重定向

nginx地址重定向 1、假设要把webroot/static/index.html访问重定向到static/index.html 例如当我们通过浏览器访问http://192.168.11.210/webroot/static/index.html,实际访问的是web目录下面的static/index.html文件,也及去掉了webroot这个目录,使用alias location ^~ /webroot/ {  alias /data/www/web/WebContent/; } 注意:1. 使用alias时,目录名后面一定要加”/”。 2. alias可以指定任何名称。 3. alias在使用正则匹配时,必须捕捉要匹配的内容并在指定的内容处使用。 4. alias只能位于location块中。[/w ...

nginx配置location总结及rewrite规则写法

1. location正则写法 一个示例: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 location = / { # 精确匹配 / ,主机名后面不能带任何字符串 [ configuration A ] } location / { # 因为所有的地址都以 / 开头,所以这条规则将匹配到所有请求 # 但是正则和最长字符串会优先匹配 [ configuration B ] } location /documents/ { # 匹配任何以 /documents/ 开头的地址,匹配符合以后,还要继续往下搜索 # 只有后面的正 ...

Nginx HTTP返回状态码修改

由于在nginx配置中,设置了limit_req的流量限制,导致许多请求返回503错误代码,在限流的条件下,为提高用户体验,希望返回正常Code 200,且返回操作频繁的信息: location  /test {   …   limit_req zone=zone_ip_rm burst=1 nodelay;   error_page 503 =200 /dealwith_503?callback=$arg_callback; } location /dealwith_503{   set $ret_body ‘{“code”: “V00006″,”msg”: “操作太频繁了,请坐下来喝杯茶。”}’;    if ( $arg_callback != “” )     ...

NGINX 配置404错误页面转向

什么是404页面 如果碰巧网站出了问题,或者用户试图访问一个并不存在的页面时,此时服务器会返回代码为404的错误信息,此时对应页面就是404页面。404页面的默认内容和具体的服务器有关。如果后台用的是NGINX服务器,那么404页面的内容则为:404 Not Found 为什么要自定义404页面 在访问时遇到上面这样的404错误页面,我想99%(未经调查,估计数据)的用户会把页面关掉,用户就这样悄悄的流失了。如果此时能有一个漂亮的页面能够引导用户去他想去的地方必然可以留住用户。因此,每一个网站都应该自定义自己的404页面。 NGINX下如何 ...

nginx upstream 一致性哈希模块

nginx upstream 一致性哈希模块 ngx_http_upstream_consistent_hash 模块是一个负载均衡器,使用一个内部一致性hash算法来选择合适的后端节点。与PHP的memcache模块memcache.hash_strategy兼容,这意味着可以使用php-memcache模块将内容存储到memcached集群中,而后通过nginx在集群中找到值。 该模块通过使用客户端信息(如:$ip, $uri, $args等变量)作为参数,使用一致性hash算法将客户端映射到后端节点。 该模块可以根据配置参数采取不同的方式将请求均匀映射到后端机器,比如: consistent_hash $remote_addr:可以根据客户端 ...

nginx负载均衡配置的几种策略

nginx负载均衡配置的几种策略 nginx的upstream目前支持4种方式的分配 1、轮询(默认) 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。 2、weight 指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 例如: upstream bakend { server 192.168.0.14 weight=10; server 192.168.0.15 weight=10; } 2、ip_hash 每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 例如: upstream bakend { ip_hash; server 192.168.0.14 ...

Nginx反向代理技术

nginx反向代理简单配置

server {
listen 80;
server_name www.6myl.com ; #设置成需要绑定的域名
access_log /data/wwwlogs/access_nginx.log combined;
location / {
proxy_pass http://88.88.88.88; #指向对应的主机,最好是用IP
# proxy_connect_timeout 60s;
# proxy_read_timeout 5400s;
# proxy_send_timeout 5400s;
#proxy_set_header host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header User-Agent $http_user_agent;
#proxy_redirect default;
}
}