nginx 1.6.3配置虚拟主机与rewrite-location匹配规则

1、 Nginx 虚拟主机配置(配置文件末尾以分号[;]结尾)

(1) 准备测试目录站点
[root@WEB conf]# cd /application/nginx/conf/
[root@WEB conf]# mkdir extra                                      (创建虚拟主机存放目录)
[root@WEB conf]# mkdir  /application/nginx/html/www               (创建虚拟主机网站根目录)
[root@WEB conf]# mkdir -p /var/www/html                           (创建虚拟主机网站根目录)   
[root@WEB conf]# echo "www" > /application/nginx/html/www/index.html       (www.etiantian.org 默认网页)
[root@WEB conf]# echo "bbs" > /var/www/html/index.html                     (bbs.etiantian.org  默认网页)(2)配置nginx.conf主配置文件  
[root@WEB conf]# cat nginx.conf
error_log  logs/error.log;                           (指定错误日志)                  
worker_processes  1;                                 (进程数,一般是cpu核数的1-2倍)
events {worker_connections  1024;                        (最大并发连接数)
}
http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;include extra/*.conf;                           (指定虚拟主机存放位置)log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '              (access日志格式,main:日志的调用值)'$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  logs/access.log  main;            (访问日志,通过main调用日志的显示格式,这行必须放到日志的下面)             
}(3)配置虚拟主机
[root@WEB conf]# cd extra/
[root@WEB extra]# cat www.conf
server {listen       80;server_name  www.etiantian.org etiantian.org;     域名,可以增加多个别名,用空格分开location / {root   html/www;                   默认网站根目录(在安装目录的html/www/下)index  index.html index.htm;}access_log  logs/www_access.log  main;            虚拟主机日志,放到server标签里面
}
[root@WEB extra]# cat bbs.conf
server {listen       80;server_name  bbs.etiantian.org;                   域名location / {root   /var/www/html;                            自定义默认网站根目录index  index.html index.htm;}access_log  logs/bbs_access.log  main;            虚拟主机日志,放到server标签里面
}
[root@WEB extra]# cat status.conf
server {listen       80;server_name  status.etiantian.org;               域名location / {stub_status on;                              开启监控模块(用于监控nginx状态信息)access_log   off;                            关闭日志}
}(4) 配置nginx加密访问
[root@WEB extra]# cat www.confserver {listen       80;server_name  www.etiantian.org;location / {root   html/www;index  index.html index.htm;auth_basic           "closed site";                                          开启加密认证auth_basic_user_file /application/nginx/conf/htpasswd;         认证文件}access_log  logs/www_access.log  main;}
# 配置认证文件并重启nginx
[root@WEB extra]# yum -y install httpd-tools
[root@WEB extra]# htpasswd -bc /application/nginx/conf/htpasswd oldboy 123456
[root@WEB extra]# cat /application/nginx/conf/htpasswd
oldboy:SDYvt.oRyvO5g
(3) 访问http://www.etiantian.org

2、 Nginx 日志切割

[root@WEB logs]# cd /server/scripts/
[root@WEB scripts]# cat nginx_log.sh
#!/bin/bash
date=`date +%F -d "-1day"`
cd /application/nginx/logs/ && \
mv www_access.log  ${date}_www_access.log
mv bbs_access.log  ${date}_bbs_access.log
> access.log
[root@WEB scripts]# crontab -e
0 0 * * *  /bin/sh /server/scripts/nginx_log.sh > /dev/null 2>&1 

3、Nginx location 匹配规则

(1) 精确匹配,访问www.etiantian.org 则匹配404
# curl -s -o /dev/null -I -w "%{http_code}\n" http://www.etiantian.org404
[root@WEB extra]# cat www.conf
server {listen       80;server_name  www.etiantian.org;location = / {return 404;}(2)正则匹配,以/images/开头的, images目录必须存在,访问www.etiantian.org/images/则匹配200
# curl -s -o /dev/null -I -w "%{http_code}\n" http://www.etiantian.org/images/200
location ^~/images/ {return 200;}(3) 正则匹配以.gif .jpg .jpeg结尾,访问www.etiantian.org/a.jpg则匹配301
# curl -s -o /dev/null -I -w "%{http_code}\n" http://www.etiantian.org/a.jpg301
location ~*.(gif|jpg|jpeg)$ {return 301;}(4) 常规匹配,如果有正则会优先匹配正则,访问www.etiantian.org/documents/ 则匹配302 
# curl -s -o /dev/null -I -w "%{http_code}\n" http://www.etiantian.org/documents/302
# curl -s -o /dev/null -I -w "%{http_code}\n" http://www.etiantian.org/documents/a.jpg301(加上a.jpg正则优先,匹配301
location /documents/ {return 302;}(5) 常规匹配(默认匹配)都没有匹配到,则匹配500
# curl -s -o /dev/null -I -w "%{http_code}\n" http://www.etiantian.org/test/a.txt500
location / {return 500;}(6) 表示访问网站根目录的时候会去/var/www/html/目录下去找如果匹配http://www.etiantian.org 就会去/var/www/html/目录下找location / {       root /var/www/html; index index.html;          }(7) 表示访问网站根目录下的blr2目录,会去/var/www/html/blr2/目录下去找如果匹配http://www.etiantian.org/blr2  就会去/var/www/html/目录下的 blr2/目录中去找  location /blr2 {     #这里的blr2是一个目录#注意:这里的网站更目录实际上是/var/www/html/blr2/root /var/www/html; index index.html;              }

4、nginx rewrite规则

(1) 访问 www.etiantian.org  跳转到 www.baidu.com
[root@WEB extra]# cat www.conf
server {listen       80;server_name  www.etiantian.org;location / {root  html/www;index index.html;}rewrite ^/(.*)      http://www.baidu.com/$1 permanent;   
}
解释:
当匹配www.etiantian.org下的任意内容时,则访问www.baidu.com 下的任意部分,$1表示(.*)
匹配域名下的任意内容,(.*)表示任意。这里可以有多个小括号,$1表示第一个小括号,$2第二个(2) 访问bbs.etiantian.org/bbs 跳转到 www.baidu.com(前提是bbs.etiantian.org/bbs/index.html必须存在 )
[root@WEB extra]# cat bbs.conf
server {listen       80;server_name  bbs.etiantian.org;location / {root  html/bbs;index index.html;}rewrite ^(.*)/bbs   http://www.baidu.com  permanent;}
解释:
当匹配bbs.etiantian.org/bbs 时,则跳转到www.baidu.com(3) 访问www.etiantian.org/bbs 跳转到 bbs.etiantian.org/abc/bbsserver {listen       80;server_name  www.etiantian.org;location / {root  html/www;index index.html;}rewrite ^/(.*)  http://bbs.etiantian.org/abc/$1 permanent;
}
解释:
当匹配 www.etiantian.org下的任意内容时,则访问  bbs.etiantian.org/abc/ 下的任意内容(4) 
server {listen       80;server_name  www.etiantian.org;location / {root  html/www;index index.html;}rewrite ^(/download/.*)/media/(.*)\..*$  http://bbs.etiantian.org/$1/mp3/$2.mp3 last;
}
解释:
当访问:www.etiantian.org/download/test1/media/test2.php 时,
跳转到:bbs.etiantian.org/download/test1/mp3/test2.mp3 
$1=(/download/.*)=test1
$2=(.*)=test2

5、nginx location配置不同站点目录

server {listen       80;server_name  www.etiantian.org;location ~ .*\.(gif|jpg|png|css|js)$ {root  /data/www;index  index.jpg;}location ~ .*\.(html|htm|ht)$ {root /data/bbs;index   index.html;}location ~ .*\.(jsp|php) {root  /data/blog;index  index.php;}}

6、Nginx 定义错误页面

注意:如果有虚拟主机的话,需要在虚拟主机添加,虚拟主机优先生效
(1) 以.html的方式跳转server {listen       80;server_name  www.etiantian.org;location / {root   html/www;index  index.html index.htm;}error_page  404 403  /50x.html;                    \\如果出现 404 403 页面,就跳转到网站根目录下的 50x.html (http://www.etiantian.ort/50x.html)location = /50x.html {                                    \\当匹配 50x.htmlroot   html/www;                                        \\就去网站根目录下寻找50x.html}
}(2) 以图片的方式跳转server {listen       80;server_name  www.etiantian.org;location / {root   html/www;index  index.html index.htm;}error_page  404 403  /404.jpg;                          \\如果出现 404 403 页面,就跳转到网站根目录下的 404.jpg (http://www.etiantian.ort/404.jpg)    location = /404.jpg {                                         \\当匹配 404.jpgroot   html/www;                                           \\就去网站根目录下寻找404.jpg  }
}(3) 以rewrite的方式跳转
server {listen       80;server_name  www.etiantian.org;location / {root   html/www;index  index.html index.htm;}error_page  404 403  /404.jpg;                                                        \\如果出现 404 403 页面,就跳转到网站根目录下的 404.jpg (http://www.etiantian.ort/404.jpg),无论404.jpg是否存在                location = /404.jpg {                                                                       \\当匹配 404.jpg(无论404.jpg是否存在)access_log /data/logs/nginx/server_error.log;                               \\记录日志rewrite ^(.*)$ http://www.etiantian.org/50X.html redirect;           \\进行地址重写,将localtion匹配到的所有内容,重写为新的RUL,redirect 表示302临时重定向}
}flag标记有:* last 相当于Apache里的[L]标记,表示完成rewrite,匹配完,再向下匹配。地址栏会显示跳转后的地址
* break 终止匹配, 不再匹配后面的规则,地址栏会显示跳转后的地址
* redirect 返回302临时重定向,地址栏会显示跳转后的地址
* permanent 返回301永久重定向,地址栏会显示跳转后的地址

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/505364.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

音视频入门基础:MPEG2-PS专题(6)——FFmpeg源码中,获取PS流的视频信息的实现

音视频入门基础:MPEG2-PS专题系列文章: 音视频入门基础:MPEG2-PS专题(1)——MPEG2-PS官方文档下载 音视频入门基础:MPEG2-PS专题(2)——使用FFmpeg命令生成ps文件 音视频入门基础…

代码随想录算法训练营day27

代码随想录算法训练营 —day27 文章目录 代码随想录算法训练营前言一、贪心算法理论基础二、455.分发饼干三、376. 摆动序列53. 最大子数组和总结 前言 今天是算法营的第27天,希望自己能够坚持下来! 今日任务: ● 贪心算法理论基础 ● 455.…

idea全局替换显示不全(ctrl+shift+R)

修改一下idea的配置就行 idea的默认显示条数为100,可以修改成10000

新版2024AndroidStudio项目目录结构拆分

如题 下载了最新版的android studio 发现目录结构和以前不一样 自动帮你合并了 如何层层抽丝剥茧呢 按照一下步骤即可解决问题!

vue el-table 数据变化后,高度渲染问题

场景:el-table设置了height属性,但是切换查询条件后再次点击查询重新获取data时,el-table渲染的高度会有问题,滚动区域变矮了。 解决办法:使用doLayout方法‌,在表格数据渲染后调用doLayout方法可以重新布局…

一.MySQL程序简介

整体介绍 1.服务端mysqld(可执行文件) mysqld --verbose --help 2.客户端mysql(可执行文件) 3.其它工具包程序

Jenkins-持续集成、交付、构建、部署、测试

Jenkins-持续集成、交付、构建、部署、测试 一: Jenkins 介绍1> Jenkins 概念2> Jenkins 目的3> Jenkins 特性4> Jenkins 作用 二:Jenkins 版本三:DevOps流程简述1> 持续集成(Continuous Integration,CI&#xff0…

用 Python 绘制可爱的招财猫

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​​​​​ ​​​​​​​​​ ​​​​ 招财猫,也被称为“幸运猫”,是一种象征财富和好运的吉祥物,经常…

socket网络编程-TC/IP方式

网络编程 1.概念:两台设备之间通过网络数据传输。 2.网络通信:将数据通过网络从一台设备传输另外一台设备。 3.java.net包下提供了一系列的类和接口,提供程序员使用,完成网络通信。 TCP和UDP TCP协议: 1.使用TCP协…

G1原理—2.G1是如何提升分配对象效率

大纲 1.G1的对象分配原理是怎样的 2.深入分析TLAB机制原理 3.借助TLAB分配对象的实现原理是什么 4.什么是快速分配 什么是慢速分配 5.大对象分配的过程 与TLAB的关系 6.救命的稻草—JVM的最终分配尝试 G1如何分配对象TLAB机制分区协调机制 G1设计了一套TLAB机制快速分…

Wsl报 不存在具有提供的名称的分布

在使用wsl --set-version Ubuntu 2命令升级WSL2时, 不存在具有提供的名称的分布,如下图。 图片 解决的办法也很简单,只需要把该命令的 Ubuntu 改为具体使用的发行版全称即可。此处,使用“wsl -l -v”命令显示安装的Ubuntu 版本。 …

视频编辑最新SOTA!港中文Adobe等发布统一视频生成传播框架——GenProp

文章链接:https://arxiv.org/pdf/2412.19761 项目链接:https://genprop.github.io 亮点直击 定义了一个新的生成视频传播问题,目标是利用 I2V 模型的生成能力,将视频第一帧的各种变化传播到整个视频中。 精心设计了模型 GenProp&…

计算机网络例题

IP地址分类: A类:网络号范围: 1~126 (0000 0001 ~ 0111 1110) B类:网络号范围:128.1 ~ 191.255 (可用范围) C类:网络号段范围:192.0.1 ~ 223.2…

【大数据基础】大数据概述

【作者主页】Francek Chen 【专栏介绍】 ⌈ ⌈ ⌈大数据技术原理与应用 ⌋ ⌋ ⌋专栏系统介绍大数据的相关知识,分为大数据基础篇、大数据存储与管理篇、大数据处理与分析篇、大数据应用篇。内容包含大数据概述、大数据处理架构Hadoop、分布式文件系统HDFS、分布式数…

鸿蒙UI(ArkUI-方舟UI框架)

参考:https://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V13/arkts-layout-development-overview-V13 ArkUI简介 ArkUI(方舟UI框架)为应用的UI开发提供了完整的基础设施,包括简洁的UI语法、丰富的UI功能&#xff…

【Java项目】基于SpringBoot的【校园交友系统】

【Java项目】基于SpringBoot的【校园交友系统】 技术简介:系统软件架构选择B/S模式、SpringBoot框架、java技术和MySQL数据库等,总体功能模块运用自顶向下的分层思想。 系统简介:系统主要包括管理员和用户。 (a) 管理员的功能主要有首页、个人…

C#中的常用集合

目录 一、动态数组ArrayList 二、List 三、栈(Stack) 四、队列(Queue) 五、字典(Dictionary),int> 一、动态数组ArrayList ArrayList 是 C# 中提供的一种动态数组类,位于命名空间 Syste…

[笔记] 使用 Jenkins 实现 CI/CD :从 GitLab 拉取 Java 项目并部署至 Windows Server

随着软件开发节奏的加快,持续集成(CI)和持续部署(CD)已经成为确保软件质量和加速产品发布的不可或缺的部分。Jenkins作为一款广泛使用的开源自动化服务器,为开发者提供了一个强大的平台来实施这些实践。然而…

WEB前端-2

目录 HTML-常见的网页标签-分类2 语义化标签 列表标签 表单标签 form标签 input标签 select标签 textarea标签 html转义符 h5提供的新标签 【例3:豆瓣电影】 【源码】 【例4:登录注册】 【源码】 【例5:QQ注册】 【源码】 H…

Nacos概述与集群实战

什么是Nacos,它有什么作用 Nacos 是一个开源的服务发现和配置管理平台,由阿里巴巴开发,用于构建云原生应用程序。Nacos 的名字源自于 “Naming and Configuration Service”(命名和配置服务)的缩写。它支持服务注册与发现、动态配置服务、动态服务管理等特性,广泛应用于微…