凌峰创科服务平台

服务器上如何搭建网站?

在服务器上搭建网站是一个涉及多个步骤的系统工程,需要综合考虑服务器环境配置、网站源码管理、服务部署及安全优化等方面,以下从准备工作到最终上线,详细拆解整个流程,帮助用户完成网站搭建。

服务器上如何搭建网站?-图1
(图片来源网络,侵删)

准备工作:明确需求与选择服务器

在开始搭建前,需先明确网站的基本需求,包括网站类型(如个人博客、企业官网、电商网站等)、技术栈(如PHP+MySQL、Node.js+MongoDB、Python+Django等)、预期访问量及数据存储需求,这些将直接影响服务器配置的选择。

服务器选择

  • 云服务器:阿里云、腾讯云、华为云等,提供弹性扩展、按需付费,适合中小型网站,初期可选择2核4G配置。
  • 传统VPS:性价比高,但需自行维护系统,适合有技术基础的用户。
  • 物理服务器:适合大型网站,成本高且维护复杂,一般不推荐新手使用。

服务器系统:Linux(如Ubuntu 20.04、CentOS 7)是主流选择,开源稳定,且社区支持丰富;Windows Server适合.NET技术栈网站,但 licensing 成本较高。

服务器初始化配置

购买服务器后,需完成基础环境配置,确保后续操作安全高效。

服务器上如何搭建网站?-图2
(图片来源网络,侵删)

连接服务器

通过SSH工具(如Xshell、PuTTY)或终端连接服务器,默认端口为22,首次登录需修改默认密码(通过云服务商控制台操作)。

更新系统与安装基础软件

# Ubuntu/Debian系统
sudo apt update && sudo apt upgrade -y
sudo apt install -y wget curl vim unzip
# CentOS/RHEL系统
sudo yum update -y
sudo yum install -y wget curl vim unzip

配置防火墙

仅开放必要端口(如80 HTTP、443 HTTPS、22 SSH),其他端口禁用以提升安全性。

# Ubuntu使用ufw
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
# CentOS使用firewalld
sudo firewall-cmd --permanent --add-port=22/tcp
sudo firewall-cmd --permanent --add-port=80/tcp
sudo firewall-cmd --permanent --add-port=443/tcp
sudo firewall-cmd --reload

创建非root用户

避免直接使用root用户操作,降低安全风险:

sudo adduser username
sudo usermod -aG sudo username  # 赋予sudo权限
su - username  # 切换至新用户

安装Web服务器环境

Web服务器是网站的入口,需根据网站技术栈选择Nginx或Apache,并配置对应的运行环境(如PHP、Node.js等)。

安装Nginx(推荐)

Nginx具有高并发、低内存占用的优势,适合现代网站架构。

# Ubuntu
sudo apt install -y nginx
# CentOS
sudo yum install -y epel-release  # 安装EPEL源
sudo yum install -y nginx
# 启动并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx

安装后,通过浏览器访问服务器IP,若显示“Welcome to nginx!”,则说明安装成功。

安装Apache(可选)

若网站依赖Apache模块(如mod_rewrite),可选择安装:

# Ubuntu
sudo apt install -y apache2
# CentOS
sudo yum install -y httpd
# 启动服务
sudo systemctl start httpd  # CentOS中服务名为httpd
sudo systemctl enable httpd

安装数据库

根据网站需求选择MySQL(关系型)或MongoDB(非关系型)。
MySQL安装(以Ubuntu为例)

sudo apt install -y mysql-server
sudo systemctl start mysql
sudo systemctl enable mysql
# 安全配置(设置root密码、移除匿名用户等)
sudo mysql_secure_installation

MongoDB安装(以CentOS为例)

sudo yum install -y https://repo.mongodb.org/yum/redhat/mongodb-org/4.4/x86_64/RPMS/mongodb-org-server-4.4.10-1.el7.x86_64.rpm
sudo systemctl start mongod
sudo systemctl enable mongod

安装运行环境

以PHP为例(WordPress、Discuz等常见程序需PHP环境):

# Ubuntu安装PHP 7.4及常用扩展
sudo apt install -y php7.4-fpm php7.4-mysql php7.4-curl php7.4-gd php7.4-mbstring
# CentOS安装PHP 7.4
sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum install -y php php-fpm php-mysqlnd php-curl php-gd php-mbstring
# 启动PHP-FPM
sudo systemctl start php7.4-fpm  # Ubuntu
sudo systemctl start php-fpm      # CentOS
sudo systemctl enable php7.4-fpm

配置网站与部署源码

环境安装完成后,需将网站源码上传至服务器,并配置Nginx/Apache虚拟主机,实现域名访问。

创建网站目录

sudo mkdir -p /var/www/yourdomain.com
sudo chown -R $USER:$USER /var/www/yourdomain.com  # 设置目录所有者

上传源码

可通过SCP、FTP(如FileZilla)或Git上传源码,以Git为例(适用于开源程序如WordPress):

cd /var/www/yourdomain.com
git clone https://github.com/wordpress/wordpress.git .  # 克隆WordPress源码

配置Nginx虚拟主机

创建配置文件:

sudo vim /etc/nginx/sites-available/yourdomain.com
```  以PHP网站为例):  
```nginx
server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    root /var/www/yourdomain.com;
    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/php7.4-fpm.sock;  # Ubuntu路径
        # CentOS路径为:fastcgi_pass 127.0.0.1:9000;
    }
    location ~ /\.ht {
        deny all;
    }
}

启用配置并重启Nginx:

sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
sudo nginx -t  # 检查配置是否正确
sudo systemctl reload nginx

配置数据库

若网站需要数据库(如WordPress),需在MySQL中创建数据库及用户:

mysql -u root -p
CREATE DATABASE yourdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'youruser'@'localhost' IDENTIFIED BY 'yourpassword';
GRANT ALL PRIVILEGES ON yourdb.* TO 'youruser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

随后在网站安装向导(如访问yourdomain.com)中填写数据库信息,完成安装。

域名解析与HTTPS配置

域名解析

登录域名服务商控制台,添加A记录将域名指向服务器IP:
| 记录类型 | 主机记录 | 记录值 |
|----------|----------|--------|
| A | @ | 服务器IP |
| A | www | 服务器IP |

等待DNS生效(通常10分钟-24小时),通过浏览器访问域名,若显示网站内容则解析成功。

配置HTTPS(必选)

使用Let's Encrypt免费证书,通过Certbot自动申请:

# Ubuntu安装Certbot
sudo apt install -y certbot python3-certbot-nginx
# 申请证书
sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

按提示填写邮箱并同意条款,Certbot会自动修改Nginx配置,启用HTTPS,证书有效期为90天,可通过定时任务自动续期:

sudo crontab -e

添加以下行(每月1号自动续期):

0 0 1 * * /usr/bin/certbot renew --quiet

安全与性能优化

安全加固

  • 修改SSH端口:避免默认22端口,编辑/etc/ssh/sshd_config,修改Port 2222,重启SSH服务。
  • 禁用root登录:在/etc/ssh/sshd_config中设置PermitRootLogin no
  • 安装Fail2ban:防暴力破解工具,sudo apt install -y fail2ban,配置/etc/fail2ban/jail.local封禁恶意IP。

性能优化

  • 启用缓存:Nginx配置proxy_cache或安装Redis作为数据库缓存。
  • 压缩资源:启用Gzip压缩,在Nginx配置中添加:
    gzip on;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
  • 使用CDN:将静态资源(图片、CSS、JS)托管至CDN,减轻服务器压力。

监控与维护

安装监控工具

使用htop监控资源占用,iftop监控流量,或部署Zabbix、Prometheus等专业监控系统。

定期备份

  • 数据库备份:通过mysqldump定时导出数据库:
    mysqldump -u root -p yourdb > backup_$(date +%Y%m%d).sql
  • 文件备份:使用rsynctar备份网站目录,并上传至云存储(如阿里云OSS)。

更新维护

定期更新服务器系统、Web服务器及网站程序,修复安全漏洞。

相关问答FAQs

Q1:搭建网站时出现“403 Forbidden”错误,如何解决?
A:403错误通常是由于目录权限不正确或Nginx配置问题导致,首先检查网站目录所有者是否为当前用户(ls -la /var/www/yourdomain.com),可通过sudo chown -R $USER:$USER /var/www/yourdomain.com修复;其次检查Nginx配置中的root路径是否正确,并确保index文件存在(如index.php)。

Q2:如何提升网站并发访问能力?
A:可通过以下方式优化:

  1. 使用负载均衡:通过Nginx upstream模块或多台服务器实现负载均衡,分散请求压力。
  2. 启用缓存:配置Nginx静态资源缓存或使用Redis缓存数据库查询结果,减少重复计算。
  3. 优化数据库:对数据库表添加索引,避免慢查询,或使用读写分离(主从复制)。
  4. 升级服务器配置:若CPU、内存不足,可云服务商提供的弹性升级功能,提升服务器硬件性能。
分享:
扫描分享到社交APP
上一篇
下一篇