在Nginx中增加一个虚拟主机(Virtual Host)是配置Nginx服务器以支持多个网站或域名的常用方法,以下是一个详细的步骤指南,包括如何设置一个新的虚拟主机。

配置Nginx虚拟主机的基本步骤
准备域名和SSL证书(如果需要)
- 确保你已经将域名解析到了Nginx服务器的IP地址。
- 如果你的网站需要HTTPS,你还需要获取SSL证书,并安装到服务器上。
编辑Nginx配置文件
- 打开Nginx的配置文件,通常情况下,这个文件位于
/etc/nginx/nginx.conf或者/etc/nginx/sitesavailable/目录下的一个特定文件。
添加虚拟主机配置
- 在
server块中添加一个新的虚拟主机配置。
以下是一个示例配置:
server {
listen 80; # 监听80端口,如果需要HTTPS则改为443
server_name example.com www.example.com; # 指定域名,可以有多个
# SSL配置(如果需要)
# listen 443 ssl;
# ssl_certificate /etc/ssl/certs/example.com.crt;
# ssl_certificate_key /etc/ssl/private/example.com.key;
# 网站根目录
root /var/www/example.com;
# 服务器名指向
index index.html index.htm index.php;
# 转发PHP请求到PHPFPM
location ~ .php$ {
include snippets/fastcgiphp.conf;
fastcgi_pass unix:/var/run/php/php7.4fpm.sock; # 根据你的PHP版本和安装路径修改
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# 其他配置...
}
添加错误页面(可选)
- 在虚拟主机配置中,你可以添加自定义的错误页面。
error_page 404 /404.html; error_page 500 502 503 504 /50x.html;
保存并重新加载Nginx配置
- 保存修改后的配置文件。
- 重新加载Nginx以应用新的配置。
sudo systemctl reload nginx
表格说明
| 配置参数 | 说明 |
|---|---|
listen |
指定服务器监听的端口,通常是80(HTTP)或443(HTTPS)。 |
server_name |
指定虚拟主机的域名,可以包含多个域名,用空格分隔。 |
root |
指定网站内容的根目录。 |
index |
指定网站首页文件。 |
location |
用于配置URL的匹配规则和对应的处理方式。 |
fastcgi_pass |
指定PHP请求转发到PHPFPM的路径。 |
error_page |
指定错误页面,当请求错误时,将重定向到指定页面。 |
FAQs
Q1: 如何查看Nginx配置是否正确?
A1: 可以使用nginx t命令来测试Nginx配置文件的正确性,如果配置正确,将返回一个成功的消息。

Q2: 如何删除一个虚拟主机配置?
A2: 删除虚拟主机配置通常涉及以下步骤:
- 删除配置文件中的虚拟主机块。
- 如果配置文件是直接编辑的,确保保存并重新加载Nginx配置。
- 如果配置文件位于
/etc/nginx/sitesavailable/目录,删除该文件并启用默认配置文件/etc/nginx/sitesenabled/中的默认配置。
通过以上步骤,你可以在Nginx中成功增加一个虚拟主机,确保在操作过程中备份原始配置,以防出现问题时可以恢复。

原创文章,发布者:酷盾叔,转转请注明出处:https://www.kd.cn/ask/145642.html