nginx 配置
<body>
<a name="top"></a>
</body>
<div class="blogStats">
</div><!--end: blogStats -->
</div><!--end: navigator 博客导航栏 -->
nginx虚拟主机配置
nginx虚拟主机配置
虚拟主机的概念
虚拟主机,就是把一台物理服务器划分成多个“虚拟”的服务器,每一个虚拟主机都可以有独立的域名和独立的目录
nginx虚拟主机的配置
nginx的虚拟主机就是通过nginx.conf中server节点指定的,想要设置多个虚拟主机,配置多个server节点即可
先看一个最简单的虚拟主机配置示例
server {
listen 80;
server_name a.test.com;
location / {
index index.html;
root /home/www/host_a/;
}
}
listen 80;
指定这个虚拟主机监听的是80端口
server_name a.test.com;
指定这个虚拟主机名为a.test.com,当用户访问a.test.com时,就有这个虚机主机进行处理
虚拟主机名可以有4种格式:
(1)准确的名字,例如此例中的a.test.com
(2)*号开头的,例如 *.test.com
(3)*号结尾的,例如 mail.*
(4)正则表达式形式,例如
server_name ~^www\d+\.test\.com$;
注意,使用正则表达式形式时,必须以'~'开头
server_name也可以同时指定多个,例如:
server_name test.com www.test.com *.test.com;
这时优先级为:
(1)确切的名字
(2)最长的以*起始的通配符名字
(3)最长的以*结束的通配符名字
(4)第一个匹配的正则表达式名字
location /
因为所有请求都是/开头的,所以这行表示匹配所有请求
index index.html;
指定此虚拟主机的默认首页为index.html
root /home/www/host_a/;
指定此虚拟主机的物理根目录为/home/www/host_a/
案例
(1)对两个域名配置相应的虚拟主机,指定不同的目录
a.test.com -> /home/www/a
b.test.com -> /home/www/b
配置
server {
listen 80;
server_name a.test.com;
#开启网站目录文件列表功能,访问目录时列出其中的文件列表,默认不开启
autoindex on;
index index.html;
root /home/www/a/;
}
server {
listen 80;
server_name b.test.com;
index index.html;
root /home/www/b/;
#禁止对self目录的访问
location /(self)/ {
deny all;
}
}
(2)对不同访问目录指定不同物理目录
server {
listen 80;
#使用正则格式,这里表示接受任何ip
server_name ~^\d+\.\d+\.\d+\.\d+$;
index index.html index.htm;
root /home/lg/www/;
location /share {
root /home/lg/Downloads;
}
location ^~ /Videos {
root /home/lg/;
autoindex on;
autoindex_exact_size on;
autoindex_localtime on;
allow all;
}
location ^~ /html5 {
root /home/lg/workspace/nodejs/;
index index.html index.htm;
}
location = /404.html {
root /usr/share/nginx/html;
}
}
autoindex_exact_size
默认为on,显示出文件的确切大小,单位是bytes
改为off后,显示出文件的大概大小,单位是kB或者MB或者GB
autoindex_localtime
默认为off,显示的文件时间为GMT时间。
改为on后,显示的文件时间为文件的服务器时间
allow all;
允许所以访问
虚拟主机,就是把一台物理服务器划分成多个“虚拟”的服务器,每一个虚拟主机都可以有独立的域名和独立的目录
nginx虚拟主机的配置
nginx的虚拟主机就是通过nginx.conf中server节点指定的,想要设置多个虚拟主机,配置多个server节点即可
先看一个最简单的虚拟主机配置示例
server {
listen 80;
server_name a.test.com;
location / {
index index.html;
root /home/www/host_a/;
}
}
listen 80;
指定这个虚拟主机监听的是80端口
server_name a.test.com;
指定这个虚拟主机名为a.test.com,当用户访问a.test.com时,就有这个虚机主机进行处理
虚拟主机名可以有4种格式:
(1)准确的名字,例如此例中的a.test.com
(2)*号开头的,例如 *.test.com
(3)*号结尾的,例如 mail.*
(4)正则表达式形式,例如
server_name ~^www\d+\.test\.com$;
注意,使用正则表达式形式时,必须以'~'开头
server_name也可以同时指定多个,例如:
server_name test.com www.test.com *.test.com;
这时优先级为:
(1)确切的名字
(2)最长的以*起始的通配符名字
(3)最长的以*结束的通配符名字
(4)第一个匹配的正则表达式名字
location /
因为所有请求都是/开头的,所以这行表示匹配所有请求
index index.html;
指定此虚拟主机的默认首页为index.html
root /home/www/host_a/;
指定此虚拟主机的物理根目录为/home/www/host_a/
案例
(1)对两个域名配置相应的虚拟主机,指定不同的目录
a.test.com -> /home/www/a
b.test.com -> /home/www/b
配置
server {
listen 80;
server_name a.test.com;
#开启网站目录文件列表功能,访问目录时列出其中的文件列表,默认不开启
autoindex on;
index index.html;
root /home/www/a/;
}
server {
listen 80;
server_name b.test.com;
index index.html;
root /home/www/b/;
#禁止对self目录的访问
location /(self)/ {
deny all;
}
}
(2)对不同访问目录指定不同物理目录
server {
listen 80;
#使用正则格式,这里表示接受任何ip
server_name ~^\d+\.\d+\.\d+\.\d+$;
index index.html index.htm;
root /home/lg/www/;
location /share {
root /home/lg/Downloads;
}
location ^~ /Videos {
root /home/lg/;
autoindex on;
autoindex_exact_size on;
autoindex_localtime on;
allow all;
}
location ^~ /html5 {
root /home/lg/workspace/nodejs/;
index index.html index.htm;
}
location = /404.html {
root /usr/share/nginx/html;
}
}
autoindex_exact_size
默认为on,显示出文件的确切大小,单位是bytes
改为off后,显示出文件的大概大小,单位是kB或者MB或者GB
autoindex_localtime
默认为off,显示的文件时间为GMT时间。
改为on后,显示的文件时间为文件的服务器时间
allow all;
允许所以访问
</div>
<div class="postDesc">posted @ <span id="post-date">2017-01-07 23:18</span> <a href="http://www.cnblogs.com/jun1019/">学不死</a> 阅读(<span id="post_view_count">1780</span>) 评论(<span id="post_comment_count">0</span>) <a href="https://i.cnblogs.com/EditPosts.aspx?postid=6260674" rel="nofollow">编辑</a> <a href="#" onclick="AddToWz(6260674);return false;">收藏</a></div>
</div>
<script type="text/javascript">var allowComments=true,cb_blogId=203108,cb_entryId=6260674,cb_blogApp=currentBlogApp,cb_blogUserGuid='284304dc-5a2e-e411-b908-9dcfd8948a71',cb_entryCreatedDate='2017/1/7 23:18:00';loadViewCount(cb_entryId);</script>
</div><!--end: forFlow -->
</div><!--end: mainContent 主体内容容器-->
<div id="sideBar">
<div id="sideBarMain">
<div id="calendar"><div id="blog-calendar" style="display:none"></div><script type="text/javascript">loadBlogDefaultCalendar();</script></div>
<div id="leftcontentcontainer">
<div id="blog-sidecolumn"><div id="sidebar_search" class="sidebar-block"></div><div id="sidebar_categories">
</div><!--end: sideBarMain -->
</div><!--end: sideBar 侧边栏容器 -->
<div class="clear"></div>
</div><!--end: main -->
<div class="clear"></div>
<div id="footer">
Copyright ©2017 学不死
昵称:
不改了 退出 订阅评论
[Ctrl+Enter快捷键提交]
【免费】从零开始学编程,开发者专属实验平台免费实践!
· 特斯拉在香港销量大幅下滑 因免税政策取消
· 36氪再陷“涉嫌诈骗”漩涡,中国股权众筹已近落幕
· 淘宝想当脑洞青年,造物节是一个巨型功放
· 新华社再评《王者荣耀》:手游不该“游戏”历史
· 8月1日起免收银行卡年费及异地取现手续费等6项费用
» 更多新闻...
· 程序员的工作、学习与绩效
· 软件开发为什么很难
· 唱吧DevOps的落地,微服务CI/CD的范本技术解读
· 程序员,如何从平庸走向理想?