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永久重定向,地址栏会显示跳转后的地址
相关文章:
nginx 1.6.3配置虚拟主机与rewrite-location匹配规则
1、 Nginx 虚拟主机配置(配置文件末尾以分号[;]结尾) (1) 准备测试目录站点 [rootWEB conf]# cd /application/nginx/conf/ [rootWEB conf]# mkdir extra (创建虚拟主机存放目录࿰…...

1130-host ... is not allowed to connect to this MySql serve
局域网内另外一台电脑使用navicat连接Mysql出现上述问题:不允许连接 解决方案: 1、输入命令:进入mysql mysql -u root -p 2、输入命令:展示所有数据库 show databases; 3、输入命令进入mysql数据库: use mysql; 4、…...

力扣1502判断能否形成等差数列
class Solution:def canMakeArithmeticProgression(self, arr: List[int]) -> bool:# 对数组进行排序arr.sort()# 计算公差diff arr[1] - arr[0]# 从第二个元素开始逐个检查差值是否一致for i in range(1, len(arr) - 1):if arr[i 1] - arr[i] ! diff:return Falsereturn …...
Python版本变更历史及版本选择指南
Python版本变更历史及版本选择指南 Python版本变更历史及版本选择指南1. Python 3.13.1(2023年发布)主要特性适用场景 2. Python 3.12(2022年发布)主要特性 3. Python 3.11(2022年发布)主要特性 4. Python …...
初始值变量类型
状态名同步位置初始值变量类型不支持的UL刷新注意事项State父组件必填Object、classstring、number、boolean、enum类型,以及这些类型的数组。支持Date类型。对象的对象数组属性更新数组对象的属性更新 State装饰的变量必须初始化,否则编译期会报错。Sta…...
苍穹外卖 项目记录 day03
文章目录 菜品管理模块开发公共字段填充自定义注解 AutoFill自定义切面 AutoFillAspect在Mapper接口的方法上加入 AutoFill 注解 新增菜品文件上传实现新增菜品实现菜品分页查询删除菜品实现修改菜品实现 菜品管理模块开发 公共字段填充 在新增员工或者新增菜品分类时需要设置…...
统计字符【2】(PTA)C语言
本题要求编写程序,输入N个字符,统计其中英文字母、空格或回车、数字字符和其他字符的个数。 输入格式: 输入在第一行中给出正整数N,第二行输入N个字符,最后一个回车表示输入结束,不算在内。 输出格式: 在一行内按照…...
如何在 Spring Cloud Gateway 中创建全局过滤器、局部过滤器和自定义条件过滤器
Spring Cloud Gateway 是一个功能强大的 API 网关,能够处理 HTTP 请求、响应及路由。通过过滤器机制,您可以在请求和响应过程中进行各种处理操作,如记录日志、身份验证、限流等。Spring Cloud Gateway 提供了三种主要类型的过滤器:…...
PINN模型详解
定义与原理 物理信息神经网络(Physics-Informed Neural Networks, PINN)是一种创新性的机器学习模型,巧妙地将物理知识与深度学习相结合。这种独特的设计理念源于Karniadakis教授的研究团队,他们在一系列开创性工作中提出了这一概念。 PINN的核心思想是在神经网络的损失函数…...

查找路由器的管理后台ip【通用找IP】
需求: 刚刚搞了个【小米】路由器,我想进路由的管理后台,提示:安装xx的路由管家,我不想安装 但是无法找到这个管理后台。 而且我是用这个路由作为中继,那么这个路由的ip就会经常更换 尝试通过网上搜索引擎来…...
AI如何改变IT行业
AI如何改变IT行业 在当今数字化的社会中,人工智能(AI)不仅仅是一个技术词汇,而是一个正在重塑我们生活的现实时态。如果把AI比作一场即将到来的暴风雨,那么IT行业就是它的海洋。在这场风暴中,所有的船只都…...
运行vue项目,显示“npm”无法识别为 cmdlet、函数、脚本文件或可操作程序的名称
PS D:\weduproject\wedu1\wedu\wedu-fast-vue> npm run dev,运行时出现像下面这样的报红信息, npm : The term npm is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or …...

Kubernetes开发环境minikube | 开发部署apache tomcat web单节点应用
minikube是一个主要用于开发与测试Kubernetes应用的运行环境 本文主要描述在minikube运行环境中部署J2EE tomcat web应用 minikube start --force minikube status 如上所示,在Linux中启动minikube运行环境 service docker start docker version service docker …...
OpenCV相机标定与3D重建(44)初始化广角(鱼眼)相机的投影映射函数initWideAngleProjMap()的使用
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::initWideAngleProjMap 是 OpenCV 库中的一个函数,用于初始化广角(鱼眼)相机的投影映射。这个函数生成两个…...
现代前端框架
截至2025年,现代前端框架领域仍然以React、Vue和Angular等成熟框架为主导,同时一些新兴框架也在不断崛起和发展。以下是目前较为先进和受欢迎的前端框架: 成熟框架 React 由Facebook开发,是目前最流行的前端框架之一。它使用声明…...

Vue进阶(贰幺贰)npm run build多环境编译
文章目录 一、前言二、实施三、总结:需要打包区分不同环境四、拓展阅读 一、前言 项目开发阶段,会涉及打包部署到多个环境应用场景,在不同环境中,需要进行项目层面的区分,做不同的操作,可以利用打包的--mo…...

社交新零售下开源 AI 智能名片 2+1 链动模式 S2B2C 商城小程序的创新实践与发展剖析
摘要:在社交电商蓬勃发展并向社交新零售转型的浪潮中,多种创新模式与技术应用不断涌现。本文聚焦于开源 AI 智能名片 21 链动模式 S2B2C 商城小程序,深入探讨其在社交新零售格局下的内涵、优势、应用策略以及对行业发展的深远影响,…...

xml格式化(1):使用python的xml库实现自闭合标签
前言 最近一段时间一直想要写一个urdf格式化插件。 至于为什么嘛,因为使用sw2urdf插件,导出的urdf,同一标签的内容,是跨行的,这就导致,内容比较乱,而且行数比较多。影响阅读。 因此ÿ…...

重温设计模式--13、策略模式
策略模式介绍 文章目录 策略模式介绍C 代码示例 策略模式是一种行为设计模式,它允许在运行时选择算法的行为。该模式将算法的定义和使用分离开来,使得算法可以独立于使用它的客户端而变化,提高了代码的灵活性和可维护性。 其主要包含以下几个…...

【Rust自学】10.7. 生命周期 Pt.3:输入输出生命周期与3规则
喜欢的话别忘了点赞、收藏加关注哦(加关注即可阅读全文),对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 10.7.1. 深入理解生命周期 1.指定生命周期参数的方式依赖于函数所做的事情 以上一篇文章的…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
R语言AI模型部署方案:精准离线运行详解
R语言AI模型部署方案:精准离线运行详解 一、项目概述 本文将构建一个完整的R语言AI部署解决方案,实现鸢尾花分类模型的训练、保存、离线部署和预测功能。核心特点: 100%离线运行能力自包含环境依赖生产级错误处理跨平台兼容性模型版本管理# 文件结构说明 Iris_AI_Deployme…...
【Java学习笔记】Arrays类
Arrays 类 1. 导入包:import java.util.Arrays 2. 常用方法一览表 方法描述Arrays.toString()返回数组的字符串形式Arrays.sort()排序(自然排序和定制排序)Arrays.binarySearch()通过二分搜索法进行查找(前提:数组是…...

【JVM】- 内存结构
引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...

家政维修平台实战20:权限设计
目录 1 获取工人信息2 搭建工人入口3 权限判断总结 目前我们已经搭建好了基础的用户体系,主要是分成几个表,用户表我们是记录用户的基础信息,包括手机、昵称、头像。而工人和员工各有各的表。那么就有一个问题,不同的角色…...

江苏艾立泰跨国资源接力:废料变黄金的绿色供应链革命
在华东塑料包装行业面临限塑令深度调整的背景下,江苏艾立泰以一场跨国资源接力的创新实践,重新定义了绿色供应链的边界。 跨国回收网络:废料变黄金的全球棋局 艾立泰在欧洲、东南亚建立再生塑料回收点,将海外废弃包装箱通过标准…...
数据链路层的主要功能是什么
数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...

基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

ArcGIS Pro制作水平横向图例+多级标注
今天介绍下载ArcGIS Pro中如何设置水平横向图例。 之前我们介绍了ArcGIS的横向图例制作:ArcGIS横向、多列图例、顺序重排、符号居中、批量更改图例符号等等(ArcGIS出图图例8大技巧),那这次我们看看ArcGIS Pro如何更加快捷的操作。…...
《C++ 模板》
目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...