一、介绍
Nginx 虚拟主机是一种在单个服务器上运行多个网站或应用的技术。
通过不同的配置来区分多个虚拟主机,每个虚拟主机可以拥有独立的域名、端口、文档根目录等设置。这样可以充分利用服务器资源,提高服务器的效率和灵活性。
在配置 Nginx 虚拟主机时,需要指定相关的主机名、端口、根目录等信息,以实现对不同网站或应用的区分和管理。
关于Nginx的安装可以参考:使用Docker安装Nginx
优点
高效利用资源:可以在一台服务器上运行多个网站,提高服务器的利用率。
灵活配置:可以根据不同的需求进行灵活的配置。
性能优越:Nginx 具有高性能,能够快速处理请求。
缺点
配置相对复杂:需要一定的技术知识和经验来进行配置。
维护难度:如果虚拟主机数量较多,维护起来可能会有一定难度。
配置方式
基于端口:使用不同的端口来配置虚拟主机。
基于 IP 地址:为每个虚拟主机分配不同的 IP 地址。
基于域名:通过不同的域名来区分不同的虚拟主机。
二、准备工作
在Nginx的html目录下,创建两个目录,分别代表两个不同的web项目
在 project1 目录下创建文件 index.html
写入以下内容:
html
<html>
<head>
<title>project1</title>
</head>
<body>
<h1> This is project1! </h1>
</body>
</html>
在 project2 目录下创建文件 index.html
写入以下内容:
html
<html>
<head>
<title>project2</title>
</head>
<body>
<h1> This is project2! </h1>
</body>
</html>
三、基于端口的虚拟主机配置
配置文件内容如下:
bash
server {
listen 85;
server_name localhost;
location / {
root /usr/share/nginx/html/project1;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
server {
listen 90;
server_name localhost;
location / {
root /usr/share/nginx/html/project2;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
修改完配置文件后,需要重新加载配置文件。
打开浏览器访问 http://你的ip地址:85 出现 project1
访问 http://你的ip地址:90 出现 project2
四、基于IP地址的虚拟主机配置
配置文件内容如下:
bash
server {
listen 192.168.10.10:80;
server_name localhost;
location / {
root /usr/share/nginx/html/project1;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
server {
listen 192.168.10.20:80;
server_name localhost;
location / {
root /usr/share/nginx/html/project2;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
修改完配置文件后,需要重新加载配置文件。
此时打开浏览器
输入 http://192.168.10.10 会访问project1
输入 http://192.168.10.20 会访问project2
五、基于域名的虚拟主机配置
配置文件内容如下:
bash
server {
listen 80;
server_name project1.testnginx.com;
location / {
root /usr/share/nginx/html/project1;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
server {
listen 80;
server_name project2.testnginx.com;
location / {
root /usr/share/nginx/html/project2;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
}
修改完配置文件后,需要重新加载配置文件。
需要配置hosts
bash
192.168.10.10 project1.testnginx.com
192.168.10.10 project2.testnginx.com
此时打开浏览器
输入 http://project1.testnginx.com 会访问project1
输入 http://project2.testnginx.com 会访问project2