nginx生产环境常用功能include 、虚拟主机别名、rewrite、nginx status详细解析

一.配置文件优化之include参数

如果我们用nginx搭建虚拟主机,虚拟主机太多,我们不能把所有配置放置在nginx.conf中吧?那样这个配置文件就太大了,看起来很乱,所有这时就产生了

include参数:

大家如果了解apache软件,就会知道apache主配置包含虚拟主机子文件的方法,其实nginx也借鉴了apache的这种包含方法

nginx的主配置文件为nginx.conf,主配置文件所包含的所有虚拟主机的子配置文件会统一放入extra(这个名字随便起的)目录中,虚拟主机的配置文件会按照网站的域名或者功能取名,例如www.conf bbs.conf  blog.conf 等

当然如果虚拟主机的数量不是很多,也可以把多个虚拟主机配置成一个文件,仅仅和nginx的主配置文件nginx.conf分开即可

include实战例子:

修改nginx目录格式如下:

worker_processes  1;

events {

worker_connections  1024;

}

http {

include       mime.types;

default_type  application/octet-stream;

sendfile        on;

keepalive_timeout  65;

include extra/www.conf;

include extra/bbs.conf;

include extra/blog.conf;

}

或者上面三句话用一句话代替: include extra/*.conf;

这样nginx的主配置文件就清爽好多了

在conf下先把extra目录建出来

mkdir -p /app/zpy/nginx/conf/extra

编辑www.conf 

server {

listen       80;

server_name  www.vipdailiang.com;

location / {

root   html/www;

index  www.html;

}

}

编辑bbs.conf 

server {

listen       80;

server_name  bbs.vipdailiang.com;

location / {

root   html/bbs;

index  bbs.html;

}

}

blog.conf 原理同上

[html]# echo "bbs.vipdailiang.com" > bbs/bbs.html

[html]# echo "www.vipdailiang.com" > www/www.html

[html]# echo "blog.vipdailiang.com" > blog/blog.html

nginx配置文件检查及重新加载

/app/zpy/nginx/sbin/nginx -t

/app/zpy/nginx/sbin/nginx -s reload

最后验证:

[[email protected] conf]#curl bbs.vipdailiang.com

bbs.vipdailiang.com

[[email protected] conf]# curl blog.vipdailiang.com

blog.vipdailiang.com

[[email protected] conf]# curl www.vipdailiang.com

www.vipdailiang.com

二.nginx虚拟主机别名和rewrite重写搞定跳转需求

之前有一个印象很深的需求,领导要求在浏览器输入zipeiyi.com能够自动跳转到www.zipeiyi.com ,想了很久,开始无从下手,后来是用硬件负载均衡搞定的,其实nginx有两种方式可以搞定

1.虚拟主机别名配置很轻松的就能实现,下面我们来看一下整个配置过程

所谓虚拟主机别名就是为 虚拟主机设置除了主域名以外的一个或者多个域名

1)修改配置文件如下项:

server {

listen       80;

server_name  www.vipdailiang.com vipdailiang.com;

location / {

root   html/www;

index  www.html;

}

}

2)然后本地测试环境还是需要添加域名解析的

linux在/etc/hosts 里添加

10.0.70.3 vipdailiang.com www.vipdailiang.com

3)最后进行测试

curl www.vipdailiang.com 看看返回结果 和 curl vipdailiang.com 返回结果是否一样

[[email protected] extra]# curl www.vipdailiang.com

www.vipdailiang.com

[[email protected] extra]# curl vipdailiang.com

www.vipdailiang.com

结果是一样一样的

2.rewrite重写功能

什么是rewrite重写功能

和apache等web服务软件一样,nginx的rewrite功能主要是实现URL地址重写

nginx的rewrite功能需要PCRE软件支持,即通过perl的正则表达式进行匹配,所以我们开始编译安装nginx之前,都需要安装PCRE软件

rewrite的语法:

rewrite regex replacement [flag];

rewrite是实现URL重写的关键指令,根据regex(正则表达式)部门的内容,重定义到replacement部分,结尾是flag标记,下面是一个简单的URL rewrite跳转的例子

server {

listen       80;

server_name   vipdailiang.com;

rewrite ^/(.*) www.vipdailiang.com/$1 permanent;

}

server {

listen       80;

server_name  www.vipdailiang.com ;

location / {

root   html/www;

index  www.html;

}

}

rewrite为固定关键字,表示开启了rewrite规则

regex(perl语言的正则表达式) ^/(.*) 代表匹配所有

$1 是取前面正则表达式的内容

结尾是permanent ,是永久301重定向的标记

效果就是你在浏览器输入 vipdailiang.com 浏览器会自动跳转到www.vipdailiang.com

rewrite功能在企业内用的非常广泛例如:

  1. 例子中所说的情况
  2. 网站更换新域名后,让旧域名的访问跳转到新域名上,例如让 京东的360buy换成jd.com

三.nginx status模块介绍

nginx软件的功能模块中有一个 ngx_http_sub_status_module模块,这个模块的主要功能是记录nginx的基本访问信息,让使用者了解nginx的工作状态,例如连接数等信息。所以在编译nginx的时候需要增加这个模块

可通过如下方式检查编译nginx的时候是否设定了上述模块:

[[email protected] /]# /app/zpy/nginx/sbin/nginx -V

nginx version: nginx/1.8.1

built by gcc 4.4.7 20120313 (Red Hat 4.4.7-17) (GCC)

built with OpenSSL 1.0.1e-fips 11 Feb 2013

TLS SNI support enabled

configure arguments: --user=zpy --group=zpy --prefix=/app/zpy/nginx-1.8.1/ --with-http_stub_status_module --with-http_ssl_module

1.创建status.conf文件

[[email protected] extra]# cat >>/app/zpy/nginx/conf/extra/status.conf<<EOF

##status

server{

listen 80;

server_name status.vipdailiang.com ;

location / {

stub_status on ;

access_log off ;

}

}

EOF

2.确保主配置文件里nginx.conf里面能够访问到status.conf

include extra/*.conf;

4.添加解析

在/etc/hosts(linux) 添加 10.0.70.3  status.vipdailiang.com

在C:\Windows\System32\drivers\etc\hosts 添加 10.0.70.3  status.vipdailiang.com

5.检查配置和重新加载配置文件

../sbin/nginx -t

../sbin/nginx -s reload

最后在浏览器输入:

解释下这段话的意思:

server 表示: 表示nginx启动到现在一共处理了83个连接

accept 表示: 表示 nginx一共建立了 83次握手

请求丢失是 = 握手 -连接 =83(第二个)-83 =0 ,就是没有丢失的请求

handled request表示: 一共处理了105次请求

writing为nginx 返回给客户端的header信息数

reading为nginx 读取到客户端的header数

waiting为 nginx已经处理完正在等候下一次请求指令的驻留连接。

在开启keep-alive情况下,这个值等于active-(reading+writing)

下一篇请看: nginx错误日志、nginx访问日志、nginx访问日志的轮询切割

时间: 2024-11-08 23:15:19

nginx生产环境常用功能include 、虚拟主机别名、rewrite、nginx status详细解析的相关文章

nginx常用配置系列-虚拟主机

本来准备详尽的出一份nginx配置讲解,但nginx功能配置繁多,平常使用中使用最多的一般有: 1. 虚拟主机配置 2. HTTPS配置 3. 静态资源处理 4. 反向代理 ================= 虚拟主机配置 ================= 先说虚拟主机配置,nginx的核心配置文件在nginx的安装目录下conf目录中(如果是CentOS通过yum安装则在/etc/nginx目录中) 在conf目录下创建vhost目录,方便管理虚拟主机的配置文件 mkdir vhost 以e

配置nginx虚拟主机别名及别名企业场景应用说明

nginx虚拟主机的别名配置 1    虚拟主机别名介绍及配置 所谓虚拟主机别名,就是为了虚拟主机设置除了主域名以外的一个或多个域名名字,这样能实现用户访问的多个域名对应同一个虚拟主机网站的功能. 以www.etiantian.org域名的虚拟主机为例,为其增加一个别名etiantian.org,使得访问 [[email protected] bbs]# curl -I 51cto.com HTTP/1.1 301 Moved Permanently Date: Sun, 20 Aug 2017

在Nginx中部署基于IP的虚拟主机

一.虚拟主机概念 虚拟主机是在网络服务器上划分出一定的磁盘空间供用户放置站点.应用组件等,提供必要的站点功能.数据存放和传输功能.所谓虚拟主机,也叫"网站空间", 就是把一台运行在互联网上的服务器划分成多个"虚拟"的服务器,每一个虚拟主机都具有独立的域名和完整的Internet服务器(支持WWW.FTP. E-mail等)功能,从用户角度来看,每台虚拟主机和一台独立的服务器完全相同,在IP地址日益紧张的今天,基于域名的虚拟主机要比基于IP的虚拟主机 使用的更加广泛.

CentOS7.4—nginx应用之基于域名的虚拟主机

Nginx功能应用-虚拟主机目录:第一部分:准备工作第二部分:搭建nginx第三部分:搭建基于域名的虚拟主机 第一部分 准备工作一:服务器:Linux系统-CentOS 7.4:IP地址:192.168.80.10 客户端:以WIN7为例,测试验证结果,与服务器在同一网段:IP地址:192.168.80.2 二:准备压缩包 三:将防火墙与selinux关闭 第二部分 安装Nginx服务一:安装编译工具与插件[[email protected] ~]# yum -y install \ gcc \

windows环境利用apache 配置虚拟主机

1.修改http.host #LoadModule vhost_alias_module modules/mod_vhost_alias.so #Include conf/extra/httpd-vhosts.conf 去掉这两项的# 2.修改httpd-vhosts.conf添加如下内容 <VirtualHost 127.0.0.1:80> DocumentRoot D:/wamp/www/trc ServerName www.abc.com </VirtualHost> 3.修

运维生产环境常用脚本

1,抓取局域网在线ip,额外获取相关信息,eg,mac,请自行添加修改脚本相关参数 aliveHostsCapture脚本下载 运维生产环境常用脚本,布布扣,bubuko.com

十二周二次课 12.6 Nginx安装 12.7 默认虚拟主机 12.8 Nginx用户认证 12.

十二周二次课 12.6 Nginx安装 12.7 默认虚拟主机 12.8 Nginx用户认证 12.9 Nginx域名重定向 12.6 Nginx安装 12.7 默认虚拟主机 12.8 Nginx用户认证 12.9 Nginx域名重定向 原文地址:http://blog.51cto.com/wbyyy/2087031

使用nginx进行反向代理(配置虚拟主机)

需求:使用不同的域名.访问相同的ip,获取到不同的端口服务器 (Linux服务器) 安装nginx需要的环境(有可能安装上的) nginx是C语言开发,建议在linux上运行,本教程使用Centos6.5作为安装环境. gcc 安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装 yum install gcc-c++ PCRE PCRE(PerlCompatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表

Nginx反向代理1--基本介绍-虚拟主机

1   Nginx 1.1   什么是nginx Nginx是一款高性能的http 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器.由俄罗斯的程序设计师Igor Sysoev所开发,官方测试nginx能够支支撑5万并发链接,并且cpu.内存等资源消耗却非常低,运行非常稳定.开源.免费. 1.2   Nginx的应用场景 1.http服务器.Nginx是一个http服务可以独立提供http服务.可以做网页静态服务器. 2.虚拟主机.可以实现在一台服务器虚拟出多个网站.例如个人网站