A、書き換えジャンプ達成
サービス契約は、モジュール機能
のURLパス・リソース・ロケータを
- nginxの----支持体は、条件付きサポート場合は、URL書き換えではなく、他の
- ジャンプ----サイクルを10回、500の以上のnginxの戻りエラーコードまで行うことができます
- URL書き換えを達成し、リダイレクト正規表現とフラグと組み合わせて、----グローバル変数、または変数の使用nginxの自身のセットを書き換える
2を、書き換えの使用シナリオ - 書き換えマッチジャンプを使用します
- 試合後のグローバル変数のジャンプを使用している場合
- 次に使用位置マッチングをジャンプ
サーバ{}、{}もし、上1.rewriteを位置{} 段落
グローバル変数の一致を使用している場合、リバースプロキシproxy_pass使用2.ドメイン名またはパラメータストリング
3、nginxの正規表現を
一般的な正規表現のメタ文字
4、書き換えコマンドの
場所カテゴリ
の正規表現マッチングの共通
5、場所の優先順位
優先順位の順に: - タイプ=
- ^〜型の式
- 正規表現(と)タイプ
- 従来の文字列マッチング型のプレス前方一致
- 一般的な一致は(/)は、他の一致した場合、すべての要求がに一致している
(最高から最低まで)優先順位の場所のルール
1.特定のファイルと一致します - 位置=フルパス
- 完全なパスの場所^〜
- 場所〜*フルパス
- 完全なパスの場所〜
- 完全なパスの場所
- LOCATION /
2.ファイルディレクトリへのアクセスと一致しません - 場所=ディレクトリ
- 場所^〜ディレクトリ
- ディレクトリの場所〜
- 場所〜*ディレクトリ
- 場所のディレクトリ
-
場所/
VIアプリケーションシナリオのテスト
会社、古いドメインwww.domain.comによるビジネスニーズが変化したと、古いドメイン名、新しいドメイン名に古いドメインからのジャンプを廃止し、そのパラメータを維持することはできません、www.newdomain.comのではなく、新しいドメイン名を使用する必要があります不変[root@localhost bin]# rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm 获取http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm 警告:/var/tmp/rpm-tmp.IHyTHc: 头V4 RSA/SHA1 Signature, 密钥 ID 7bd9bf62: NOKEY 准备中... ################################# [100%] 正在升级/安装... 1:nginx-release-centos-7-0.el7.ngx ################################# [100%] [root@localhost bin]# yum install nginx -y
[root@localhost ~]# mkdir /abc [root@localhost ~]# mount.cifs //192.168.56.1 /mnt Password for root@//192.168.254.10/linuxs: [root@localhost ~]# cd /abc/LNMP-C7/LNMP-C7/ [root@localhost LNMP-C7]# ls Discuz_X3.4_SC_UTF8.zip mysql-boost-5.7.20.tar.gz ncurses-5.6.tar.gz nginx-1.12.2.tar.gz php-5.6.11.tar.bz2 php-7.1.10.tar.bz2 php-7.1.20.tar.bz2 php-7.1.20.tar.gz zend-loader-php5.6-linux-x86_64_update1.tar.gz [root@localhost LNMP-C7]# tar -zxvf nginx-1.12.2.tar.gz -C /opt
[root@localhost LNMP-C7]# useradd -M -s /sbin/nologin nginx [root@localhost LNMP-C7]# cd /opt/nginx-1.12.2/ [root@localhost nginx-1.12.2]# ls auto CHANGES.ru configure html man src CHANGES conf contrib LICENSE README [root@localhost nginx-1.12.2]# yum install gcc gcc-c++ pcre pcre-devel make zlib-devel -y [root@localhost nginx-1.12.2]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module [root@localhost nginx-1.12.2]# make && make install
[root@localhost conf]# vim nginx.conf 37 server_name www.accp.com; 41 access_log logs/www.accp.com/access.log main;
[root@localhost conf]# yum install bind -y [root@localhost conf]# vim /etc/named.conf 13 listen-on port 53 { any; }; 21 allow-query { any; }; [root@localhost conf]# vim /etc/named.rfc1912.zones 25 zone "accp.com" IN { 26 type master; 27 file "accp.com.zone"; 28 allow-update { none; }; 29 }; [root@localhost conf]# cd /var/named/ [root@localhost named]# ls data named.ca named.localhost slaves dynamic named.empty named.loopback [root@localhost named]# cp -p named.localhost accp.com.zone [root@localhost named]# vim accp.com.zone www IN A 192.168.247.202 [root@localhost named]# systemctl start named [root@localhost named]# systemctl stop firewalld.service [root@localhost named]# setenforce 0 [root@localhost named]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ [root@localhost named]# cd /usr/local/nginx/ [root@localhost nginx]# ls conf html logs sbin [root@localhost nginx]# cd logs/ [root@localhost logs]# mkdir www.accp.com [root@localhost logs]# ls error.log www.accp.com [root@localhost logs]# nginx [root@localhost logs]# netstat -natp | grep 80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 6
オープンwin10クライアントは、configure DNSサーバ、およびドメイン名の使用。
[root@localhost logs]# vim /usr/local/nginx/conf/nginx.conf location / { #域名重定向 ‘ if ($host = 'www.accp.com') { ’ rewrite ^/(.*)$ http://www.kgc.com/$1 permanent; ‘ } root /html; index index.html index.htm; }
[root@localhost logs]# vim /etc/named.rfc1912.zones zone "kgc.com" IN { type master; file "kgc.com.zone"; allow-update { none; }; }; [root@localhost logs]# cd /var/named/ [root@localhost named]# ls accp.com.zone dynamic named.empty named.loopback data named.ca named.localhost slaves [root@localhost named]# cp -p accp.com.zone kgc.com.zone
[root@localhost named]# systemctl restart named [root@localhost named]# killall -1 nginx
[root@localhost html]# vim /usr/local/nginx/conf/nginx.conf 37 server_name bbs.accp.com; 42 location /post { 43 rewrite (.+) http://www.accp.com/bbs$1 permanent; 44 }
[root@localhost html]# cd - /var/named [root@localhost named]# vim accp.com.zone [root@localhost named]# cat accp.com.zone $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1 bbs IN A 192.168.247.202
[root@localhost named]# killall -3 nginx [root@localhost named]# nginx [root@localhost named]# systemctl restart named
ジャンプIPベースのクライアントアクセス[root@localhost named]# vim /usr/local/nginx/conf/nginx.conf 42 #设置是否合法的IP标志 43 set $rewrite true; 44 #判断是否为合法IP,是否是允许的IP 45 if ($remote_addr = "192.168.247.139"){ 46 set $rewrite false; 47 } 48 #不被允许的IP进行判断,打上标记 49 if ($rewrite = true){ 50 rewrite (.+) /maintenance.html; 51 } 52 #匹配标记进行跳转站点 53 location = /maintenance.html { 54 root html; 55 }
[root@localhost named]# cd /usr/local/nginx/html/ [root@localhost html]# ls 50x.html index.html [root@localhost html]# vim maintenance.html [root@localhost html]# killall -3 nginx [root@localhost html]# nginx
パラメータマッチングジャンプに基づく---ホームページへジャンプ[root@localhost named]# vim /usr/local/nginx/conf/nginx.conf 37 server_name www.accp.com; 42 if ($request_uri ~ ^/100-(100|200)-(\d+).html$){ 43 rewrite (.*) http://www.accp.com permanent; 44 } [root@localhost named]# vim accp.com.zone [root@localhost named]# cat accp.com.zone $TTL 1D @ IN SOA @ rname.invalid. ( 0 ; serial 1D ; refresh 1H ; retry 1W ; expire 3H ) ; minimum NS @ A 127.0.0.1 www IN A 192.168.247.202
[root@localhost named]# systemctl restart named [root@localhost named]# killall -3 nginx [root@localhost named]# nginx
ディレクトリジャンプのすべてのPHPファイルの場合[root@localhost named]# vim /usr/local/nginx/conf/nginx.conf 42 location ~* /upload/.*\.php$ { 43 rewrite (.+) http://www.accp.com permanent; 44 }
[root@localhost named]# nginx -t nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful [root@localhost named]# killall -3 nginx [root@localhost named]# nginx
最も一般的なURL要求にジャンプ - ホームへジャンプ[root@localhost named]# vim /usr/local/nginx/conf/nginx.conf 42 location ~* ^/abc/123.html { 43 rewrite (.+) http://www.accp.com permanent; 44 }
最も一般的なURL要求にジャンプ - ホームへジャンプ[root@localhost named]# vim /usr/local/nginx/conf/nginx.conf 42 location ~* ^/abc/123.html { 43 rewrite (.+) http://www.accp.com permanent; 44 }
[root@localhost named]# killall -3 nginx [root@localhost named]# nginx