• nginx rewrite标签配置以及用户认证配置


    一、nginx  rewrite标签

    rewrite 实现URL的改写主要是实现伪静态

    1、  rewrite指令语法

    指令语法:rewrite regex replacement[flag]

    默认值:none

    应用位置:server,location,if

    rewrite是实现URL重写的关键指令,根据regex(正则表达式)部分内容,重定向到replacement部分内容,结尾是flag标记,下面是一个简单的URL Rewrite跳转

    Rewrite ^/(.*)http://www.etiantian.org/$1 permanent

    上述rewrite【指令说明:】

    rewrite为固定关键字,表示开启一条rewrite匹配规则,regex部分

    这是一个正则表达式

    【匹配所有】,匹配成功后跳转到http://www.etiantian.org/$1,这是取前面regex部分()里的内容,结尾permanent;表示永久301重定向标记

     

     

    在以上flag标记中,last和break用来实现URL重写,浏览器地址URL地址不变,但是在服务器端访问的程序及路径发生变化,redirect和permanent用来实现URL跳转,浏览器地址栏会显示跳转后的URL地址

    last和break标记的实现功能类似但是二者之间有细微的差别,使用alias指令的时候必须用last标记,使用proxy_pass指令的时候要使用break标记,last标记在本条rewrite规则执行完毕之后,会对其所在的server{...}标签重新发起请求,而break标记则在本条规则匹配完成后终止匹配,不再匹配后面的规则

    1、配置301跳转的方法如下:
    
    [root@A conf]# vim extra/www.conf 
        server {
            listen       80;
            server_name  www.cnblogs.c;    --》老域名
             rewrite ^(.*) http://www.cnblogs.co/$1 permanent;
        }
        server {
            listen       80;
            server_name  www.cnblogs.co;     --》新域名
            location / {
                 root html/www;
                 index index.html index.htm;
            }
            access_log logs/access_www.log main;
    }别名状态是200,rewrite状态码是301
    区别:
    用别名,效率高 200 但是看不到改过的域名
    跳转,可以看到新的域名,但是这是新的跳转,对于pv来说是两次请求
    
    
    2、检查语法,然后重启nginx
    3、用curl -I 查看是否为301 
    [root@oldboy extra]# curl -I www.cnblogs.c
    HTTP/1.1 301 Moved Permanently
    Server: nginx/1.8.1
    Date: Sun, 05 Mar 2017 03:35:20 GMT
    Content-Type: text/html
    Content-Length: 184
    Connection: keep-alive
    Location: http://www.cnblogs.co//
    
    [root@oldboy extra]# curl -s -o /dev/null -I -w "%{http_code}
    " http://www.cnblogs.c
    301
    301跳转步骤

    NginxRewrite的应用

    1、    可以调整用户浏览的URL ,看起来更规范,合乎开发及产品的需求
    (这个rewrite主要是开发的事情,没有要求就不做301跳转)
    2、    为了让搜索引擎收录网站内容及用户体验更好,企业会将动摇URL地址伪装成静态地址提供服务
    3、    网站更换新域名后,让旧的域名的访问跳转到新的域名商上,例如:让京东的360buy变成了jd.com
    4、    根据特殊变量、目录、客户端的信息进行URL跳转等
    View Code

    二、nginx访问认证

     可以在官网找到auth basic_module

    Http状态码301和302的区别
    1、什么是301重定向?
    301重定向/跳转一般,表示本网页永久性转移到另一个地址。
    301是永久性转移(Permanently Moved),SEO常用的招式,会把旧页面的PR等信息转移到新页面;
    2、什么是302重定向?
    302重定向表示临时性转移(Temporarily Moved ),当一个网页URL需要短期变化时使用。
    3、301重定向与302重定向的区别
    301重定向是永久的重定向,搜索引擎在抓取新内容的同时也将旧的网址替换为重定向之后的网址。
    302重定向是临时的重定向,搜索引擎会抓取新的内容而保留旧的网址。因为服务器返回302代码,搜索引擎认为新的网址只是暂时的
    301和302的区别

    打开一个网站需要用户名密码,例如企业网站后台、Mysql客户端phpmyaadmin 

    auth_basic      提示
    语法  auth_basic string|off
    默认值 auth_basic off
    使用位置http,server,location,limit_except
    
    auth_basic_user_file         密码文件
    语法 auth_basic_user_file file
    默认值-
    使用位置:http,server,location,limit_except
    用户认证需要注意参数
    auth_basic_user_file 参数后接认证密码文件,格式为
    
    #comment
    name1:password1
    name2:password2:comment
    name3:password3
    auth_basic_user_file 参数后接认证密码文件,格式为

    1、首先安装httpd模块

    2、检查

    [root@oldboy conf]# which /usr/bin/htpasswd
    /usr/bin/htpasswd
    [root@oldboy conf]# rpm -qf /usr/bin/htpasswd
    httpd-tools-2.2.15-56.el6.centos.3.x86_64

    3、配置配置文件

    [root@oldboy extra]# cat bbs.conf 
        server {
            listen       80;
            server_name  bbs.cnblogs.co cnblog.co;
            location / {
                     auth_basic       "pyrene RZ";
                     auth_basic_user_file /application/nginx/conf/htpasswd;
                root   html/bbs;
                index  index.html index.htm;
            }
           access_log logs/www_access.log main;
        }

    这里的配置文件也可以自己设置

    location /pyrene/{
                     auth_basic       "pyrene RZ";
                     auth_basic_user_file /application/nginx/conf/htpasswd;
                root   html/bbs;
                index  index.html index.htm;
            }
    
    }
    这样就属于网站后台自己访问的时候需要
    View Code

    4、设置密码文件

    [root@oldboy conf]# cd extra/
    [root@oldboy extra]# htpasswd -cb /application/nginx/conf/htpasswd pyrene 123456
    Adding password for user pyrene
    查看密码   这里密码是加密的
    [root@oldboy conf]# chmod 400 htpasswd    ---给密码文件设置权限
    [root@oldboy extra]# cat /application/nginx/conf/htpasswd 
    pyrene:slT12PdNWhfkc

    5、重启

    [root@oldboy bbs]# /application/nginx/sbin/nginx -t
    nginx: the configuration file /application/nginx-1.8//conf/nginx.conf syntax is ok
    nginx: configuration file /application/nginx-1.8//conf/nginx.conf test is successful
    [root@oldboy bbs]# /application/nginx/sbin/nginx -s reload

    示例

  • 相关阅读:
    【opencv.js】将图片转换为灰度图
    【快速创建】第一个 opencv.js 项目
    【踩坑无数】Anaconda(2020.02) + Tensorflow2.1 + python3.7 (CPU版本)的安装
    Thread的join方法
    常用语句
    获取当前托管线程的唯一标识符
    修改文件或文件夹的权限,为指定用户、用户组添加完全控制权限(转载)
    C#中Monitor和Lock以及区别(转载)
    LIBRA查询
    Select()和SelectMany()的区别
  • 原文地址:https://www.cnblogs.com/pyrene/p/6505121.html
Copyright © 2020-2023  润新知