Nginx是一个高性能的HTTP以及反向代理服务器,同时提供了诸如邮件、TCP/UDP代理服务以及负载均衡等功能。在本文中,将初步的介绍nginx安装、使用及其基本配置,并以一个使用者视角提供一些简单需求下的nginx配置。 对于windows用户,Nginx官网提供了二进制包的下载。 对于Unix-like的用户,可以使用包管理工具下载,例如: 另外,也可直接通过源码编译。Nginx的源代码BSD协议开源,可通过官网或Github获得其源码。 在完成Nginx的安装后,可以通过 另外,Nginx提供了下列几个参数: 启动nginx后,可访问本地80端口测试nginx是否正常运行。 Nginx配置文件通常位于 Nginx配置包括了简单命令以及块命令。其中,块命令中可以包含简单命令以及块命令。其语法规则如下: 下面是一个简单的Nginx配置示例: 在了解了基本的Nginx配置规则后,下面通过几个示例来介绍Nginx的使用。 张三编写了一个本地门户网站,准备通过Nginx将其公开到互联网上。站点内容存放在 随着网站的发展,图片资源文件也越来越多。为了方便对代码的管理,张三决定将图片资源转移到 为了实现张三需要的效果,需要定义图片资源对应的location块 网站的发展越来越快,张三准备在网站中支持音频资源,但是不像图片资源一样都在url中包含 在Nginx配置文件中使用正则表达式,需要以 在网站上线后,张三准备将自己的博客也放到服务器上。上一节介绍过, 对于 但是一直通过ip及端口访问体验非常糟糕,于是张三便购买了自己的域名 对于使用通配符的名称, 当使用 本文中简单介绍了关于Nginx的安装、配置以及使用,后续将会继续深入了解Nginx的反向代理、负载均衡等功能,并在源码层面上对Nginx进行分析。Nginx安装
# 采用deb包的Linux,如Debian、Ubuntu $ apt-get install nginx # 采用rpm包的Linux,如RedHat、CentOS $ yum install nginx # MacOS $ brew install nginx # FreeBSD $ pkg_install -r nginx # ...
Nginx使用
nginx
命令启动,并可以使用nginx -s [signal]
执行特定的操作:
reload
:重新加载配置reopen
:重新打开日志文件stop
:快速退出nginx,无论是否存在正在处理中的请求quit
:在所有处理中的请求结束后再退出Nginx
-h
:显示帮助信息-v
:显示版本信息-V
:显示版本及编译配置信息-t
:检查配置文件正确性-T
:检查配置文件正确性并输出配置信息-q
:检查配置时不输出非错误的信息-p prefix
:指定路径前缀-c filename
:指定配置文件-g directives
:传入配置文件外的参数Nginx配置
/usr/local/nginx/conf
、/etc/nginx
或/usr/local/nginx/etc
目录下,在修改配置后可以通过nginx -t
测试并通过nginx -s reload
命令重新加载配置。# 简单命令 命令 参数; # 块命令 块名 { 命令 参数; # ... }
use nginx; http { server { location / { root /data/www; } } }
静态内容提供
/data/www
目录下,需要实现通过服务器的ip可以访问该网站。使用下方的配置替换nginx.conf中的http
模块。http { server { root /data/www; } }
http
模块包括了有关与HTTP服务的相关配置,它需要位于Nginx主模块上下文中(即配置文件中最外层,而非其他块中)。server
块用于定义一个虚拟服务及其配置(即一个站点),它需要位于http
上下文中。Nginx的http服务支持创建多个虚拟服务,每个虚拟服务对应于一个http
块中的server
配置块。对于一个虚拟服务,它默认会监听80端口的所有请求,并根据请求及配置寻找对应的资源。在server
块中,可使用root
命令设定资源的目录,即上例中所有的请求将获取/data/www
目录下定义的资源。/data/images
目录下。由于图片目录不再位于站点目录下,所以需要修改nginx配置使当url包含/images/
是前往/data/images
目录寻找对应资源。http { server { root /data/www; # 等同于: # location / { # root /data/www; # } location /images/ { root /data/images; } } }
location
块用于对一些特定的URL进行配置,格式为location [url匹配规则] { }
,它需要位于server
块或其他location
块中。location /images/ { }
。当请求路径包含/images/
时,需要告知nginx资源目录为/data/images
,所以在location块中,也添加了root /data/images;
命令指定资源目录。正则匹配
/images/
。为了实现这个需求,可以使用正则表达式匹配资源后缀名。当资源后缀为音频格式时(如.mp3
、.wav
等),请求目录将为/data/musics
,否则仍为/data/www
或/data/images
。http { server { # ... location ~ .(mp3|wav)$ { root /data/musics; } } }
~
作为标志,其后跟着自定的正则规则。例如例子中的.(mp3|wav)$
代表了匹配.mp3或.wav结尾的请求地址。多站点
http
块中可以有多个server
用于提供多个网站,那为了增加这个博客就只需要再加个server
块就行了。但是张三很快意识到了一个新的问题,增加了server
块后检查配置文件,得到了这样一个警告信息:nginx: [warn] conflicting server name "" on 0.0.0.0:80, ignored
,即多个服务配置监听同个端口,Nginx将忽略后定义的服务配置。为了解决这个问题,张三决定把博客的端口设置为8080。http { # ...之前的内容 server { listen 8080; location / { root /data/blog; } } }
listen
命令用于指定服务监听的地址及端口,其格式为listen [地址]:[端口] [其它选项]
。未显式使用listen
命令的情况下,服务将使用80端口(HTTP)服务或443端口(HTTPS服务)。对于一个服务,可监听多个地址及端口,即listen
命令可多次使用。下面是listen
命令的示例:listen 192.168.1.1:80; listen 127.0.0.1; listen [:::a83f:3d82]:80; # IPv6 listen 443 ssl;
listen
命令的选项,有以下几个常用的选项:
default_server
:无其它匹配服务的情况下的默认服务,在未指定的情况下第一个server会被隐式设为default_server
。ssl
:必须使用SSL,即通过HTTPS访问。zhangsan.com
。通过www.zhangsan.com
可以访问门户网站,通过blog.zhangsan.com
访问博客,无需使用非80端口。于是,就可以使用Nginx的server_name
命令指定虚拟服务的识别路径。http { server { server_name blog.zhangsan.com; # ... } server { server_name www.zhangsan.com; # ... } }
server_name
命令的格式为server_name hostname1 [hostname2...]
。对于一个server
块,可分配一个或多个主机名,nginx会根据请求头部的Host
字段匹配到对应的服务。下面是server_name
的几个示例:server_name www.zhangsan.com; server_name www.zhangsan.com zhangsan.com; server_name *.zhangsan.com; server_name .zhangsan.com; # *.zhangsan.zhangsan.com server_name *.zhangsan.*; server_name ~^(www).zhangsan.com$; # 使用较为复杂的正则表达式 server_name _; server_name "";
*
只能在最前端或最后端,例如w*.zhangsan.com
是不合法的。server_name _
时,该服务将匹配任意路径。当没有使用server_name
时,会隐式设置为server_name ""
,该服务为无匹配服务情况下的默认服务。结束语
参考资料
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算