1. 从零到一:为什么选择云服务器搭建网站?
如果你和我一样,从学生时代折腾虚拟主机、VPS,再到后来接触各种云服务,你会发现,现在在云服务器上搭建一个网站,已经不再是程序员的专属技能了。无论是想做一个个人博客记录生活,还是为你的小生意建立一个线上门户,甚至只是想部署一个自己写的工具应用,云服务器都提供了最灵活、最可控的解决方案。它不像传统的虚拟主机那样处处受限,也不像早年自己托管物理服务器那样成本高昂、运维复杂。
简单来说,云服务器就是一台24小时在线的、你可以完全掌控的远程电脑。你租用它的一部分计算资源(CPU、内存、硬盘),然后在这台“电脑”上安装你需要的任何软件,部署你的网站代码。这种“完全控制权”带来的好处是巨大的:你可以自由选择操作系统(比如Ubuntu、CentOS、Windows Server),可以安装任何环境(PHP、Python、Node.js、Java),可以自定义防火墙规则,甚至可以把它当成一个开发测试环境来用。
那么,为什么是现在?因为云服务的普及和竞争,使得入门成本变得极低。你可能已经注意到,像阿里云、腾讯云这些大厂,经常有“新人专享”或者“爆款特惠”活动,几十块钱甚至几块钱就能买到一台配置不错的云服务器用上一个月。这为个人开发者和小型项目提供了绝佳的试水机会。而且,整个搭建流程已经高度工具化和可视化,即使你不熟悉命令行,也能通过像宝塔面板这样的工具轻松搞定。
所以,这篇超详细的指南,就是为你准备的。无论你是完全零基础的小白,还是有一定技术背景但没实操过的朋友,我都会带你走一遍从购买服务器到网站成功上线的完整闭环。我会尽量避开那些晦涩的术语,用最直白的语言和清晰的步骤,让你不仅能“照做”,更能“理解”每一步背后的逻辑。毕竟,知其然更要知其所以然,下次遇到问题你才知道从哪里下手。
2. 万里长征第一步:云服务器的选购与基础配置
在开始敲命令之前,最重要的一步是选对“地基”。云服务器的选择直接关系到你后续搭建的顺畅度、网站的访问速度以及长期成本。很多人第一步就踩坑,要么买贵了,要么买错了配置,导致后面麻烦不断。
2.1 主流云服务商横向对比与选择策略
目前国内主流的云服务商主要有阿里云、腾讯云、华为云,以及一些新兴的如天翼云、火山引擎等。对于个人用户和小项目,我强烈建议从阿里云或腾讯云开始。原因很简单:生态成熟、文档齐全、社区活跃,遇到问题容易找到解决方案。
阿里云 :国内市场份额最大,产品线最全。它的优势在于稳定性和丰富的周边服务(如对象存储OSS、内容分发网络CDN)。对于新用户,优惠力度通常很大,但续费价格可能较高。如果你主要面向国内用户,且需要与支付宝、淘宝等生态联动,阿里云是首选。
腾讯云 :近年来追赶势头很猛,经常有非常“香”的促销活动,尤其是针对学生和开发者的“轻量应用服务器”。它的优势在于与微信生态(小程序、公众号)结合紧密,网络质量(特别是华南地区)很好,客服响应也比较快。
华为云 :在政企市场很强,对于个人用户来说,促销活动相对少一些,但技术实力雄厚,特别是在ARM架构服务器和数据库方面有特色。
注意 :选择时,请务必关注服务器的 地域 。尽量选择离你的目标用户群体最近的地域。例如,用户主要在广东,就选“华南地区(广州)”。这能显著降低网络延迟,提升访问速度。千万不要因为某个地域便宜就盲目选择。
2.2 实例规格与系统镜像:如何做出明智的决策?
购买时,你会面临一堆参数:CPU、内存、带宽、系统盘。对于个人网站、博客或小型应用,在预算有限的情况下,我推荐这个“甜点”配置: 1核CPU、2GB内存、40GB SSD系统盘、1Mbps带宽 。这个配置足够流畅运行 WordPress、Typecho 等主流博客系统,或者一个轻量的 Python Flask / Node.js 应用。
- CPU与内存 :1核2G是入门标配。如果只是静态博客,1核1G也勉强够用,但2G内存会给运行数据库(如MySQL)和Web服务器(如Nginx)留出更多余量,体验更稳定。
- 带宽 :这是最容易产生误解的地方。云服务器的带宽指的是 出网带宽 ,即服务器向外传输数据的速度。1Mbps的带宽,理论下载速度是128KB/s。如果你的网站页面(包括图片、CSS、JS)大小在1MB以内,那么1Mbps带宽能支持大约8个用户同时以满速加载页面。对于初期访问量不大的个人站,完全足够。切记,带宽是月付成本的大头,前期不必追求太高。
- 系统盘 :务必选择SSD云盘,性能远优于普通云盘。40GB对于系统、环境和网站代码来说绰绰有余。
-
镜像
:这是安装在你服务器硬盘上的操作系统。对于网站搭建,
我无脑推荐 Ubuntu 20.04 LTS 或 22.04 LTS
。原因如下:
- 社区支持最好 :任何问题,几乎都能在搜索引擎上找到Ubuntu的解决方案。
- 软件包新 :自带的软件仓库更新及时,安装软件方便。
- 长期支持 :LTS版本提供长达5年的安全更新,省心。
- 对新手友好 :相对于CentOS(已停止维护)或Debian,Ubuntu的教程和文档最多。
避坑指南 :千万不要选择那些“宝塔面板一键安装”或者“LAMP环境”等第三方打包镜像。虽然它们看似方便,但往往安装了过时或不必要的软件,而且可能留有后门或难以排查的配置问题。我们从最干净的系统开始,一步步搭建,这样环境最纯净,你也最能学到东西。
2.3 安全组与防火墙:守护服务器的第一道门
购买完成后,别急着登录。第一件要做的事是配置 安全组 (阿里云叫法)或 防火墙 (腾讯云等)。这是云平台提供的虚拟防火墙,用于控制进出你服务器的网络流量。默认情况下,为了安全,云服务器只开放了22端口(SSH)和3389端口(Windows远程桌面)。
对于Web服务器,我们至少需要开放:
- 80端口 :HTTP协议,用于普通网页访问。
- 443端口 :HTTPS协议,用于加密的网页访问(后续我们会为网站配置SSL证书)。
- 22端口 :SSH协议,用于远程连接管理服务器(务必保留,但可以限制访问来源IP以提高安全性)。
操作步骤(以阿里云为例):
- 进入云服务器控制台,找到你的实例。
- 点击实例ID进入详情页,找到“安全组”标签页。
- 点击“配置规则”,在“入方向”添加规则。
-
添加三条规则:
- 授权策略:允许
- 协议类型:自定义TCP
- 端口范围:80/80
- 授权对象:0.0.0.0/0 (表示允许所有IP访问,初期可以这样设,后期可收紧)
- 同样添加443/443和22/22的规则。
- 点击“保存”。这样,外部用户才能通过浏览器访问到你的网站。
重要心得
:22端口是黑客扫描的重灾区。在安全组里,你可以将22端口的“授权对象”从
0.0.0.0/0
改为你自己的公网IP地址(可以在百度搜索“我的IP”获得)。这样,只有从你家或公司的网络才能SSH登录服务器,安全性大大提升。
3. 连接与掌控:通过SSH登录服务器
现在,你的服务器已经准备就绪,网络大门也已打开。接下来,我们需要一种方式远程操作它,就像坐在那台电脑前一样。这就是SSH(Secure Shell)的用武之地。
3.1 SSH客户端的选择与基本使用
如果你是Windows用户,我推荐使用 Git Bash (安装Git时自带)或 Windows Terminal 配合 OpenSSH (Win10以上版本已内置)。它们都比古老的PuTTY更现代、更好用。如果你是macOS或Linux用户,直接打开终端(Terminal)即可。
连接服务器的命令格式是:
ssh username@server_ip
-
username:对于Ubuntu系统,默认的管理员用户名是ubuntu。对于CentOS等,可能是root。 -
server_ip:就是你服务器的公网IP地址,在云服务器控制台可以找到。
例如,你的IP是
123.123.123.123
,那么命令就是:
ssh ubuntu@123.123.123.123
首次连接时,系统会询问你是否信任这台主机,输入
yes
即可。然后会提示你输入密码。这个密码是什么?就是在你购买服务器时,或者重置实例时设置的
登录密码
。注意,输入密码时,光标不会移动,也不会显示星号,这是正常现象,输完直接回车。
踩坑提醒
:如果使用
root
用户登录(有些镜像默认启用root),可能直接提示密码错误。这是因为很多云平台出于安全考虑,默认禁止root密码登录。解决方案是:先用默认用户(如
ubuntu
)登录,然后使用
sudo -i
或
su root
切换为root用户,或者修改SSH配置允许root登录(不推荐)。
3.2 首次登录后的必备操作:更新系统与创建新用户
成功登录后,你应该会看到一个命令行提示符,比如
ubuntu@iZbp1 ~$
。这表示你已经进入了服务器的命令行环境。第一件事,永远都是更新系统软件包列表并升级现有软件,这能修复已知的安全漏洞。
sudo apt update && sudo apt upgrade -y
-
sudo:以管理员权限执行命令。 -
apt update:更新本地软件包索引(从哪里可以下载软件)。 -
apt upgrade -y:升级所有可升级的软件包(-y表示自动回答“yes”,省去确认)。
接下来,为了安全和不误操作,我强烈建议
创建一个新的普通用户
,并赋予其
sudo
权限,日常使用这个用户,而非直接使用
root
或默认的
ubuntu
用户。
# 创建一个名为 yourname 的新用户
sudo adduser yourname
# 按照提示设置密码和相关信息(可以一路回车跳过)
# 将新用户添加到 sudo 组,使其拥有管理员权限
sudo usermod -aG sudo yourname
完成后,你可以退出当前登录(输入
exit
),然后用新用户重新登录试试:
ssh yourname@123.123.123.123
登录后,运行
sudo ls /root
,如果系统提示你输入密码(输入你为新用户设置的密码),然后能列出目录,说明
sudo
权限配置成功。
经验之谈
:养成好习惯,非必要不用root。用普通用户操作,需要权限时再加
sudo
,可以防止因误操作导致系统崩溃。同时,为这个新用户配置SSH密钥登录,比用密码更安全。你可以使用
ssh-keygen
在本机生成密钥对,然后将公钥(
~/.ssh/id_rsa.pub
的内容)添加到服务器的
~/.ssh/authorized_keys
文件中。具体步骤网上教程很多,这里不展开,但这绝对是提升安全性和登录便利性的重要一步。
4. 构建网站运行环境:LNMP vs LAMP 与 Nginx 配置详解
网站要运行,需要三样东西: Web服务器 、 编程语言环境 、 数据库 。最经典的组合是LAMP(Linux, Apache, MySQL, PHP)和LNMP(Linux, Nginx, MySQL, PHP)。我推荐 LNMP ,因为Nginx在处理高并发静态资源时性能更优,配置也更清晰易懂。
4.1 安装Nginx:高性能的Web服务器
Nginx 是一个高性能的HTTP和反向代理服务器。我们将用它来监听80/443端口,处理用户的网页请求。
使用新创建的用户登录服务器,执行以下命令安装Nginx:
sudo apt update
sudo apt install nginx -y
安装完成后,Nginx会自动启动。你可以通过以下命令检查它的状态:
sudo systemctl status nginx
如果看到绿色的“active (running)”字样,说明运行正常。现在,打开你的浏览器,输入服务器的公网IP地址(例如
http://123.123.123.123
),你应该能看到Nginx的默认欢迎页面。这说明Web服务器已经成功安装并对外提供服务了!
常见问题排查 :如果看不到欢迎页面,请按顺序检查:
- 服务器安全组是否已放通80端口?(回到第2.3节检查)
-
服务器本地防火墙是否关闭或放行了80端口?Ubuntu默认的
ufw防火墙可能是关闭的,可以用sudo ufw status查看。如果开启了,需要sudo ufw allow 'Nginx HTTP'。 -
Nginx服务是否真的在运行?用
sudo systemctl status nginx确认。
4.2 安装MySQL:可靠的数据库服务
网站的动态内容(如文章、用户评论)需要存储在数据库里。MySQL是最流行的开源关系型数据库之一。
安装MySQL服务器:
sudo apt install mysql-server -y
安装完成后,运行一个安全安装脚本,它会引导你进行一些重要安全设置,比如设置root密码、移除匿名用户、禁止root远程登录等。
sudo mysql_secure_installation
你会被问到一系列问题:
-
“VALIDATE PASSWORD PLUGIN”:是否安装密码验证插件?它要求设置强密码。对于个人测试环境可以选
n,生产环境建议选y。 - 随后设置 root用户的密码 ,请务必记住这个密码。
-
移除匿名用户?
y -
禁止root远程登录?
y(非常重要!我们后续会用其他用户连接数据库) -
移除测试数据库?
y -
立即重新加载权限表?
y
完成后,测试登录MySQL:
sudo mysql -u root -p
输入你刚刚设置的root密码,如果进入MySQL命令行提示符(
mysql>
),说明安装成功。输入
exit;
退出。
核心技巧 :生产环境中,绝对不要用root用户作为网站连接数据库的用户。我们应该为每个网站创建一个独立的数据库和专属用户。例如,为WordPress创建一个数据库和用户:
-- 在mysql>提示符下执行
CREATE DATABASE wordpress_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY '你的强密码';
GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
这样,网站代码将使用
wp_user
这个用户和
wordpress_db
这个数据库,权限被限制在单个数据库内,即使密码泄露,危害也相对可控。
4.3 安装PHP:让网站“动”起来
PHP是一种服务器端脚本语言,WordPress、Typecho等大部分开源网站程序都是用PHP写的。我们需要安装PHP以及Nginx与之通信所需的组件。
Ubuntu的默认仓库可能不是最新的PHP版本。我们可以添加一个第三方仓库来安装较新的PHP 8.1(以8.1为例,你可以选择其他版本):
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update
然后安装PHP及其常用扩展:
sudo apt install php8.1-fpm php8.1-mysql php8.1-curl php8.1-gd php8.1-mbstring php8.1-xml php8.1-zip -y
这里安装了:
-
php8.1-fpm:PHP FastCGI进程管理器,负责处理PHP脚本。 -
php8.1-mysql:让PHP能连接MySQL数据库。 - 其他扩展:GD库(处理图片)、cURL(网络请求)、mbstring(多字节字符串处理)等,是大多数PHP应用的必备。
安装完成后,启动PHP-FPM服务并设置开机自启:
sudo systemctl start php8.1-fpm
sudo systemctl enable php8.1-fpm
4.4 配置Nginx与PHP-FPM协同工作
现在,Nginx和PHP-FPM是两个独立的服务。我们需要告诉Nginx:“当用户请求一个
.php
文件时,不要直接返回文件内容,而是交给后端的PHP-FPM去处理,等它处理完把结果给我,我再返回给用户。”
这个“告诉”的过程,就是修改Nginx的站点配置文件。Nginx的配置文件通常位于
/etc/nginx/sites-available/
目录下。默认有一个
default
文件。我们最好为每个网站创建一个独立的配置文件。
-
创建网站配置文件 :
sudo nano /etc/nginx/sites-available/mywebsite(
mywebsite可以替换成你网站的名字,比如blog) -
编辑配置文件,输入以下内容 :
server { listen 80; listen [::]:80; # 支持IPv6 server_name your_domain_or_ip; # 重要!这里填你的域名或IP地址 root /var/www/mywebsite; # 你的网站代码存放目录 index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.1-fpm.sock; # 这里必须和你的PHP版本对应 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } location ~ /\.ht { deny all; } }关键参数解释 :
-
server_name:如果已有域名,就填域名(如www.yourdomain.com);如果暂时没有,就填服务器IP地址。 -
root:网站文件的根目录。我们等会儿需要创建这个目录。 -
fastcgi_pass:指定PHP-FPM监听的地址。这里用的是Unix Socket文件,比TCP端口方式性能更好。路径中的php8.1必须与你安装的PHP版本一致。你可以通过ls /run/php/命令查看存在的.sock文件来确认。
-
-
保存并退出 (在nano编辑器里,按
Ctrl+X,然后按Y,再按Enter)。 -
创建网站根目录并设置权限 :
sudo mkdir -p /var/www/mywebsite # 将目录所有者改为你的用户名和Nginx运行的用户组(www-data) sudo chown -R $USER:www-data /var/www/mywebsite # 设置目录权限,允许用户组写入(便于Web上传文件) sudo chmod -R 775 /var/www/mywebsite -
启用站点配置并测试 :
# 创建一个符号链接,启用该站点 sudo ln -s /etc/nginx/sites-available/mywebsite /etc/nginx/sites-enabled/ # 测试Nginx配置语法是否正确 sudo nginx -t如果看到
syntax is ok和test is successful的提示,说明配置无误。 -
重启Nginx使配置生效 :
sudo systemctl reload nginx -
测试PHP是否工作 : 在网站根目录创建一个PHP信息文件:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/mywebsite/info.php然后,在浏览器访问
http://你的服务器IP/info.php。如果能看到一个详细的PHP配置信息页面,说明Nginx和PHP-FPM已经成功联动,整个LNMP环境搭建完成!重要安全提示 :测试成功后, 务必立即删除 这个
info.php文件,因为它会暴露大量服务器信息,存在安全风险。sudo rm /var/www/mywebsite/info.php
5. 部署网站程序:以WordPress为例的实战
环境准备好了,就像毛坯房已经通了水电。现在我们要把“家具”和“装修”搬进去,也就是部署具体的网站程序。这里以全球使用最广泛的WordPress为例,其他PHP程序(如Typecho、Discuz!)流程大同小异。
5.1 获取并解压WordPress核心文件
首先,进入我们之前创建的网站根目录,下载最新的WordPress中文版压缩包。
cd /var/www/mywebsite
# 下载(如果wget速度慢,可以先用本地下载,然后通过SFTP工具上传)
sudo wget https://cn.wordpress.org/latest-zh_CN.tar.gz
# 解压
sudo tar -xzvf latest-zh_CN.tar.gz
解压后,会生成一个
wordpress
文件夹。我们需要把里面的所有文件移动到当前目录(即网站根目录),并清理压缩包。
sudo mv wordpress/* .
sudo rm -rf wordpress latest-zh_CN.tar.gz
现在,网站根目录下应该充满了WordPress的文件和文件夹。
5.2 配置WordPress数据库连接
WordPress需要一个数据库来存储所有内容。我们在第4.2节已经创建好了数据库和用户。现在需要告诉WordPress如何连接它。
WordPress提供了一个配置样本文件
wp-config-sample.php
。我们复制一份并重命名为
wp-config.php
,然后编辑它。
sudo cp wp-config-sample.php wp-config.php
sudo nano wp-config.php
找到文件中的以下几行,修改为你自己的数据库信息:
// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
/** WordPress数据库的名称 */
define( 'DB_NAME', 'wordpress_db' ); // 改为你创建的数据库名
/** MySQL数据库用户名 */
define( 'DB_USER', 'wp_user' ); // 改为你创建的数据库用户名
/** MySQL数据库密码 */
define( 'DB_PASSWORD', '你的强密码' ); // 改为该用户的密码
/** MySQL主机 */
define( 'DB_HOST', 'localhost' ); // 通常保持localhost,除非数据库在另一台服务器
保存并退出。
5.3 完成Web安装向导
现在,所有后端工作都已完成。打开浏览器,访问你的网站(
http://你的服务器IP
)。
你应该会看到WordPress著名的“五分钟安装”界面。选择语言(简体中文),点击“继续”。
接下来,它会显示你刚才在
wp-config.php
里填写的数据库信息,确认无误后点击“提交”。
然后,进入最后的站点信息配置页面:
- 站点标题 :你的网站名字。
-
用户名
:
不要用
admin!设置一个独特的管理员用户名。 - 密码 :系统会生成一个强密码,务必保存好。你也可以点击“显示密码”自己设置一个。
- 您的电子邮件 :填写有效的邮箱,用于接收通知和找回密码。
- 对搜索引擎的可见性 :如果网站还在测试,可以勾选;正式上线后取消勾选。
点击“安装WordPress”。如果一切顺利,你会看到安装成功的页面。点击“登录”,用你刚才设置的用户名和密码登录后台(
http://你的服务器IP/wp-admin
)。
恭喜!你的网站已经成功运行起来了。你可以在后台更换主题、安装插件、发布文章,开始你的网站之旅。
部署后必做检查清单 :
-
固定链接
:进入后台“设置”->“固定链接”,不要使用默认的“朴素”模式,选择“文章名”或“自定义结构”(如
/%postname%.html),这有利于SEO,然后点击保存。 保存后,可能会提示需要更新.htaccess文件,但因为我们用的是Nginx,需要手动配置重写规则。 将Nginx配置文件中location /部分修改为:
然后location / { try_files $uri $uri/ /index.php$is_args$args; }sudo nginx -t测试并sudo systemctl reload nginx重载。 - 更新与安全 :立即检查并更新WordPress核心、主题和插件到最新版本。删除不需要的默认主题和插件(如“Hello Dolly”)。
- 性能缓存 :考虑安装一个缓存插件(如WP Super Cache、W3 Total Cache),可以极大提升网站访问速度。
6. 进阶与优化:域名、HTTPS与性能调优
一个能访问的网站只是开始。要让网站更专业、更安全、更快,还需要以下几步。
6.1 绑定域名与DNS解析
使用IP地址访问网站既不专业也不方便。你需要一个域名。
-
购买域名 :可以在阿里云万网、腾讯云DNSPod等平台购买。
-
域名备案 :如果你的服务器在中国大陆,且域名要用于对外访问, 必须进行ICP备案 。这是法律要求,流程在云服务商后台都有详细引导,按要求提交资料即可,通常需要10-20个工作日。
-
DNS解析 :备案通过后,在你的域名管理后台,添加一条 A记录 。
-
主机记录:
www(如果你希望用www.yourdomain.com访问)或@(如果你希望用yourdomain.com访问)。 -
记录类型:
A - 记录值:填写你的云服务器 公网IP地址 。
- TTL:默认即可。 DNS生效需要时间,通常几分钟到几小时不等。
-
主机记录:
-
修改Nginx配置 :将之前配置文件里的
server_name后面的IP地址,改为你的域名。server_name www.yourdomain.com yourdomain.com;然后重载Nginx。
6.2 为网站添加免费的HTTPS(SSL证书)
HTTPS不仅加密数据传输,防止被窃听篡改,也是搜索引擎排名的影响因素,更是现代浏览器的强制要求(HTTP站点会被标记为“不安全”)。我们可以从 Let‘s Encrypt 获取免费的、自动续期的SSL证书,并通过 Certbot 工具自动化配置。
-
安装Certbot :
sudo apt install certbot python3-certbot-nginx -y -
获取并自动配置证书 :
sudo certbot --nginx -d www.yourdomain.com -d yourdomain.com按照提示操作:
- 输入你的邮箱(用于接收证书过期提醒)。
- 同意服务条款。
- 是否愿意分享你的邮箱?可选。
- 选择是否将HTTP流量重定向到HTTPS? 强烈建议选择2(重定向) ,这样所有HTTP请求都会自动跳转到HTTPS。
Certbot会自动完成以下工作:向Let‘s Encrypt申请证书、验证你对域名的所有权(通过Nginx)、修改你的Nginx配置文件以启用SSL、设置自动续期任务。
-
验证 :完成后,访问
https://www.yourdomain.com,浏览器地址栏应该显示一把小锁,表示连接是安全的。同时,访问http版本也会自动跳转到https。
自动续期测试 :Let‘s Encrypt证书有效期90天,Certbot会自动续期。你可以手动测试续期流程是否正常:
sudo certbot renew --dry-run
如果看到“The dry run was successful”字样,说明自动续期配置正常。
6.3 基础性能与安全优化
网站上线后,持续的微调能带来更好的体验。
1. Nginx性能优化(
/etc/nginx/nginx.conf
)
:
# 在http块内调整
http {
...
# 开启高效文件传输模式
sendfile on;
# 防止网络拥堵时数据包丢失
tcp_nopush on;
tcp_nodelay on;
# 保持连接超时时间,降低重复握手开销
keepalive_timeout 65;
# 限制客户端请求体大小,防止过大文件上传攻击
client_max_body_size 20m;
...
}
修改后记得
sudo nginx -t
和
sudo systemctl reload nginx
。
2. PHP-FPM优化(
/etc/php/8.1/fpm/pool.d/www.conf
)
:
根据服务器内存调整进程管理方式。对于1核2G的小内存服务器:
pm = dynamic
pm.max_children = 10 # 最大子进程数,不宜过大
pm.start_servers = 2 # 启动时的进程数
pm.min_spare_servers = 1 # 最小空闲进程
pm.max_spare_servers = 3 # 最大空闲进程
pm.max_requests = 500 # 每个进程处理一定请求后重启,防止内存泄漏
修改后重启PHP-FPM:
sudo systemctl restart php8.1-fpm
3. 安装Fail2ban防暴力破解 : Fail2ban可以监控系统日志,当发现多次失败的登录尝试(如SSH、WordPress后台)时,自动封禁对应IP。
sudo apt install fail2ban -y
sudo systemctl enable fail2ban --now
它开箱即用,会保护SSH。要保护WordPress,需要额外配置,网上有大量教程。
4. 定期备份 :这是最重要的!至少备份两部分:
-
网站文件
:
/var/www/mywebsite目录。 -
数据库
:使用
mysqldump命令定期导出。
可以将备份脚本加入crontab,实现自动化。同时,利用云服务商提供的 快照 功能,定期为整个系统盘创建镜像,这是最彻底的灾难恢复手段。mysqldump -u wp_user -p wordpress_db > /path/to/backup/wordpress_backup_$(date +%Y%m%d).sql
走到这一步,你已经从一个云服务器新手,变成了一个能够独立部署、配置、优化一个完整动态网站的实践者。这个过程看似步骤繁多,但每一步都有其明确的目的。最重要的是,你拥有了对这台服务器和这个网站的完全控制权,这是使用任何现成SaaS服务都无法比拟的体验和自由度。接下来,无论是尝试部署其他应用(如用Docker容器化部署),还是深入钻研Nginx高级配置、数据库调优,你都已经打下了坚实的基础。记住,遇到问题多查日志(
sudo journalctl -u nginx
,
sudo tail -f /var/log/nginx/error.log
),善用搜索引擎,社区的智慧总能帮你找到答案。

421

被折叠的 条评论
为什么被折叠?



