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跳转的方法如下:

[[email protected] 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
[[email protected] 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//

[[email protected] extra]# curl -s -o /dev/null -I -w "%{http_code}\n" http://www.cnblogs.c
301

301跳转步骤

NginxRewrite的应用

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

二、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、检查

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

3、配置配置文件

[[email protected] 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;
        }

}
这样就属于网站后台自己访问的时候需要

4、设置密码文件

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

5、重启

[[email protected] 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
[[email protected] bbs]# /application/nginx/sbin/nginx -s reload

示例

时间: 2024-10-10 23:44:24

nginx rewrite标签配置以及用户认证配置的相关文章

LNMP第二部分nginx、php配置(用户认证、域名重定向、日志、配置缓存、防盗链)

一.nginx的配置( nginx.conf) 1.nginx的主配置文件位置: /usr/local/nginx/conf/nginx.con 2.清空  /usr/local/nginx/conf/nginx.con默认的配置文件内容 [[email protected] ~]# > /usr/local/nginx/conf/nginx.conf >:重定向的意思,单独使用,可以把一个文本文档快速清空 3.拷贝一下代码到/usr/local/nginx/conf/nginx.conf文件

Nginx安装配置实现用户认证、反向代理、隐藏版本号

一.Nginx安装 1.检查并且安装依赖组件           检查安装nginx的模块需要第三方库的支持,检查是否安装下列库:zlib.zlib-devel.openssl.openssl-devel.pcre.pcre-devel如果没有,则全部装上          # rpm -qa | grep pcre  ##没有任何信息则没安装 2.安装pcre,pcre-devel # tar -zxvf pcre-6.6.9.tar.gz          # cd pcre-6.6.9/ 

Nginx用户认证配置

which htpasswd  #查看是否安装htpasswd yum install httpd-tools  #安装htpasswd #生成密码文件 htpasswd -cb /usr/local/tengine/conf/htpasswd 用户名 密码 例: htpasswd -cb /usr/local/tengine/conf/htpasswd admin 123456 chmod 400 /usr/local/nginx/conf/htpasswd  #为了安全设置文件权限 配置文件

lamp配置之用户认证

有时候,我们需要给一些特殊的访问设置一个用户认证机制,增加安全.比如我们刚刚安装好的discuz论坛,是有一个管理后台的,虽然管理后台本身就有密码,但我们为了更加安全,可以再设置一层用户认证. # vim /usr/local/apache2/conf/extra/httpd-vhosts.conf 在对应的虚拟主机配置中加入如下配置: <Directory /data/www/admin.php> AllowOverride AuthConfig AuthName "alksdjf

apache用户认证配置

有时候,我们需要给一些特殊的访问设置一个用户认证机制,增加安全!apache用户认证的实质就是给用户访问增加一个密码认证的过程,在介绍apache认证之前先介绍一个创建密码的工具htpasswd! #/usr/local/apache2/bin/htpasswd    参数:        -c:新创建一个密码文件        -D:删除一个用户        -m: 采用MD5编码加密        -d:采用CRYPT编码加密,这是预设的方式        -p:采用明文格式的密码    

vsftpd虚拟用户认证配置(vsftpd+pam+mysql)

一.准备所需要的程序包 mysql pam_mysql vsftpd 二.开始安装 [[email protected] ~]# yum -y install mysql-server mysql-devel vsftpd pam_mysql // 注意:pam_mysql由epel源提供,epel源需要自行设置 三.创建虚拟用户账号 1.创建数据库及存储用户的表 [[email protected] ~]# service mysqld start // 启动mysql服务 [[email p

tomcat web 管理用户认证配置

通过浏览器访问tomcat默认主页,可以管理该服务器上配置的web项目,但是只有认证通过的用户才可以访问相关页面,这些认证相关的信息在$CATALINA_HOME/conf/tomcat-user.xml文件中进行配置,下面给一个示例的配置文档:   <role rolename="manager-gui" description="manager-gui"/>   <role rolename="manager-script"

Jira 启用AD域用户认证配置

原文地址:http://blog.51cto.com/gyj110/2071991

CentOS6服务管理之WEB-httpd用户认证控制和https在httpd上的实现

通过上面两篇博客 CentOS6服务管理之WEB-http协议详解 CentOS6服务管理之WEB-Apache httpd配置文件详解 我们学习了Apache httpd的基础知识,下面我们就可以通过设置用户认证和实现https加密传输的实验来配置httpd了,下面是本次实验的要求: 实验环境: CentOS release6.6(Final)   1台 Windows XP             1台 IP地址: 172.16.31.31      www.stu31.com