上一篇 Nginx 配置文件
Nginx 虚拟主机配置
虚拟主机是一种特殊的软硬件技术,它可以将一台服务器分成多个虚拟的服务器,每个虚拟主机可以独立对外提供www服务,这样就可以实现一台主机对外提供多个web服务,每个虚拟主机之间是独立的,互不影响的
可以通过 nginx 进行虚拟主机的配置,只需要在 http {}
中添加一个 server {}
模块即可。nginx 虚拟主机的配置,一般分为三种:域名、端口和 ip。
基于域名
# 基于域名的虚拟主机配置
# 域名为 domain.cm
server {
server_name domain.cm *.domain.cm www.domain.*;
root html;
index index.html index.htm /index.php;
}
# 域名为 domain.cn
server {
server_name domain.cn;
root /var/web/;
index index.html;
}
-
server_name
指定虚拟主机的名字。可以指定多个名称,第一个为虚拟主机的名字。可以使用 “ * ” 替代服务器名称的开始或者最后部分。 -
root
设置请求的根目录,可以用绝对路径或相对路径,如root html;
会等于root /usr/local/nginx/html;
。而这样设置,当收到一个 domain.cm/index.html 请求时,/usr/local/nginx/html/index.html 文件将会被发送在响应中响应该请求。 -
index
定义将用做索引的文件。文件名称可以包含变量,按照指定的顺序进行文件检查的,最后一个参数可以是绝对路径。实际上 domain.cm 请求会被处理成 domain.cm/index.html 。
基于域名的虚拟主机配置,指定了虚拟主机名称、请求根目录和索引。在 nginx 配置文件中添加如上配置(添加 http {}
中)保存、重新加载配置文件 ( systemctl reload nginx
),这里使用虚拟机测试,需要在物理机的 hosts 文件中修改配置,如下 :
# ip 为自己虚拟机ip地址
192.168.107.156 domain.cm
192.168.107.156 domain.cn
在 /var/web/ 目录(没有该目录就新建一个)中新建一个 index.html,内容如下:
<html>
<head>
<title>hostname</title>
</head>
<body>
domain cn
</body>
</html>
之后在浏览器中输入 domain.cm 即可看到 nginx 的 “ Welcome to nginx! ” 页面。输入 domain.cn 则可以看到页面显示 “ domain cn ”
基于端口
添加以下配置
# 基于端口虚拟主机配置
server {
listen 8888;
server_name domain.cm;
root /var/web/port/;
index index.html;
}
listen
设置 IP 的地址和端口(可以只设置地址或只设置端口,地址可以是主机名),或者设置一个服务器用于接收请求的套接字路径,如下:
listen 127.0.0.1:8000;
listen 127.0.0.1;
listen 8000;
listen *:8000;
listen localhost:8000;
listen unix:/var/run/nginx.sock;
添加 /var/web/port/index.html 文件,如下:
<html>
<head>
<title>port</title>
</head>
<body>
domain cm 8888
</body>
</html>
执行 systemctl reload nginx
并访问 domain.cm:8888 可以看到页面中显示的内容正是 /var/web/port/index.html 的内容 “ domain cm 8888 ”。
基于ip
添加以下配置
# 基于 ip 地址的虚拟主机配置
server {
listen 80;
server_name 192.168.107.156;
root /var/web/ip/;
index index.html;
}
添加 /var/web/ip/index.html 文件,如下:
<html>
<head>
<title>ip</title>
</head>
<body>
ip 192.168.107.156
</body>
</html>
systemctl reload nginx
并访问 192.168.107.156 可以看到页面中显示的内容正是 /var/web/ip/index.html 的内容 “ ip 192.168.107.156 ”。
以上就是关于 nginx 虚拟主机配置的内容。
参考
下一篇 Nginx location
网友评论