Nginx 虚拟主机配置实战

前言

Nginx 的虚拟主机功能允许单个 Nginx 服务器为多个域名或 IP 地址提供服务,无需为每个域名运行单独的 Nginx 实例。这篇文章介绍如何配置基于域名和基于 IP 的虚拟主机。

创建项目路径

1
2
3
4
5
6
7
# 创建项目目录
mkdir -p /var/www/site1
mkdir -p /var/www/site2

# 创建测试页面
echo "<h1>Welcome to Site1</h1>" > /var/www/site1/index.html
echo "<h1>Welcome to Site2</h1>" > /var/www/site2/index.html

配置虚拟主机

基于域名的虚拟主机

编辑 Nginx 配置文件 /etc/nginx/nginx.conf 或创建单独的配置文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
server {
listen 80;
server_name site1.example.com;
root /var/www/site1;
index index.html;
}

server {
listen 80;
server_name site2.example.com;
root /var/www/site2;
index index.html;
}

基于端口的虚拟主机

1
2
3
4
5
6
7
8
9
10
11
12
13
server {
listen 8080;
server_name localhost;
root /var/www/site1;
index index.html;
}

server {
listen 8081;
server_name localhost;
root /var/www/site2;
index index.html;
}

重启 Nginx

1
2
3
4
5
# 测试配置
nginx -t

# 重启 Nginx
systemctl restart nginx

本地测试

在本地 /etc/hosts 文件中添加域名映射:

1
2
127.0.0.1 site1.example.com
127.0.0.1 site2.example.com

然后访问 http://site1.example.comhttp://site2.example.com 即可看到不同的页面。

常见问题

❌ 403 Forbidden

原因:Nginx 没有权限访问目录。

解决

1
2
chmod -R 755 /var/www/site1
chown -R nginx:nginx /var/www/site1

❌ 502 Bad Gateway

原因:后端服务未启动或配置错误。

解决:检查 proxy_passfastcgi_pass 配置是否正确。


以上就是 Nginx 虚拟主机配置的全部内容。


Nginx 虚拟主机配置实战
https://www.cloudetopia.top/2024/06/14/2024-06-14-Nginx虚拟主机的配置/
Beitragsautor
MIutopia
Veröffentlicht am
2024年6月14日
Urheberrechtshinweis