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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 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

  • Nginx Rewrite规则与使用介绍和技巧实例

    一.正则表达式匹配,其中: * ~ 为区分大小写匹配 * ~* 为不区分大小写匹配 * !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 二.文件及目录匹配,其中: * -f和!-f用来判断是否存在文件 * -d和!-d用来判断是否存在目录 * -e和!-e用来判断是否存在文件或目录 * -x和!-x用来判断文件是否可执行 三.rewrite指令的最后一项参数为flag标记,flag标记有: 1.last 相当于apache里面的[L]标记,表示rewrite. 2.break本条规则匹配

  • 详解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的一些常用配置与技巧总结

    前言 文章列举了几个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 根据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

  • 18个运维必知的Nginx代理缓存配置技巧(你都掌握了哪些呢)

    我们都知道应用程序和网站的性能是他们成功的关键因素.但是,使您的应用程序或网站表现更好的过程并不总是很清楚.代码质量和基础架构当然至关重要,但在许多情况下,您可以通过专注于一些非常基本的应用程序的交付技术,对应用程序的最终用户体验进行大量改进. 其中一个例子是在应用程序栈中实现和优化缓存.在教程中介绍的技术可以帮助新手和高级用户使用 Nginx 中包含的内容缓存功能,从而获得更好的性能. 概览 内容缓存位于客户端和源服务器 (upstream) 之间,并保存它看到的所有内容的副本.如果客户端请求

  • 一些优化Nginx服务器的技巧简介

    大多数的Nginx安装指南告诉你如下基础知识--通过apt-get安装,修改这里或那里的几行配置,好了,你已经有了一个Web服务器了!而且,在大多数情况下,一个常规安装的nginx对你的网站来说已经能很好地工作了.然而,如果你真的想挤压出nginx的性能,你必须更深入一些.在本指南中,我将解释Nginx的那些设置可以微调,以优化处理大量客户端时的性能.需要注意一点,这不是一个全面的微调指南.这是一个简单的预览--那些可以通过微调来提高性能设置的概述.你的情况可能不同. 基本的 (优化过的)配置

  • 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);

随机推荐