文档章节

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

余温灬未存
 余温灬未存
发布于 06/22 18:23
字数 715
阅读 64
收藏 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
博文 26
码字总数 10175
作品 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
构建Nginx Cache高性能缓存系统

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

IamOkay
2016/04/17
172
1
Web服务之Nginx浅析

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

hoo_5
2014/05/18
0
0
部署LNMP平台和相关的实验

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

bentian1208
01/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Apache日志不记录访问静态文件,访问日志切割,静态元素过期时间设置

Apache配置不记录访问静态文件的日志 网站大多元素为静态文件,如图片、css、js等,这些元素可以不用记录 vhost原始配置 <VirtualHost *:80> ServerAdmin test@163.com DocumentRoo...

野雪球
42分钟前
1
0
聊聊storm的ICommitterTridentSpout

序 本文主要研究一下storm的ICommitterTridentSpout ICommitterTridentSpout storm-core-1.2.2-sources.jar!/org/apache/storm/trident/spout/ICommitterTridentSpout.java public interface......

go4it
47分钟前
2
0
Ubuntu常用操作

查看端口号 netstat -anp |grep 端口号 查看已使用端口情况 netstat -nultp(此处不用加端口号) netstat -anp |grep 82查看82端口的使用情况 查找被占用的端口: netstat -tln netstat -tl...

hc321
昨天
1
0
网站cdn的静态资源突然访问变的缓慢,问题排查流程

1.首先我查看了一下是否自己的网络问题,通过对比其他资源的访问速度和下载速度,确认不是 2.通过ping 和 tracert 判断cdn域名能否正常访问,(最后回想感觉这一步可以省略,因为每次最终能访...

小海bug
昨天
3
0
Mybatis 学习笔记四 MyBatis-Plus插件

Mybatis 学习笔记四 MyBatis-Plus插件 maven依赖 <dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus</artifactId> <ve......

晨猫
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部