凌峰创科服务平台

Ubuntu如何快速搭建http服务器?

  1. 准备工作
  2. 使用 Apache (HTTPD) - 最经典、文档最全
  3. 使用 Nginx - 高性能、轻量级
  4. 如何选择?
  5. 基本管理命令
  6. 配置防火墙
  7. 配置域名(可选)
  8. 后续:部署动态网站(如 PHP, Node.js)

准备工作

在开始之前,请确保你已经:

Ubuntu如何快速搭建http服务器?-图1
(图片来源网络,侵删)
  • 一台已经安装好 Ubuntu 系统的计算机或云服务器(如 Ubuntu 20.04 或 22.04 LTS 版本)。
  • 拥有 sudo 权限的用户账户。
  • 系统已更新到最新状态,打开终端,运行:
    sudo apt update
    sudo apt upgrade -y

方案一:使用 Apache (HTTPD) - 最经典、文档最全

Apache 是最古老、最流行、文档最丰富的 Web 服务器,它的配置非常直观,非常适合新手和大多数静态网站。

安装 Apache

sudo apt install apache2 -y

安装完成后,Apache 服务通常会自动启动。

验证安装

打开你的浏览器,访问服务器的公网 IP 地址,你可以通过以下命令找到你的 IP 地址:

hostname -I

在浏览器中输入 http://<你的服务器IP>,如果看到 "Apache2 Ubuntu Default Page" 的页面,说明安装成功!

Ubuntu如何快速搭建http服务器?-图2
(图片来源网络,侵删)

网站文件目录

Apache 的默认网站根目录是:/var/www/html

  • 放置你的网站文件:将你的 HTML、CSS、JavaScript、图片等所有静态文件都放到这个目录下。
  • 默认首页文件:Apache 会按顺序查找以下文件作为首页:index.html, index.htm, index.php,你可以创建一个测试文件来验证:
    # 创建一个简单的测试页面
    sudo nano /var/www/html/index.html

    在打开的编辑器中输入以下内容:

    <!DOCTYPE html>
    <html>
    <head>
        <title>My Awesome Website</title>
    </head>
    <body>
        <h1>Hello from Apache on Ubuntu!</h1>
        <p>This is my first web page served by Apache.</p>
    </body>
    </html>

    Ctrl + X,然后按 Y,最后按 Enter 保存并退出,再次刷新浏览器,你应该能看到你刚刚创建的页面。

配置虚拟主机(可选,但推荐)

虚拟主机允许你在一台服务器上托管多个网站,你可以同时拥有 example.comtest.com

Ubuntu如何快速搭建http服务器?-图3
(图片来源网络,侵删)
  1. 创建网站目录

    sudo mkdir -p /var/www/example.com/html
  2. 设置目录权限

    sudo chown -R $USER:$USER /var/www/example.com/html
    sudo chmod -R 755 /var/www/example.com/html
  3. 创建虚拟主机配置文件

    sudo nano /etc/apache2/sites-available/example.com.conf

    粘贴以下内容,并替换 example.com 为你的域名:

    <VirtualHost *:80>
        ServerAdmin webmaster@example.com
        ServerName example.com
        ServerAlias www.example.com
        DocumentRoot /var/www/example.com/html
        <Directory /var/www/example.com/html>
            Options Indexes FollowSymLinks
            AllowOverride All
            Require all granted
        </Directory>
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
  4. 启用虚拟主机

    sudo a2ensite example.com.conf
  5. 禁用默认站点(可选)

    sudo a2dissite 000-default.conf
  6. 重新加载 Apache 配置

    sudo systemctl reload apache2

将你的域名解析到服务器 IP,访问 http://example.com 就能看到你的新网站了。


方案二:使用 Nginx - 高性能、轻量级

Nginx (发音 "Engine-X") 是一个高性能的 Web 服务器和反向代理,它以其高并发、低内存占用而闻名,非常适合处理大量请求。

安装 Nginx

sudo apt install nginx -y

安装完成后,Nginx 通常也会自动启动。

验证安装

和 Apache 一样,在浏览器中访问你的服务器 IP 地址: http://<你的服务器IP>

如果你看到 "Welcome to nginx!" 的欢迎页面,说明安装成功。

网站文件目录

Nginx 的默认网站根目录是:/var/www/html

  • 放置你的网站文件:同样,将你的静态文件放在这里。
  • 创建测试页面
    sudo nano /var/www/html/index.html
    <!DOCTYPE html>
    <html>
    <head>
        <title>My Awesome Nginx Website</title>
    </head>
    <body>
        <h1>Hello from Nginx on Ubuntu!</h1>
        <p>This is my first web page served by Nginx.</p>
    </body>
    </html>

    保存退出后,刷新浏览器即可看到。

配置服务器块(Nginx 的虚拟主机)

Nginx 的虚拟主机被称为 "Server Blocks"。

  1. 创建网站目录

    sudo mkdir -p /var/www/example.com/html
  2. 设置目录权限

    sudo chown -R $USER:$USER /var/www/example.com/html
    sudo chmod -R 755 /var/www/example.com/html
  3. 创建服务器块配置文件

    sudo nano /etc/nginx/sites-available/example.com
    server {
        listen 80;
        server_name example.com www.example.com;
        root /var/www/example.com/html;
        index index.html index.htm;
        location / {
            try_files $uri $uri/ =404;
        }
    }
  4. 启用服务器块: 创建一个指向 sites-enabled 目录的软链接:

    sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
  5. 测试并重新加载 Nginx: 在重载之前,最好先测试配置文件是否有语法错误:

    sudo nginx -t

    如果显示 syntax is oktest is successful,则重载配置:

    sudo systemctl reload nginx

同样,将你的域名解析到服务器 IP,访问 http://example.com 即可。


如何选择?

特性 Apache Nginx
架构 进程模型(每个连接一个进程/线程) 事件驱动模型(单进程多连接)
性能 静态文件性能不错,高并发时性能下降 静态文件处理性能极高,高并发能力强
反向代理 功能强大,但配置相对复杂 性能卓越,是反向代理的首选
URL重写 强大的 .htaccess 支持,灵活 配置稍复杂,通常在主配置文件中完成
易用性 配置直观,文档极其丰富 配置简洁,但需要理解其核心概念
适用场景 通用网站,需要大量 .htaccess 的共享主机,与 PHP 集成(通过 mod_php 高流量网站,API 服务,作为反向代理或负载均衡器

  • 新手入门、个人博客、小型企业网站Apache 更简单,遇到问题更容易找到解决方案。
  • 高流量网站、API 服务、需要反向代理Nginx 是更好的选择。

基本管理命令

对于 Apache

# 启动服务
sudo systemctl start apache2
# 停止服务
sudo systemctl stop apache2
# 重启服务(配置更改后常用)
sudo systemctl restart apache2
# 重新加载配置(不中断连接)
sudo systemctl reload apache2
# 查看服务状态
sudo systemctl status apache2
# 设置开机自启
sudo systemctl enable apache2
# 禁用开机自启
sudo systemctl disable apache2

对于 Nginx

将上面的 apache2 替换为 nginx 即可,命令完全相同。


配置防火墙

如果你的服务器启用了 UFW (Uncomplicated Firewall),你需要允许 HTTP (80) 和 HTTPS (443) 端口的流量。

# 允许 Apache (使用 'Apache Full' 配置文件已包含 80 和 443)
sudo ufw allow 'Apache Full'
# 或者,如果你使用 Nginx
sudo ufw allow 'Nginx Full'
# 或者,手动开放端口
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

配置域名(可选)

要让你的网站通过域名访问,你需要进行 DNS 解析,在你的域名注册商(如 GoDaddy, Namecheap, 阿里云等)的控制面板中,添加一条 A 记录:

  • 类型:A
  • 名称: (或者你的子域名,如 www)
  • :你的服务器公网 IP 地址

等待 DNS 生效(可能需要几分钟到几小时),然后按照上面的虚拟主机/服务器块配置即可。


后续:部署动态网站

一个 HTTP 服务器不仅能提供静态文件,还能通过与其他软件配合来运行动态网站。

  • 部署 PHP 网站

    • Apache: 安装 libapache2-mod-php 和 PHP 扩展。sudo apt install php libapache2-mod-php php-mysql,重启 Apache 即可。
    • Nginx: Nginx 本身不处理 PHP,需要搭配 PHP-FPM,安装 php-fpm,然后修改 Nginx 配置,将 .php 文件的请求代理给 PHP-FPM 处理。
  • 部署 Node.js 应用

    • 使用 反向代理,将 Nginx 或 Apache 作为前端,接收所有用户请求,然后将特定路径(如 /api)的请求转发到你的 Node.js 应用(通常运行在 3000, 8080 等端口),这是最常用和最安全的部署方式。
  • 部署 Python (Django/Flask) 应用

    • 同样使用 反向代理,Web 服务器(Nginx/Apache)处理静态文件和用户请求,将动态请求转发给运行在 Gunicorn 或 uWSGI 上的 Python 应用。

希望这份详细的指南能帮助你在 Ubuntu 上成功搭建 HTTP 服务器!

分享:
扫描分享到社交APP
上一篇
下一篇