如何使用Nginx服务配置多站点?

使用Nginx配置多站点(也称为虚拟主机)可以让一台服务器同时托管多个域名或子域名的网站。以下是详细的步骤,帮助你配置Nginx多站点服务。


1. 准备工作

1.1 安装Nginx

如果你还没有安装Nginx,可以使用以下命令安装:

Ubuntu/Debian

sudo apt-get update
sudo apt-get install nginx

CentOS

sudo yum install epel-release
sudo yum install nginx

1.2 检查Nginx状态

安装完成后,启动Nginx并检查其状态:

sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx

2. 配置多站点

2.1 创建站点配置文件

Nginx的站点配置文件通常位于/etc/nginx/sites-available/目录下。你可以为每个站点创建一个单独的配置文件。

示例:为example.com创建配置文件

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

配置内容

server {
    listen 80;
    server_name example.com www.example.com;

    root /var/www/example.com;  # 网站根目录
    index index.html index.htm;

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

示例:为test.com创建配置文件

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

配置内容

server {
    listen 80;
    server_name test.com www.test.com;

    root /var/www/test.com;  # 网站根目录
    index index.html index.htm;

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

2.2 创建软链接

将配置文件链接到/etc/nginx/sites-enabled/目录,以便Nginx加载这些配置。

example.com创建软链接

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

test.com创建软链接

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

2.3 检查配置文件语法

在重新加载Nginx之前,检查配置文件的语法是否正确:

sudo nginx -t

如果输出显示syntax is oktest is successful,则配置文件正确。


2.4 重新加载Nginx

重新加载Nginx以应用新的配置:

sudo systemctl reload nginx

3. 配置域名解析

确保你的域名(如example.comtest.com)指向服务器的IP地址。可以通过以下方式配置:

3.1 使用A记录

在域名注册商的管理面板中,为example.comtest.com添加A记录,指向服务器的IP地址。

3.2 使用CNAME记录(可选)

如果你希望使用www子域名,可以为www.example.comwww.test.com添加CNAME记录,指向example.comtest.com


4. 创建网站根目录

为每个站点创建对应的网站根目录,并放置网站文件。

example.com创建目录

sudo mkdir -p /var/www/example.com
sudo chown -R $USER:$USER /var/www/example.com

test.com创建目录

sudo mkdir -p /var/www/test.com
sudo chown -R $USER:$USER /var/www/test.com

添加示例HTML文件

在每个目录中创建一个简单的index.html文件。

echo "<h1>Welcome to example.com</h1>" | sudo tee /var/www/example.com/index.html
echo "<h1>Welcome to test.com</h1>" | sudo tee /var/www/test.com/index.html

5. 测试多站点配置

5.1 访问站点

在浏览器中访问http://example.comhttp://test.com,确保每个站点都能正常显示。

5.2 检查日志

如果遇到问题,可以检查Nginx的错误日志:

sudo tail -f /var/log/nginx/error.log

6. 配置SSL(可选)

如果你希望为站点启用HTTPS,可以使用Let’s Encrypt免费证书。

6.1 安装Certbot

sudo apt-get install certbot python3-certbot-nginx

6.2 自动配置SSL

example.comtest.com自动配置SSL:

sudo certbot --nginx -d example.com -d www.example.com
sudo certbot --nginx -d test.com -d www.test.com

6.3 验证SSL

访问https://example.comhttps://test.com,确保SSL证书已正确配置。


7. 总结

通过以上步骤,你已经成功配置了Nginx多站点服务。每个站点都有独立的配置文件和根目录,可以轻松管理多个域名或子域名的网站。如果需要添加更多站点,只需重复上述步骤即可。

阿, 信

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

在线客服