You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu服务器配置虚拟主机并绑定公网域名的可行性咨询

Ubuntu服务器配置虚拟主机并绑定公网域名的可行性咨询

当然可以!在Ubuntu Server上配置虚拟主机并绑定公网域名是非常常规的操作,完全没问题,我来给你梳理下具体的实现步骤,分Apache和Nginx两种常用Web服务器来讲解:

先做好前期准备

  • 首先得确保你的服务器上装了Web服务器,Apache或者Nginx二选一就行。如果还没装:
    • 装Apache:运行sudo apt update && sudo apt install apache2
    • 装Nginx:运行sudo apt update && sudo apt install nginx
  • 你需要有一个已经注册好的公网域名,并且要在域名服务商的后台设置A记录,把域名指向你的服务器公网IP地址。等DNS解析生效(一般几分钟到几小时),域名就能和你的服务器关联上了。

用Apache配置虚拟主机的步骤

  1. 创建网站根目录:假设你的域名是example.com,先建存放网站文件的目录:
    sudo mkdir -p /var/www/example.com/public_html
    
    然后设置目录权限,让当前用户能读写:
    sudo chown -R $USER:$USER /var/www/example.com/public_html
    sudo chmod -R 755 /var/www/example.com
    
  2. 写个测试页面:在根目录里新建index.html,方便后续验证:
    nano /var/www/example.com/public_html/index.html
    
    写入简单内容,比如:
    <h1>Welcome to example.com!</h1>
    
  3. 创建虚拟主机配置文件:复制Apache的默认配置模板来改:
    sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/example.com.conf
    
    编辑这个配置文件:
    sudo nano /etc/apache2/sites-available/example.com.conf
    
    把内容替换成下面的(记得把example.com换成你的真实域名):
    <VirtualHost *:80>
        ServerAdmin your-email@example.com
        ServerName example.com
        ServerAlias www.example.com
        DocumentRoot /var/www/example.com/public_html
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
    
  4. 启用配置并重启服务
    sudo a2ensite example.com.conf
    # 可选:如果不想用默认的欢迎页面,可以禁用默认站点
    sudo a2dissite 000-default.conf
    # 重启Apache让配置生效
    sudo systemctl restart apache2
    

用Nginx配置虚拟主机的步骤

  1. 创建网站根目录:同样以example.com为例:
    sudo mkdir -p /var/www/example.com/html
    sudo chown -R $USER:$USER /var/www/example.com/html
    sudo chmod -R 755 /var/www/example.com
    
  2. 写测试页面
    nano /var/www/example.com/html/index.html
    
    写入和之前一样的测试内容就行。
  3. 创建虚拟主机配置文件
    sudo nano /etc/nginx/sites-available/example.com
    
    粘贴下面的配置(替换成你的域名):
    server {
        listen 80;
        listen [::]:80;
    
        root /var/www/example.com/html;
        index index.html index.htm index.nginx-debian.html;
    
        server_name example.com www.example.com;
    
        location / {
            try_files $uri $uri/ =404;
        }
    }
    
  4. 启用配置并重启服务
    # 创建软链接到启用目录
    sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
    # 测试配置是否有语法错误
    sudo nginx -t
    # 没问题就重启Nginx
    sudo systemctl restart nginx
    

额外注意事项

  • 防火墙设置:要确保服务器的80端口(HTTP)是开放的,用ufw防火墙的话,直接运行:
    • Apache:sudo ufw allow 'Apache'
    • Nginx:sudo ufw allow 'Nginx HTTP'
  • HTTPS配置(推荐):如果想让网站更安全,建议配置HTTPS。可以用Let's Encrypt的免费证书:
    • Apache:安装certbot工具sudo apt install certbot python3-certbot-apache,然后运行sudo certbot --apache,跟着提示操作就行,证书会自动配置和续期。
    • Nginx:安装certbot工具sudo apt install certbot python3-certbot-nginx,运行sudo certbot --nginx,按提示完成配置。

做完这些,你直接在浏览器里输入你的公网域名,就能看到你设置的测试页面啦!

备注:内容来源于stack exchange,提问作者user1053680

火山引擎 最新活动