NGINX配置详解及应用
目录
目录结构
# tree /application/nginx/


基础配置
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_tempclient_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;
}
}
location
- 作用
location指令的作用是根据用户请求的URI来执行不同的应用。
- 语法
location[=|~|~*|^~|@]uri{
···
}
- 说明
|
location |
[=|~|~*|^~|@] |
uri |
{···} |
|
指令 |
匹配标识 |
匹配的网站网址 |
匹配URI后要执行的配置段 |
上表中URI部分是关键,其可以是普通的字符串地址路径或者是正则表达式,当匹配成功则执行后面大括号里面的相关指令,正则表达式可有特殊字符。
- 特殊字符
= 表示精确匹配
~ 表示区分大小写的正则匹配
^~ 表示以某个常规字符串开头的url即可
~* 表示不区分大消息的正则匹配
!~(*!~) 表示不区分大小写不匹配的正则
/ 通配符,任何请求都能匹配到这个location,如果有任何其他location可以匹配,则会覆盖该location
虚拟主机
- 概念
虚拟主机在WEB服务里就是一个独立的网站站点,这个站点对应独立的域名(也可能是IP或端口),具有独立的程序及资源目录,可独立对外提供服务供用户访问。
Nginx使用一个server{}标签来标记一个虚拟主机,一个WEB服务里可有多个虚拟主机标签对,即同时可支持多个虚拟主机站点。
- 类型
基于域名的虚拟主机
应用:外部网站

基于端口的虚拟主机
应用:公司内部网站

基于IP的虚拟主机
应用:几乎不用

状态模块
在配置文件里,添加如下配置

# /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;
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跳转等。
访问认证
添加用户密码访问,只需添加方框内模块;

# 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配置详解及应用的更多相关文章
- Nginx高性能服务器安装、配置、运维 (3) —— Nginx配置详解
四.Nginx 配置详解 YUM方式安装的Nginx默认配置文件放在/etc/nginx目录下,使用Vim编辑/etc/nginx/nginx.conf: ---------------------- ...
- Nginx配置详解 http://www.cnblogs.com/knowledgesea/p/5175711.html
Nginx配置详解 序言 Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的.从2004年发布至今,凭借开源的力量,已经接近成熟与完善. Nginx功能丰富,可作 ...
- nginx配置详解(转)
Nginx 配置文件详解 user nginx ; #用户 worker_processes 8; #工作进程,根据硬件调整,大于等于cpu核数 error_log logs/nginx_error. ...
- Nginx配置详解(转)
转自:Nginx简介及配置文件详解 一 Nginx简介 Nginx是一款开源代码的高性能HTTP服务器和反向代理服务器,同时支持IMAP/POP3/SMTP代理服务 1.Nginx工作原理 Nginx ...
- 前端搭建Linux云服务器,Nginx配置详解及部署自己项目到服务器上
目录 搭建Linux云服务器 购买与基本配置 链接linux服务器 目录结构 基本命令 软件安装 Linux 系统启动 启动过程 运行级别 Nginx详解 1.安装 方式一:yum安装 方式二:自定义 ...
- nginx 配置详解(转)
nginx概述 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器:同时也是一个IMAP.POP3.SMTP代理服务器:nginx可以作为一个HTTP服务器进行网站的发布处理,另外 ...
- Nginx配置详解
序言 Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的.从2004年发布至今,凭借开源的力量,已经接近成熟与完善. Nginx功能丰富,可作为HTTP服务器,也 ...
- 【转】Nginx配置详解
转自:http://www.cnblogs.com/knowledgesea/p/5175711.html Nginx常用功能 1. Http代理,反向代理:作为web服务器最常用的功能之一,尤其是反 ...
- 转发大神nginx配置详解
序言 Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的.从2004年发布至今,凭借开源的力量,已经接近成熟与完善. Nginx功能丰富,可作为HTTP服务器,也 ...
- [转]Nginx配置详解
Nginx是lgor Sysoev为俄罗斯访问量第二的rambler.ru站点设计开发的.从2004年发布至今,凭借开源的力量,已经接近成熟与完善. Nginx功能丰富,可作为HTTP服务器,也可作为 ...
随机推荐
- 阅读<构建之法>第三10、11、12章并提出问题
<构建之法>第10.11.12章 第10章: 问题:对我们了解了用户的需求后,但是我们想法和做出来的软件会和用户的需求有偏差,比如风格.界面的修饰等等,那么我们程序猿怎样才能让自己的想法更 ...
- 《TCP/IP 详解 卷1:协议》第 10 章:用户数据报协议
引言 UDP 稍微扩展了IP协议,使得包可以在进程间传送,而不仅仅是在主机件.--<CSAPP> IP 数据报是指 IP 层端到端的传输单元.分组(packet)是 IP 层和链路层的传输 ...
- mysubmail 短信报警
https://www.mysubmail.com/chs/documents/developer/YPWD84 文本文档 官网:www.mysubmail.com 操作流程:快速接入短信 AP ...
- 关于“scrum站立会议”
每日站立会议是SCRUM方法中的一条关键实践,整个会议可能会比较混乱粗略,但推进进度的目标却非常清晰明确,并促使团队齐心协力朝共同目标迈进. 站立会议的功能很简单,作为一个以简短为特点的项目会议,所有 ...
- 对一致性Hash算法及java实现(转)
一致性Hash算法 关于一致性Hash算法,在我之前的博文中已经有多次提到了,MemCache超详细解读一文中"一致性Hash算法"部分,对于为什么要使用一致性Hash算法.一致性 ...
- HTTP压力测试工具wrk的安装及测试
本次在VMware虚拟机的CentOS6.3系统中进行安装wrk压测工具,具体如下: 一.预先安装需求项 为了安装顺利,不受权限的限制,首先可以把用户切换为root用户# su + 输入root用户对 ...
- vSphere下安装Hyper-V
在vSphere 5.5中默认是无法嵌套安装Hyper-V的,必须在vSphere中稍作修改. 1. 勾选这两个选项,如果是灰色,请升级虚拟机版本至最新: 2. 在配置文件中手动加入这一行参数: 3. ...
- mysql中字符串类型char(n)和varchar(n)的区别
n的含义 根据网络上找到的结果(不能保证准确),在5.0.3以后版本中,n均代表字符数,而不是字节数:我用来测试的版本是5.7.20,该版本中,n表示字符数. 验证过程如下 建表 CREATE TAB ...
- SET ANSI_NULLS ON,SET NOCOUNT ON,SET QUOTED_IDENTIFIER ON
SET ANSI_NULLS ONTransact-SQL 支持在与空值进行比较时,允许比较运算符返回 TRUE 或 FALSE. 通过设置 ANSI_NULLS OFF 可将此选项激活.当 ANSI ...
- BZOJ5089 最大连续子段和(分块)
假设所有操作都是对整个序列的.考虑每个子区间,区间和与其被加的值构成一次函数关系.最大子段和相当于多个子区间取最大值,答案显然就在这些一次函数构成的下凸壳上.如果预处理出凸壳,只要在凸壳上暴力跳就可以 ...