目录
(3)location 为某个请求URI(路径)建立配置,详细信息见官网
Nginx的虚拟主机的配置
在 安装好tengine后编写服务启动脚本中编写了nginx的服务脚本,以后我们只要修改了配置文件,都要重新启动或者重新加载该服务。使用service nginx (stop|start|reload|restart)操作。
tengine是由淘宝网发起的Web服务器项目。它在Nginx的基础上,针对大访问量网站的需求,添加了很多高级功能和特性。Tengine的性能和稳定性已经在大型的网站如淘宝网,天猫商城等得到了很好的检验。它的最终目标是打造一个高效、稳定、安全、易用的Web平台(引自tengine官网)。nginx [engine x]是Igor Sysoev编写的一个HTTP和反向代理服务器,另外它也可以作为邮件代理服务器。
nginx虚拟主机,是通过在核心模块ngx_http_core_module中的server来配置。
1.server的语法:server{...}
2.server内的一些主要配置
(1)listen
语法见官网介绍
listen address
[:port
]...;
listen port...;
设置nginx监听地址,nginx从这里接受请求。对于IP协议,这个地址就是address
和port
;对于UNIX域套接字协议,这个地址就是path
。 一条listen指令只能指定一个address
或者port
。 address
也可以是主机名。
(2)server_name
设置虚拟主机名,比如:
server { server_name example.com www.example.com; }
如果多个主机名,第一个为首要主机名。主机名前,后还可以使用通配符,具体的请看官网文档。
(3)location 为某个请求URI(路径)建立配置,详细信息见官网
语法: | location [ location |
3.nginx的虚拟主机配置方法
nginx没有明显分隔IP-based(基于IP地址)和name-based(基于“Host”请求头)这两种类型的虚拟主机, 而是用listen指令描述虚拟主机接受连接的地址和端口,用server_name指令列出虚拟主机的所有主机名。
nginx官网在Nginx如何处理一个请求说明了主机的配置方法。
(1)基于名字的虚拟主机
下面配置两个虚拟主机,只有主机名不一样,每个主机对应的web站点路径不同,相当于有两个web站点:www.zdxh.com 和www.zdxh1.com。
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
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 www.zdxh.com;
location / {
root html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
server {
listen 80;
server_name www.zdxh1.com;
location / {
root /www/html;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
}
www.zdxh1.com对应的location是/www/html,我们先建目录 /www/html([root@node1-1 ~]# mkdir -p /www/html),然后在该目录下建文件index.html,内容如下:<h1>hello tengine</h1>
重新启动nginx:service nginx restart
在windows的hosts文件配置主机名
在windows浏览器输入上面两个网址,分别显示如下:
以上是基于名字的虚拟主机的配置。
(2)基于监听端口的虚拟主机的配置
a.假设,我们配置的server_name都是www.zdxh.com,但是监听端口一个是80,另外一个是90,则这种就是基于端口的配置。
b.重新启动nginx
c.测试:
(3)基于IP的虚拟主机的配置
这个了解就行,需要在网卡上绑定另外的IP,然后在listen那里配置IP:Port就行。
重启nginx后的测试结果:
总结:上面介绍了nginx中配置虚拟主机的三种方法,其中第1、2种要掌握,第三种了解即可。