Nginx基于域名的虚拟主机怎么配置

发布时间:2021-12-13 09:17:31 作者:iii
来源:亿速云 阅读:168

Nginx基于域名的虚拟主机怎么配置

在现代Web服务器管理中,Nginx因其高性能、低资源消耗和灵活的配置而广受欢迎。基于域名的虚拟主机配置是Nginx中常见的需求之一,它允许我们在同一台服务器上托管多个网站,每个网站通过不同的域名进行访问。本文将详细介绍如何在Nginx中配置基于域名的虚拟主机。

1. 理解基于域名的虚拟主机

基于域名的虚拟主机(Virtual Host)是指在同一台服务器上,通过不同的域名来区分不同的网站。例如,假设我们有两个域名:example.comanotherexample.com,我们希望这两个域名分别指向不同的网站内容。通过Nginx的虚拟主机配置,我们可以实现这一需求。

2. 准备工作

在开始配置之前,确保你已经完成以下准备工作:

3. 配置Nginx虚拟主机

3.1 创建网站目录

首先,我们需要为每个域名创建一个独立的网站目录。假设我们有两个域名:example.comanotherexample.com,我们可以创建如下目录结构:

sudo mkdir -p /var/www/example.com/html
sudo mkdir -p /var/www/anotherexample.com/html

接下来,我们为每个目录创建一个简单的index.html文件:

sudo nano /var/www/example.com/html/index.html

在文件中输入以下内容:

<!DOCTYPE html>
<html>
<head>
    <title>Welcome to Example.com!</title>
</head>
<body>
    <h1>Success! The example.com virtual host is working!</h1>
</body>
</html>

保存并退出。同样的步骤为anotherexample.com创建index.html文件:

sudo nano /var/www/anotherexample.com/html/index.html

输入以下内容:

<!DOCTYPE html>
<html>
<head>
    <title>Welcome to AnotherExample.com!</title>
</head>
<body>
    <h1>Success! The anotherexample.com virtual host is working!</h1>
</body>
</html>

3.2 配置Nginx虚拟主机文件

接下来,我们需要为每个域名创建一个Nginx配置文件。通常,这些配置文件存放在/etc/nginx/sites-available/目录下,并通过符号链接到/etc/nginx/sites-enabled/目录。

首先,为example.com创建配置文件:

sudo nano /etc/nginx/sites-available/example.com

在文件中输入以下内容:

server {
    listen 80;
    listen [::]:80;

    server_name example.com www.example.com;

    root /var/www/example.com/html;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

保存并退出。同样的步骤为anotherexample.com创建配置文件:

sudo nano /etc/nginx/sites-available/anotherexample.com

输入以下内容:

server {
    listen 80;
    listen [::]:80;

    server_name anotherexample.com www.anotherexample.com;

    root /var/www/anotherexample.com/html;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

3.3 启用虚拟主机配置

创建好配置文件后,我们需要将这些配置文件链接到/etc/nginx/sites-enabled/目录,以便Nginx能够加载它们。

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/anotherexample.com /etc/nginx/sites-enabled/

3.4 测试Nginx配置

在重启Nginx之前,建议先测试配置文件是否正确:

sudo nginx -t

如果配置正确,你会看到类似以下的输出:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

3.5 重启Nginx

最后,重启Nginx以使配置生效:

sudo systemctl restart nginx

4. 验证虚拟主机配置

现在,你可以通过浏览器访问example.comanotherexample.com来验证虚拟主机配置是否成功。你应该分别看到之前创建的index.html文件内容。

5. 其他注意事项

5.1 默认服务器配置

如果你希望为未匹配到任何虚拟主机的请求提供一个默认的响应,可以配置一个默认的server块:

server {
    listen 80 default_server;
    listen [::]:80 default_server;

    server_name _;

    return 404;
}

5.2 SSL/TLS配置

为了增强安全性,建议为每个虚拟主机配置SSL/TLS证书。你可以使用Let’s Encrypt等免费证书服务来获取证书,并在Nginx配置中添加SSL支持。

5.3 日志文件

你可以为每个虚拟主机配置独立的日志文件,以便更好地监控和调试:

server {
    listen 80;
    listen [::]:80;

    server_name example.com www.example.com;

    root /var/www/example.com/html;
    index index.html;

    access_log /var/log/nginx/example.com.access.log;
    error_log /var/log/nginx/example.com.error.log;

    location / {
        try_files $uri $uri/ =404;
    }
}

6. 总结

通过以上步骤,你已经成功配置了Nginx基于域名的虚拟主机。这种配置方式不仅能够提高服务器的资源利用率,还能为不同的域名提供独立的网站内容。随着你对Nginx的进一步了解,你可以探索更多高级配置选项,如负载均衡、反向代理等,以满足更复杂的需求。

推荐阅读:
  1. nginx配置基于域名的虚拟主机​
  2. nginx域名配置虚拟主机

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

nginx

上一篇:vue-admin-template动态路由怎么实现

下一篇:Nginx HTTP/2和mp4模块拒绝服务漏洞预警分析

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》