文档章节

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

余温灬未存
 余温灬未存
发布于 06/22 18:23
字数 715
阅读 61
收藏 0
点赞 0
评论 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
博文 21
码字总数 9218
作品 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
Nginx系列-6.配置Nginx的HTTPS

Nginx系列-6.配置Nginx的HTTPS 目录 - Nginx系列 Nginx系列-1.Linux下安装Nginx Nginx系列-2.配置LNMP(Linux、Nginx、MySQL、PHP)架构 Nginx系列-3.配置Nginx虚拟主机 Nginx系列-4.Nginx日...

ngle
06/09
0
0
从运行原理及使用场景看Apache和Nginx

本文只作为了解Apache和Nginx知识的一个梳理,想详细了解的请阅读文末参考链接中的博文。 Web服务器 Web服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。 应用层使...

waveer
2016/10/31
7
0
nginx替换apache的实施方案三

第4章 Nginx替换apache 4.1 构架112服务器 4.1.1 装系统及简单优化 1.装系统步骤 2. 优化开机启动服务 4.1.2 nginx+phpcgi的搭建 4.1.3 nginx和cgi的优化 4.1.4 内核的优化 4.1.5 程序的同步...

wbf961127
2017/11/07
0
0
从运行原理及使用场景看Apache和Nginx

一,Web服务器 Web服务器也称为WWW(WORLD WIDE WEB)服务器,主要功能是提供网上信息浏览服务。 应用层使用HTTP协议。 HTML文档格式。 浏览器统一资源定位器(URL)。 Web服务器常常以B/S(Bro...

leejia1989
2014/07/07
0
0
nginx从入门到实践

花了一周时间了解nginx相关的知识,主要内容有: 基础知识: Nginx的快速部署安装、模块、基础配置语法,Nginx的日志输出、Nginx默认配置模块、Nginx做为http代理服务,介绍代理服务的类型,正...

898009427
2017/12/06
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Java 之 枚举

Java 中声明的枚举类,均是 java.lang.Enum 类的子类,Enun 类中的常用方法有: name() 返回枚举对象名称 ordinal() 返回枚举对象下标 valueOf(Class enumType, String name) 转换枚举对象 ...

绝世武神
9分钟前
0
0
使用爬虫实现代理IP池之放弃篇

啥叫代理IP以及代理IP池 概念上的东西网上搜索一下就好了,这里简单科普一下(大部分会读这篇文章的人,基本是不需要我来科普的),白话说就是能联网并提供代理访问互联网的服务器,它提供的...

一别丶经年
25分钟前
0
0
rabbitmq学习记录(五)交换机Exchange-fanout

之前学习的都是一条消息发给一个消费者,下面开始记录如何把一条信息发给多个消费者 这边我们用到了交换机Exchange 交换机模式:fanout 模式特点:生产者把消息发送给Exchange之后,Exchang...

人觉非常君
47分钟前
0
0
sqoop导入数据到Base并同步hive与impala

使用Sqoop从MySQL导入数据到Hive和HBase 及近期感悟 基础环境 Sqool和Hive、HBase简介 Sqoop Hive HBase 测试Sqoop 使用Sqoop从MySQL导入数据到Hive 使用复杂SQL 调整Hive数据类型 不断更新 ...

hblt-j
52分钟前
0
0
Dart 服务端开发 文件上传

clent端使用angular组件 upload_component.html form id="myForm" method="POST" enctype="multipart/form-data"> <input type="file" name="fileData"> <!-- file field --></form>......

scooplol
52分钟前
0
0
apache和tomcat同时开启,乱码问题

tomcat和apache同时开启,会走apache的转发,执行的是AJP/1.3协议。所以在tomcat的配置文件server中, <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" useBodyEncodingForU......

Kefy
今天
0
0
使用ssh-keygen和ssh-copy-id三步实现SSH无密码登录 和ssh常用命令

ssh-keygen 产生公钥与私钥对. ssh-copy-id 将本机的公钥复制到远程机器的authorized_keys文件中,ssh-copy-id也能让你有到远程机器的home, ~./ssh , 和 ~/.ssh/authorized_keys的权利 第一步...

xtof
今天
0
0
orcale 查询表结构

SELECT t.table_name, t.colUMN_NAME, t.DATA_TYPE || '(' || t.DATA_LENGTH || ')', t1.COMMENTS FROM User_Tab_Cols t, User_Col_Comments t1WHERE t.table_name......

wertwang
今天
0
0
华为nova3超级慢动作酷玩抖音,没有办法我就是这么强大

华为nova3超级慢动作酷玩抖音,没有办法我就是这么强大!华为nova3超级慢动作酷玩抖音,没有办法我就是这么强大! 在华为最新发布的nova 3手机上,抖音通过华为himedia SDK集成了60fps、超级...

华为终端开放实验室
今天
0
0
多 SSH Key 实现同一台服务器部署多 Git 仓库

本文以以下需求为背景,介绍详细的做法: 需在同一台服务器同时部署两个不同的 Github 仓库(对 Bitbucket 等 git 服务同样适用) root 用户可在远程登录 SSH 后附上预期的 SSH Key 进行 gi...

yeahlife
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部