我们已经准备好了,你呢?

2024我们与您携手共赢,为您的企业形象保驾护航!

Nginx虚拟主机配置中具体写法详解

更新时间:2016年3月19日 09:34:10 作者:

本文主要介绍Nginx虚拟主机配置中的具体写法。服务器名称是虚拟主机中必须配置的重要参数。有需要的朋友可以参考一下。

该指令可以根据域名设置虚拟主机。根据请求头的内容,一台IP服务器可以配置多个域名。以下参数有效:

server_name jb51.net;
server_name jb51.net www.jb51.net;
server_name *.jb51.net;
server_name .jb51.net;
server_name nginx.*;
server_name jb51.netg bucknell.net brackley.org;
server_name localhost litchfield bleddington;
server_name "";

多个域名之间用空格分隔。 nginx允许虚拟主机有一个或多个名称,也可以使用通配符“*”来设置虚拟主机的名称。在上面的例子中我们看到了很多特别的东西:

第一组示例,首先定义为,然后来自的请求将被发送到主机。第二个示例配置 和 ,然后将请求 和 发送到该主机。

*。和 。是等效的配置,设置主机来处理所有子域,例如等。

第二组配置 nginx.* 来配置服务器处理所有以 nginx 开头的请求。例如,,,,

下一组第一个配置将主机设置为处理来自三个域名的请求。 nginx 允许设置无效域名的名称。例如,在下面的配置中,我们可以看到 、 和 三个不是有效域名的示例。 nginx 只查找请求的 HTTP 中的域名,但不判断域名是否有效。在此示例中,这些主机名可以在 /etc/hosts 中配置。在本地调试时,有时使用非域名主机名更合适。

最后一组示例设置为空双引号,告诉 nginx 捕获所有未指定或未在其他示例中指定的请求。

总结一下,收到请求后指令的匹配顺序是:

1、精准匹配,例如:

server { listen 80; server_name domain.com www.domain.com; ...}

2. 以通配符开头的字符串:

server { listen 80; server_name .domain.com;...}

3. 以通配符结尾的字符串:

server { listen 80; server_name www.; ...}

4、匹配正则表达式:

server { listen 80; server_name ~^(?.+).domain.com$;...}

nginx会按照1、2、3、4的顺序来匹配名字,只有一项匹配到才会停止搜索,所以我们在使用这个命令的时候,一定要分清楚它的匹配顺序(和命令类似)。

该命令一个非常实用的功能就是可以使用正则表达式捕获功能,可以尽可能的简化配置文件。毕竟太长的配置文件日常维护也很不方便。以下是2个具体应用:

1. 在一个区块中配置多个站点:

复制代码代码如下:

{ 80; ~^()?(.+)$;索引index..html;根/数据//$2; }

您网站的主目录应如下所示:

复制代码代码如下:

/数据///数据///数据///数据//

这样就可以仅使用一个块来完成多个站点的配置。

2. 为一个站点配置多个二级域名。

在实际的网站目录结构中,我们通常会为网站的二级域名创建一个单独的目录。同样,我们可以使用正则捕获在一个区块中配置多个二级域名:

server {
listen 80;
server_name ~^(.+)?.domain.com$;
index index.html;
if ($host = domain.com){
rewrite ^ http://www.domain.com permanent;
}
root /data/wwwsite/domain.com/$1/;}

站点的目录结构应如下所示:

/data/wwwsite/domain.com/www//data/wwwsite/domain.com/nginx/

这样访问时根目录为/data///www/,访问时为/data///nginx/,以此类推。

下面的if语句的作用是重定向方向,不仅解决了网站主目录访问的问题,还增加了域名在SEO中的权重。

二维码
扫一扫在手机端查看

本文链接:https://by928.com/6821.html     转载请注明出处和本文链接!请遵守 《网站协议》
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。

项目经理在线

我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

在线客服
联系方式

热线电话

13761152229

上班时间

周一到周五

公司电话

二维码
微信
线