13. 设置 Ubuntu 服务器以托管网站和 Web 应用程序:终极指南

简介:设置 Ubuntu 服务器以托管网站和 Web 应用程序

Ubuntu Server 是一款强大而灵活的操作系统,深受开发人员和系统管理员信赖,广泛用于托管和 Web 应用程序部署。无论您是搭建服务器来托管网站、管理基于云的服务,还是部署现代 Web 应用程序,Ubuntu Server 都能提供您成功所需的可靠性、可扩展性和工具。

在本指南中,我们将带您完成为托管和 Web 应用程序环境配置 Ubuntu 服务器的基本步骤。从搭建 Web 服务器(Apache 或 Nginx),到使用 SSL 保护您的网站,再到针对生产环境优化性能,本文将帮助您构建一台功能完备的服务器,随时满足您的托管和应用程序需求。


往期文章:

01. Ubuntu Server 简介 – SysOSX: AI & Cloud

02. 如何搭建您的第一台 Ubuntu 服务器:初学者指南 – SysOSX: AI & Cloud

03.精通 Ubuntu Server 的 Linux 命令行 – SysOSX: AI & Cloud

04. 在 Ubuntu Server 上管理用户和权限:综合指南 – SysOSX: AI & Cloud

05. Ubuntu Server 网络基础:综合指南 – SysOSX: AI & Cloud

06. 在 Ubuntu Server 上安装和管理软件:完整指南 – SysOSX: AI & Cloud

07.Ubuntu Server 的补丁与更新:综合指南 – SysOSX: AI & Cloud

08. 保护您的 Ubuntu 服务器:加固与防护的实用步骤 – SysOSX: AI & Cloud

09. Ubuntu 服务器审计与日志记录

10. Ubuntu Server 系统监控工具:综合指南 – SysOSX: AI & Cloud

11. Ubuntu 服务器集中式日志记录:必读指南 – SysOSX: AI & Cloud

12. Ubuntu Server 审计与合规:最佳实践 – SysOSX: AI & Cloud



📋 先决条件清单

  • Ubuntu Server 22.04 LTS(或更新版本)
  • 具有 sudo 权限的终端访问
  • 域名(建议用于 SSL)
  • 基本的 Linux 命令知识
  • 最少 1GB 内存(建议 2GB)

🛠 初始服务器设置

# Update system packages
sudo apt update && sudo apt upgrade -y

# Install essential tools
sudo apt install -y curl wget

🔥 防火墙配置

服务允许的端口命令
Apache80, 443sudo ufw allow 'Apache Full'
Nginx80, 443sudo ufw allow 'Nginx Full'
SSH22sudo ufw allow OpenSSH

启用防火墙: sudo ufw enable


🌐 Web 服务器比较

特性ApacheNginx
架构进程驱动事件驱动
最适合传统 Web 应用高流量/静态内容
配置语法.htaccess 文件服务器块
性能良好优秀
SSL 设置mod_sslOpenSSL

🐧 Apache 设置指南

1. 安装 Apache

sudo apt install apache2 -y

2. 虚拟主机配置

文件: /etc/apache2/sites-available/yourdomain.conf

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName yourdomain.com
    DocumentRoot /var/www/yourdomain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

启用配置:

sudo a2ensite yourdomain.conf
sudo systemctl reload apache2

🚀 Nginx 设置指南

1. 安装 Nginx

sudo apt install nginx -y

2. 服务器块配置

文件: /etc/nginx/sites-available/yourdomain

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    root /var/www/yourdomain;
    
    location / {
        try_files $uri $uri/ =404;
    }
}

启用配置:

sudo ln -s /etc/nginx/sites-available/yourdomain /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

🔒 使用 Let’s Encrypt 设置 SSL

对于 Apache:

sudo apt install certbot python3-certbot-apache -y
sudo certbot --apache --agree-tos -m [email protected] -d yourdomain.com

对于 Nginx:

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx --agree-tos -m [email protected] -d yourdomain.com

自动续期测试:

sudo certbot renew --dry-run

🧪 验证测试

  1. HTTP 状态检查: curl -I http://yourdomain.com
  2. SSL 验证: openssl s_client -connect yourdomain.com:443
  3. 服务器标头检查: curl -I | grep "Server"

🚨 故障排除技巧

  • 权限问题: sudo chown -R www-data:www-data /var/www/yourdomain
  • 端口冲突: sudo lsof -i :80
  • 配置错误: sudo journalctl -xe
  • SSL 续期: sudo certbot renew --force-renewal

📚 重要资源

  1. Apache 安全加固指南
  2. Nginx 性能调优
  3. Let’s Encrypt 文档
  4. Ubuntu Server 安全

💡 专业技巧

  • 使用 systemd 进行服务管理:
sudo systemctl [start|stop|restart|status] apache2/nginx
  • 启用 HTTP/2 以获得更好的性能
  • 使用以下工具设置自动备份: rsync
  • 使用以下工具监控流量: goaccess 或 ngxtop

最终建议:
对于大多数用户,Nginx 开箱即用性能更好,而 Apache 则通过 .htaccess 文件提供更大的灵活性。请根据您的具体应用需求进行选择。

敬请期待下一篇文章

在下一篇文章中,我们将深入探讨 在单个 Ubuntu 服务器上托管多个网站! 在单个 Ubuntu 服务器上托管多个网站 对于开发人员、小型企业和爱好者来说是一种经济高效的解决方案。在下一篇文章中,我将引导您设置 虚拟主机 ,即在 Apache 和 Nginx 中进行配置,以便在同一服务器上托管多个网站。

3 thoughts on “13.Setting Up Your Ubuntu Server for Hosting and Web Applications: Ultimate Guide”

发表评论