文档章节

Nginx服务架构初探(四):nginx服务器的rewrite功能

余温灬未存
 余温灬未存
发布于 06/22 18:23
字数 715
阅读 63
收藏 0
nginx服务器的rewrite功能
    1.nginx后端服务器组的配置  
        1>upstream name {…}  name是给服务器组限的组名
        2>server address [parameters]; address为服务器地址 parameters为配置更多的属性 如:
            weight=4 为组内服务器配置权重
            max_fails=4 设置一个请求失败的次数
            fail_timeout=60s 请求组内服务器的时间
            backup 将某台组内服务器标记为备用服务器
            down 将某台组内服务器标记为永久的无效状态
        3>示例: upstream ives_backend{
                    server backend1.example.com weight=5;
                    server 127.0.0.1:8080 max_fails=3 fail_timeout=60s;
                    server unix:/tmp/backend3;  //用于进程间通信的socket
                }
        4>ip_hash  用于会话保持功能  根据ip分配给固定的服务器处理请求  否则为轮流响应
        5>keepalive 100 用于控制服务器每一个工作进程允许该服务器组保持的空闲网络连接数的上限值
        6>least_conn; 用于配置服务器使用负载均衡策略为网络连接分配组内的服务器 优先选择连接最少的那台服务器
    2.rewrite配置
        1>rewrite regex replacement [flag]
            regex 为正则表达式 
            replacement 匹配成功后用于替换URI中被截取内容的字符串
            flag last(终止在本location块中处理收到的uri) break(将重写的uri继续处理)    
                  redirect(将重写的uri返回给客户端 302) parmanent(将重写的uri返回客户端 301)
            例: location / {
                rewrite ^(/myweb/*)/media/(.*)\..*$ $1/mp3/$2.mp3 last;
                rewrite ^(/myweb/*)/audio/(.*)\..*$ $1/mp3/$2.ra last;//上一行成功 此处不会执行
                }
        2>rewrite_log on|off 是否开启重写日志的输出功能  默认为off
        3>set key value 设置一个新变量 key为以$开头的变量 value为值
        4>uninitialized_variable_warn on|off 变量未初始化时 是否记录警告日志
        5>例:server {
                listen 80;
                server_name jump.hongyanjie.com;
                rewrite ^/ http://www.hongyanjie.com
            }
            server{
                listen 80;
                server_name jump.hongyanjie.com jump.hongyanjie.info;
                if ($host ~ hongyanjie\.info){
                    rewrite ^(.*) http://jump.hongyanjie.com$1 permanent;
                }
            }
            server{
                listen 80;
                server_name jump1.hongyanjie.com jump2.hongyanjie.com
                if ( $http_host ~* ^(.*)\.hongyanjie\.com){
                    rewrite ^(.*) http://jump.hongyanjie.com$1;
                    break;
                }
            }
        6>为目录自动添加 /
            server{
                listen 80;
                server_name www.hongyanjie.com
                location ^~ /bbs{
                    if(-d $request_filename){
                        rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
                    }
                }
            }
        7>目录合并  访问web.com/view-12-3-4.htm 时会被转到web.com/12/3/4.html
            server{
                listen 80;
                server_name www.hongyanjie.com;
                location ^~ /view {
                    rewrite ^/view-([0-9]+)-([0-9]+)-([0-9]+)\.htm$ /view/$1/$2/$3.html last;
                }
            }
        8>防盗链  可根据referer头域来判断  但是此值可以被更改 因此不能完全阻止
            如果referer头域中没有符合valid_referer指令配置的值 $valid_referer将被赋值为1
            配置valid_referers none|blocked|server_name|string …
            server{
                listen 80;
                server_name www.web.com
                location ~* ^.+\.(gif|jpg|png|swf|rar|zip)${
                    valid_referers none blocked server_names *.web.com;
                    if($valid_referer){
                        rewrite ^/ http://www.web.com/images/forbidden.png;
                    }
                }
            }

© 著作权归作者所有

共有 人打赏支持
余温灬未存
粉丝 0
博文 25
码字总数 9943
作品 0
海淀
程序员
Linux Web运维(Nginx)

一:Nginx是什么? Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。使用Nginx的网站有Github,Ted,Instagram,Zappos,百度,新浪,网易等。Nginx之所以受欢迎的原因...

李可爱34
2016/04/27
79
0
实验——实现基于LNMP的电子商务平台架构

一、 环境准备: centos系统、nginx源码、 yum源(安装mysql与php-fpm) 二、 安装步骤: 1、先确定一下防火墙都清空了 2、安装nginx(推荐源码编译安装) 3、yum方式安装mariadb、mariadb-s...

Ty_endless
2017/11/04
0
0
Web服务之Nginx浅析

一、Nginx 简介: nginx [engine x]是Igor Sysoev编写的一个高性能的HTTP和反向代理服务器,另外它也可以作为邮件代理服务器。 在大多数情况下都是用来做静态web服务器和反向代理服务器,在作...

hoo_5
2014/05/18
0
0
构建Nginx Cache高性能缓存系统

随着Nginx web服务器得到越来越多的SA的青睐,Nginx的cache功能已经具备Squid所拥有的Web缓存加速功能、清除指定URL缓存的功能。 而在性能上,Nginx对多核CPU的利用,胜过Squid不少。另外,在...

IamOkay
2016/04/17
172
1
部署LNMP平台和相关的实验

该实验分为四个部分,实验一为搭建LNMP平台,实验二为测试能否解析php的文件 和连接数据库的效果,实验三为实现地址重写的功能,实验四为不同的浏览器,给出不同样式的页面 实验一:部署LNMP环...

bentian1208
01/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

分布式锁的那点事

在多线程并发的情况下,要保证一个代码块在同一时间只能由一个线程访问,可以用锁来保证,比如java的synchronized语法以及ReentrantLock类等等。这样子可以保证JVM进程内的多个线程同步执行。...

无语年华
18分钟前
2
0
apahce启用http2

需要前置条件传送门 其实前置做完了,h2是很简单的事 1.apache启用http2_module 2.打开apche的配置文件,写上 Protocols h2 http/1.1 3.重启apache,打开浏览器看看吧...

gcudwork
34分钟前
1
0
redis-string

set key value 设置值 set命令有以下选项: ex senconds :为健设置秒级过期时间 px millisencondes :为健设置毫秒级过期时间 nx :健不存在时候,可以设置成功,用于添加 xx : 与nx相反,不...

拐美人
40分钟前
2
0
正弦 余弦 角度 用于画时钟

<html> <head> <title>时钟</title> </head> <style> #canvas{ background: #1977ca } </style>......

一箭落旄头
56分钟前
4
0
驰狼课堂

http://www.chilangedu.com/

求是科技
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部