Nginx 的主要配置文件通常位于 /etc/nginx/nginx.conf
。在这个文件中,您可以找到各种配置指令,包括 HTTP 服务器、虚拟主机和其他设置。要配置虚拟主机,您需要在这个主配置文件中添加一个 server
块。
以下是一个虚拟主机配置示例:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
让我们逐步解释这个配置:
listen 80;
: 这行指定 Nginx 应该监听 80 端口(HTTP 默认端口)上的请求。server_name example.com www.example.com;
: 这行定义服务器应该响应的域名。在这个示例中,该虚拟主机将处理 example.com
和 www.example.com
的请求。root /var/www/example;
: 这行指定网站文件的根目录。Nginx 将在这个目录中查找网站文件。index index.html index.htm;
: 这行定义索引文件的名称。当访问目录而不指定文件名时,Nginx 将首先尝试加载 index.html
或 index.htm
文件。location / { try_files $uri $uri/ =404; }
: 这部分定义当请求匹配根目录(/)时的处理方式。try_files $uri $uri/ =404;
意味着 Nginx 将首先尝试加载请求的文件(如 index.html
),文件不存在,它将尝试加载目录索引(如 index.html/
),都不存在,则返回 404 错误。要在同一台服务器上托管多个网站,您需要为每个网站创建一个新的 server
块。以下是一个多个虚拟主机的配置示例:
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
server {
listen 80;
server_name another-example.com www.another-example.com;
root /var/www/another-example;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
在这个示例中,我们定义两个虚拟主机:一个用于 example.com
和 www.example.com
,另一个用于 another-example.com
和 www.another-example.com
。每个虚拟主机都有自己的根目录和索引文件设置。
在保存配置文件并重新加载 Nginx 后,您应该测试并验证您的虚拟主机配置是否正确。您可以使用命令行工具 nginx -t
来检查配置文件的语法是否正确。一切正常,您应该能够在浏览器中访问您的网站。
在配置虚拟主机时,还有一些其他注意事项需要考虑,例如:
Nginx 提供非常灵活和强大的虚拟主机配置功能。通过学习和掌握这些技能,您可以在单台服务器上托管多个网站,并提供高性能和可靠的 web 服务。