Nginx常用技巧使用实例汇总
1.多个server的优先级
以每个server区块都监听80端口为例,www.pm.com对应服务器ip地址,匹配顺序为:
①server_name和www.pm.com完全相同的区块。
②server_name为 *.pm.com 的区块。(通配符在前)
③server_name为 pm.* 的区块。(通配符在后)
④server_name使用正则表达式并能匹配上www.pm.com的区块。
⑤如果都没有匹配到,将选择 listen 80 default_server;的区块。
⑥如果没有第5项,则选择第一个配置文件的第一个server区块。
访问域名www.pm.com就是优先选择上面的server。
如果此时以ip访问,在请求头中的Host字段的值就是192.168.1.7,无法匹配到server_name,就会按照规则匹配到下面的那个server。
2.禁止IP访问
禁止IP访问可以防止别人恶意将域名解析到自己的IP上。
两种形式:
注:第一种方法必须使用 default_server,如果别的地方要用default_server,可以用第二种方法的形式。
3.多用include(写好注释)
一台服务器配置多个server网站,会导致主配置文件nginx.conf非常臃肿,可读性变差,则可以多使用include方法,简化主配置文件,便于运维人员维护。
4.使用alias保护网站真实目录结构
当我们以http://www.pm.com/image/logo.png访问该图片时,按常规来说,访问者就知道了该图片的路径位置
location /image {
root /pm_code;
}
对应的路径为 /pm_code/image/
当使用alias时:
location /image {
alias /pm_code;
}
此时图片真实的位置是在/pm_code下,/image是一个虚拟目录,alias后面是绝对目录路径。
5.error_page的配置
模拟404报错
当输入一个不存在的网址时,如http://www.pm.com/jfkdjfk 会跳转到/pm_code/www/404.jpg
模拟502报错
在浏览器中输入www.pm.com,链接超时,会显示/pm_code/www/500.jpg
注意:两者之间的格式不同。500必须再写一个location。
6.try_files配置
一个简单的例子:
当在浏览器输入www.pm.com时,会先去找400.html,如果没有再去找index.html
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
相关推荐
-
详解Nginx启动失败的几种错误处理
使用Nginx做Web服务器过程中,碰到过以下几个问题: 1.nginx启动失败 systemctl start nginx.service 启动nginx失败,报错信息如下: Starting nginx: nginx: [emerg] bind() to 0.0.0.0:**** failed (13: Permission denied) 这通常是因为开启了SELinux的原因,使用命令 getenforce 可以查看SELinux状态,如果输出为 enforcing 表示已开启.用以下方
-
nginx限速之连接数限制技巧分享
前言 我们经常会遇到这种情况,服务器流量异常,负载过大等等.对于大流量恶意的攻击访问,会带来带宽的浪费,服务器压力,影响业务,往往考虑对同一个ip的连接数,并发数进行限制.nginx 内置模块限速怎么使用就不多说了,今天来说说连接数和单个连接数限速的事.话不多说了,来一起看看详细的介绍吧. 场景: A公司有100人,A公司只有一个公网IP,假设A公司可能有100个人同时在下载你的网站文件. 但是,你的连接数限制配置为: limit_conn_zone $binary_remote_addr zo
-
nginx 代理80端口转443端口的实现
nginx.conf配置文件如下 user nginx; worker_processes 1; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remot
-
18个运维必知的Nginx代理缓存配置技巧(你都掌握了哪些呢)
我们都知道应用程序和网站的性能是他们成功的关键因素.但是,使您的应用程序或网站表现更好的过程并不总是很清楚.代码质量和基础架构当然至关重要,但在许多情况下,您可以通过专注于一些非常基本的应用程序的交付技术,对应用程序的最终用户体验进行大量改进. 其中一个例子是在应用程序栈中实现和优化缓存.在教程中介绍的技术可以帮助新手和高级用户使用 Nginx 中包含的内容缓存功能,从而获得更好的性能. 概览 内容缓存位于客户端和源服务器 (upstream) 之间,并保存它看到的所有内容的副本.如果客户端请求
-
一些优化Nginx服务器的技巧简介
大多数的Nginx安装指南告诉你如下基础知识--通过apt-get安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了!而且,在大多数情况下,一个常规安装的nginx对你的网站来说已经能很好地工作了.然而,如果你真的想挤压出nginx的性能,你必须更深入一些.在本指南中,我将解释Nginx的那些设置可以微调,以优化处理大量客户端时的性能.需要注意一点,这不是一个全面的微调指南.这是一个简单的预览--那些可以通过微调来提高性能设置的概述.你的情况可能不同. 基本的 (优化过的)配置
-
Nginx Rewrite规则与使用介绍和技巧实例
一.正则表达式匹配,其中: * ~ 为区分大小写匹配 * ~* 为不区分大小写匹配 * !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 二.文件及目录匹配,其中: * -f和!-f用来判断是否存在文件 * -d和!-d用来判断是否存在目录 * -e和!-e用来判断是否存在文件或目录 * -x和!-x用来判断文件是否可执行 三.rewrite指令的最后一项参数为flag标记,flag标记有: 1.last 相当于apache里面的[L]标记,表示rewrite. 2.break本条规则匹配
-
Nginx 根据URL带的参数转发的实现
使用场景: 需要根据截取URL动态配置跳转路径,常见于访问内网不固定ip地址的文件图片, 请求地址:http://11.19.1.212:82/bimg4/32.52.62.42:222/DownLoadFile?filename=LOC:12/data/20180208/15/2e0ae54dfd752210083404deed15269c_222403 实际需要访问的内网地址:http://32.52.62.42:222/DownLoadFile?filename=LOC:12/data/2
-
Nginx的一些常用配置与技巧总结
前言 文章列举了几个Nginx常见的,实用的,有趣的配置,希望看过之后能说一句:学到了! 一个站点配置多个域名 server { listen 80; server_name ops-coffee.cn b.ops-coffee.cn; } server_name 后跟多个域名即可,多个域名之间用空格分隔 一个服务配置多个站点 server { listen 80; server_name a.ops-coffee.cn; location / { root /home/project/pa;
-
Nginx常用技巧使用实例汇总
1.多个server的优先级 以每个server区块都监听80端口为例,www.pm.com对应服务器ip地址,匹配顺序为: ①server_name和www.pm.com完全相同的区块. ②server_name为 *.pm.com 的区块.(通配符在前) ③server_name为 pm.* 的区块.(通配符在后) ④server_name使用正则表达式并能匹配上www.pm.com的区块. ⑤如果都没有匹配到,将选择 listen 80 default_server:的区块. ⑥如果没有第
-
JavaScript常用验证函数实例汇总
本文实例汇总了JavaScript常用验证函数.分享给大家供大家参考.具体汇总如下: 一.字符串类验证 1. 长度限制 复制代码 代码如下: <script> function test() { if(document.a.b.value.length>50) { alert("不能超过50个字符!"); document.a.b.focus(); return false; } } </script> <form name=a onsubmit=&
-
php常用字符串比较函数实例汇总
本文实例汇总了php常用字符串比较函数.分享给大家供大家参考.具体分析如下: substr_compare() 函数从指定的开始长度比较两个字符串,该函数返回: 0 - 如果两字符串相等,<0 - 如果 string1 (从开始位置)小于 string2,>0 - 如果 string1 (从开始位置)大于 string2. 语法:substr_compare(string1,string2,startpos,length,case),代码如下: 复制代码 代码如下: $str1="h
-
Python常用断言函数实例汇总
Python assert 语句,又称断言语句,可以看做是功能缩小版的 if 语句,它用于判断某个表达式的值,如果值为真,则程序可以继续往下执行:反之,Python 解释器会报 AssertionError 错误. assert 语句的语法结构为: assert 表达式 assert 语句的执行流程可以用 if 判断语句表示(等效),如下所示: if 表达式==True: 程序继续执行 else: 程序报 AssertionError 错误 有读者可能会问,明明 assert 会令程序崩溃,为什
-
Redis常用数据类型命令实例汇总
存储sortedset: 存储:zadd key score menber1 score menber2 ... 升序排列:zrange key start end [withscores] 降序排列:zrevrange key start end [withscores] 取得前三名: 按照排名范围删除元素:zremrangebyrank key start stop 例,删除3名到最后一名: 返回成员在集合中的排名(从小到大): zrank key member keys的通用操作: 删除指
-
Go语言常用字符串处理方法实例汇总
本文实例汇总了Go语言常用字符串处理方法.分享给大家供大家参考.具体如下: 复制代码 代码如下: package main import ( "fmt" "strings" //"unicode/utf8" ) func main() { fmt.Println("查找子串是否在指定的字符串中") fmt.Println(" Contains 函数的用法")
-
C++常用字符串分割方法实例汇总
本文实例汇总了C++常用字符串分割方法,分享给大家供大家参考.具体分析如下: 我们在编程的时候经常会碰到字符串分割的问题,这里总结下,也方便我们以后查询使用. 一.用strtok函数进行字符串分割 原型: char *strtok(char *str, const char *delim); 功能:分解字符串为一组字符串. 参数说明:str为要分解的字符串,delim为分隔符字符串. 返回值:从str开头开始的一个个被分割的串.当没有被分割的串时则返回NULL. 其它:strtok函数线程不安全
-
Android编程常用技巧实例总结
本文实例讲述了Android编程常用技巧.分享给大家供大家参考,具体如下: 1. 登录的时候,如果输入有误,则输入框左右震动,表示输入有误 在res下准备一个anim文件夹,里面包含两个文件,main_login_shake.xml 和 main_login_cycle_7.xml, 其中,main_login_shake.xml如下: <?xml version="1.0" encoding="utf-8"?> <translate xmlns:
-
PHP常用技巧汇总
本文为大家分享了多个php常用技巧,供大家参考,具体内容如下 1.PHP文件读取函式 //文件读取函式 function PHP_Read($file_name) { $fd=fopen($file_name,r); while($bufline=fgets($fd, 4096)){ $buf.=$bufline; } fclose($fd); return $buf; } ?> 2.文件写入函式 //文件写入函式 function PHP_Write($file_name,$data,$met
-
MFC程序设计常用技巧汇总
本文实例总结了MFC程序设计常用技巧.分享给大家供大家参考.具体如下: 1.属性页的添加: 创建对话框的类,该类要从CpropertyPage继承:然后在要添加该对话框为属性页的类(头文件)里创建CpropertySheet类的一个对象m_tabsheet和新创建的对话框类的对象m_skatch:最后,在.cpp文件里的OnInitDialog()之类的函数里实现如下代码: 复制代码 代码如下: m_tabsheet.Create(this, WS_CHILD | WS_VISIBLE, 0);
随机推荐
- js实现全屏漂浮广告移入光标停止移动
- JS 正则表达式用法介绍
- 使用图灵api创建微信聊天机器人
- php htmlspecialchars加强版
- MySQL性能优化
- Python中selenium实现文件上传所有方法整理总结
- C语言中无符号数和有符号数之间的运算
- my.cnf参数配置实现InnoDB引擎性能优化
- 经测试最好用的mysql密码忘记的解决方法
- php制作unicode解码工具(unicode编码转换器)代码分享
- JavaScript实现数组随机排序的方法
- 解决MySQL数据库中文模糊检索问题的方法
- SQLServer获取临时表所有列名或是否存在指定列名的方法
- 重装windows系统备份重要数据全攻略
- PHP开发制作一个简单的活动日程表Calendar
- IIS .7z文件支持下载的添加方法
- Centos7 Redis主从搭建配置的实现
- Python协程操作之gevent(yield阻塞,greenlet),协程实现多任务(有规律的交替协作执行)用法详解
- SpringBoot使用WebJars统一管理静态资源的方法
- ng-zorro-antd 入门初体验