目录

NGINX    1

1.1    目录结构    1

1.2    基础配置    1

1.3    location    5

1.4    虚拟主机    5

1.5    状态模块    6

1.6    Rewrite    8

1.7    访问认证    9

 

  1. 目录结构

    # tree /application/nginx/

  2. 基础配置

    Nginx整个配置文件是以区块的形式组织的。每个区块以一个大括号{}来表示,区块可分为几个层次,整个配置文件中,Main区位于最上层,在Main区下面可以有Events区、Http区等层级,在Http区中又包含一个或多个server区,每个server区中又可有一个或多个location区,主体框架如下:

    # egrep -v "^$|#" /usr/local/nginx/conf /nginx.conf.default

    核心框架如下:

     

    操作

    # /usr/local/nginx/sbin/nginx -s reload

    # 将11行localhost改成对应的网站名后,重启

    # 对应的bingbing.jpg图片存在当前目录下

    # cat /usr/local/nginx/html/index.html

    <html>

    <head>

    <title>Nginx of kazihuo</title>

    <body background="bingbing.jpg">

    My name is kazihuo!

    </body>

    </head>

    </html>

     

    多个配置文件的调用,需满足以下条件

    方框内conf.d为多出的自定义的配置文件目录,圈内aaa为自定义域名对应的根目录;

    # ls /usr/local/nginx/

    aaa
    conf fastcgi_temp logs sbin uwsgi_temp

    client_body_temp conf.d html proxy_temp scgi_temp

    # cat /usr/local/nginx/conf/nginx.conf

    worker_processes 1;

    events {

    worker_connections 1024;

    }

    http {

    include mime.types;

    default_type application/octet-stream;

    sendfile on;

    keepalive_timeout 65;

    server {

    listen 80;

    server_name localhost;

    location / {

    root html;

    index index.html index.htm;

    }

    error_page 500 502 503 504 /50x.html;

    location = /50x.html {

    root html;

    }

    }

    include /usr/local/nginx/conf.d/*.conf;

    }

     

    自定义的配置文件只需配置server区域(个人实操:多配报错)

    # cat /usr/local/nginx/conf.d/kazihuo.conf

    server {

        listen 80;

        server_name aaa.kazihuo.com;

        location / {

            root aaa;

            index index.html index.htm;

        }

    }

  3. location

  • 作用

location指令的作用是根据用户请求的URI来执行不同的应用。

  • 语法

location[=|~|~*|^~|@]uri{

···

}

  • 说明

location

[=|~|~*|^~|@]

uri

{···}

指令

匹配标识

匹配的网站网址

匹配URI后要执行的配置段

上表中URI部分是关键,其可以是普通的字符串地址路径或者是正则表达式,当匹配成功则执行后面大括号里面的相关指令,正则表达式可有特殊字符。

  • 特殊字符

=    表示精确匹配

~   表示区分大小写的正则匹配

^~  表示以某个常规字符串开头的url即可

~*  表示不区分大消息的正则匹配

!~(*!~) 表示不区分大小写不匹配的正则

/   通配符,任何请求都能匹配到这个location,如果有任何其他location可以匹配,则会覆盖该location

  1. 虚拟主机

  • 概念

虚拟主机在WEB服务里就是一个独立的网站站点,这个站点对应独立的域名(也可能是IP或端口),具有独立的程序及资源目录,可独立对外提供服务供用户访问。

Nginx使用一个server{}标签来标记一个虚拟主机,一个WEB服务里可有多个虚拟主机标签对,即同时可支持多个虚拟主机站点。

  • 类型

基于域名的虚拟主机

应用:外部网站

基于端口的虚拟主机

应用:公司内部网站

基于IP的虚拟主机

应用:几乎不用

  1. 状态模块

    在配置文件里,添加如下配置

    # /usr/local/nginx/sbin/nginx -s reload

    # 状态查看

    第一行表示正处理的活动连接数:6个;

    第二行对应第三行,第一个server表示nginx启动到现在共处理了62个连接;

    第二个accepts表示nginx启动到现在共成功创建62次握手;请求丢失数=(握手数-连接数),可得,本次状态显示没有丢失请求;

    第四行Reading为Nginx读取到客户端的Header信息数;Writing为Nginx返回给客户端的Header信息数;Waiting为Nginx已经处理完正在等候下一次请求指令的驻留连接,在开启keep-alive的情况下,这个值等于active-(reading+writing)。

    或者

    # cat >>/usr/local/nginx/conf/extra/status.conf<< EOF

    ##status

    server{

    listen 80;

    server_name status.kazihuo.com;

    location / {

    stub_status on;

    access_log off;

    }

    }

    EOF

    配置文件里添加一行使Nginx读取指定目录下配置文件

    include extra/*.conf;

  2. Rewrite

    主要功能是实现URL地址重写。

  • 指令语法

rewrite regex replacement [flag];

  • 应用位置

server、location、if

  • 说明

rewrite 是实现URL重写的关键指令,根据regex(正则表达式)部分内容,重定向到replacement部分内容,结尾是flag标记。

  • 例子

rewrite ^/(.*) http://www.kazihuo.org/$1 permanent;

  • 解释

rewrite为固定关键字,表示开启一条rewrite匹配规则,regex为正则表达式部分^/(.*),匹配所有,成功后跳转到http://www.kazihuo.org/$1,$1是去前面regex部分()里的内容,结尾permanent表示永久301重定向标记,即跳转到后面的http://www.kazihuo.org/$1地址上。

  • 应用场景

*可调整用户浏览的URL,看起来更规范,合乎开发及产品人员的需求;

*为了让搜索引擎收录网站内容及用户体验更好,企业会将动态URL地址伪装成静态地址提供服务;

*网站换新域名后,让旧域名的访问跳转到新域名上;

*根据特殊变量、目录、客户端的信息进行URL跳转等。

  1. 访问认证

    添加用户密码访问,只需添加方框内模块;

    # yum install httpd-tools

    # mkdir -pv /application/nginx/conf

    # htpasswd -c -b /application/nginx/conf/htpasswd kazihuo 000000

    -c 指定文件;-b 明文记载;

    # /usr/local/nginx/sbin/nginx -s reload

NGINX配置详解及应用的更多相关文章

  1. Nginx高性能服务器安装、配置、运维 (3) —— Nginx配置详解

    四.Nginx 配置详解 YUM方式安装的Nginx默认配置文件放在/etc/nginx目录下,使用Vim编辑/etc/nginx/nginx.conf: ---------------------- ...

  2. Nginx配置详解 http://www.cnblogs.com/knowledgesea/p/5175711.html

    Nginx配置详解 序言 Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的.从2004年发布至今,凭借开源的力量,已经接近成熟与完善. Nginx功能丰富,可作 ...

  3. nginx配置详解(转)

    Nginx 配置文件详解 user nginx ; #用户 worker_processes 8; #工作进程,根据硬件调整,大于等于cpu核数 error_log logs/nginx_error. ...

  4. Nginx配置详解(转)

    转自:Nginx简介及配置文件详解 一 Nginx简介 Nginx是一款开源代码的高性能HTTP服务器和反向代理服务器,同时支持IMAP/POP3/SMTP代理服务 1.Nginx工作原理 Nginx ...

  5. 前端搭建Linux云服务器,Nginx配置详解及部署自己项目到服务器上

    目录 搭建Linux云服务器 购买与基本配置 链接linux服务器 目录结构 基本命令 软件安装 Linux 系统启动 启动过程 运行级别 Nginx详解 1.安装 方式一:yum安装 方式二:自定义 ...

  6. nginx 配置详解(转)

    nginx概述 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP服务器进行网站的发布处理,另外 ...

  7. Nginx配置详解

    序言 Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的.从2004年发布至今,凭借开源的力量,已经接近成熟与完善. Nginx功能丰富,可作为HTTP服务器,也 ...

  8. 【转】Nginx配置详解

    转自:http://www.cnblogs.com/knowledgesea/p/5175711.html Nginx常用功能 1. Http代理,反向代理:作为web服务器最常用的功能之一,尤其是反 ...

  9. 转发大神nginx配置详解

    序言 Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的.从2004年发布至今,凭借开源的力量,已经接近成熟与完善. Nginx功能丰富,可作为HTTP服务器,也 ...

  10. [转]Nginx配置详解

    Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的.从2004年发布至今,凭借开源的力量,已经接近成熟与完善. Nginx功能丰富,可作为HTTP服务器,也可作为 ...

随机推荐

  1. 索引超出了数组界限。 在 System.Collections.Generic.Dictionary`2.Resize

    博问:Dictionary 超出了数组界限 异常: Exception type: IndexOutOfRangeException Exception message: 索引超出了数组界限. 在 S ...

  2. Week-2-作业1

    第一章 概论 1.什么是程序? 答:在学习软件工程导论前,我们已经学习了一些计算机语言和数据结构这样的课程,并深刻的知道“程序=数据结构+算法”,但在学习中还是会产生如书中1.1讲所提到的那些疑问,二 ...

  3. Week2-作业一——《构建之法》三章精读之想

    Week2-作业一——精读<构建之法> 前言 其实我本人是不经常看书的,电子书倒是看了不少,实体书真的不经常看,但是为了这次作业的需求,我还是选择静下心来阅读一下这本<构建之法> ...

  4. iOS开发短信验证码封装 方便好用

    ---恢复内容开始--- 1.RootViewControler//  Copyright © 2016年 Chason. All rights reserved.// #import "V ...

  5. CANOpen的几种操作以及数据

    其实3年前在21ic就准备做这篇文章了,那时,CANOpen也只是刚刚在国内推广,所以几乎没有项目用到.现在有了实际的项目,完全确认了以前移植和测试的代码,所以列举一些CANOpen的底层操作以及数据 ...

  6. AWS EC2安装docker时的问题

    在AWS EC2的实例(Ubuntu)里面安装docker时,使用通常的安装步骤 :~$ sudo apt-get update :~$ sudo apt-get install docker 安装完 ...

  7. win32.gui.api.con(前置,鼠标点击,发送数据的Dome)

    # -*- coding: UTF-8 -*- import win32gui, win32con import os import time import win32gui import win32 ...

  8. Vue.js——60分钟browserify项目模板快速入门

    概述 在之前的一系列vue.js文章,我们都是用传统模式引用vue.js以及其他的js文件的,这在开发时会产生一些问题. 首先,这限定了我们的开发模式是基于页面的,而不是基于组件的,组件的所有代码都直 ...

  9. HBase 架构与工作原理2 - HBase 组件

    本文系转载,如有侵权,请联系我:likui0913@gmail.com 一.HBase 组件概览 Master-Slave 模式: HBase 体系结构遵循传统的 master-slave 模式,由一 ...

  10. IPV6的链路本地地址和站点本地地址的不同

    转帖 中关村 http://ask.zol.com.cn/x/2230274.html IPV6涉及到一个概念,link-local address, 中文叫“链路本地地址”,它的前缀是FE80::/ ...