📜  在 Ubuntu 中创建自定义域名而不是 localhost(1)

📅  最后修改于: 2023-12-03 15:37:32.677000             🧑  作者: Mango

在 Ubuntu 中创建自定义域名而不是 localhost

当开发web应用时,我们经常需要在本地调试。一种常见的方法是将应用运行在本地 localhost 上。然而,当我们需要模拟多个域名或子域名时,使用 localhost 就不够了。在 Ubuntu 上,我们可以通过修改 /etc/hosts 文件和配置 Apache 或 Nginx 服务器来创建自定义域名。

修改 hosts 文件

/etc/hosts 文件存储着本地计算机的IP地址与域名的对应关系。我们可以在该文件中添加自定义域名与本地IP地址的映射来指向我们的应用。

首先,打开 /etc/hosts 文件:

sudo nano /etc/hosts

然后,在文件末尾添加以下行:

127.0.0.1 yourdomain.com
127.0.0.1 subdomain.yourdomain.com

保存并退出文件。

现在,当你在浏览器中访问 http://yourdomain.comhttp://subdomain.yourdomain.com,它们会指向你的本地计算机,就像访问 localhost 一样。

配置 Apache

如果你使用 Apache 服务器,你可以通过修改 Apache 配置文件来配置虚拟主机。

首先,打开 Apache 的配置文件:

sudo nano /etc/apache2/apache2.conf

然后找到以下行:

# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf

在该行下添加新的虚拟主机配置:

<VirtualHost *:80>
    ServerName yourdomain.com
    ServerAlias www.yourdomain.com
    DocumentRoot /var/www/yourdomain.com/public_html
    ErrorLog /var/www/yourdomain.com/error.log
    CustomLog /var/www/yourdomain.com/access.log combined
</VirtualHost>

这里我们定义了一个名为 yourdomain.com 的虚拟主机,它的根目录为 /var/www/yourdomain.com/public_html。我们还定义了错误日志和访问日志的路径和格式。

保存并退出文件。然后,创建虚拟主机的根目录并设置正确的权限:

sudo mkdir -p /var/www/yourdomain.com/public_html
sudo chmod -R 755 /var/www/yourdomain.com

最后,重启 Apache 服务器:

sudo systemctl restart apache2

现在,当你访问 http://yourdomain.comhttp://www.yourdomain.com,它们会指向虚拟主机的根目录了。

配置 Nginx

如果你使用 Nginx 服务器,你可以通过创建新的配置文件来配置虚拟主机。

首先,创建一个新的配置文件:

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

然后添加以下内容:

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    root /var/www/yourdomain.com/public_html;
    index index.html index.htm;

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

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

在该配置中,我们定义了一个名为 yourdomain.com 的虚拟主机,它的根目录为 /var/www/yourdomain.com/public_html。我们还定义了错误日志和访问日志的路径和格式,并且定义了 try_files 指令来处理静态文件。

保存并退出文件。然后,启用该配置文件:

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

最后,测试并重新加载 Nginx 服务器:

sudo nginx -t
sudo systemctl reload nginx

现在,当你访问 http://yourdomain.comhttp://www.yourdomain.com,它们会指向虚拟主机的根目录了。

结论

在 Ubuntu 上创建自定义域名是非常容易的,只需要对 /etc/hosts 文件和服务器的配置文件进行一些修改。这种方式可以帮助我们模拟多个域名或子域名来开发和测试 web 应用。