web服务器搭建教程
- 云服务器
- 2026-01-06
- 7
Web服务器搭建教程涵盖了从环境准备到服务配置的完整流程,适合初学者和有一定基础的用户,本文将以Linux系统(以Ubuntu为例)和Nginx服务器为例,详细讲解搭建步骤,并辅以常见问题解答,帮助读者顺利完成Web服务器的部署。
环境准备
在开始搭建前,需确保系统满足基本要求:推荐使用Ubuntu 20.04或更高版本,至少1GB内存,10GB可用存储空间,以及稳定的网络连接,首先更新系统软件包列表并安装必要的工具,打开终端执行以下命令:
sudo apt update && sudo apt upgrade y sudo apt install y curl wget vim git
需确认服务器已分配静态IP地址(如192.168.1.100),并配置防火墙允许HTTP(80端口)和HTTPS(443端口)流量,使用UFW防火墙时,可通过以下命令开放端口:
sudo ufw allow 80/tcp sudo ufw allow 443/tcp sudo ufw enable
安装Web服务器软件
Nginx是一款高性能的HTTP和反向代理服务器,因其轻量级和高稳定性成为主流选择,通过APT仓库安装Nginx:
sudo apt install y nginx
安装完成后,启动Nginx服务并设置为开机自启:
sudo systemctl start nginx sudo systemctl enable nginx
验证Nginx是否正常运行,在浏览器中访问服务器的IP地址(http://192.168.1.100),若显示“Welcome to nginx!”页面,则表示安装成功。
配置服务器虚拟主机
虚拟主机允许单个服务器托管多个网站,以下以配置示例域名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; } error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /var/www/html; } }
保存文件后,创建网站根目录并设置权限:
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/html
创建一个测试页面index.html:
echo "<h1>Welcome to example.com</h1>" > /var/www/example.com/html/index.html
启用虚拟主机配置,通过创建符号链接链接到sitesenabled目录:
sudo ln s /etc/nginx/sitesavailable/example.com /etc/nginx/sitesenabled/
测试Nginx配置是否正确并重启服务:

通过浏览器访问http://example.com应能看到测试页面。
安装并配置数据库(可选)
若网站需要数据库支持(如WordPress),可安装MySQL或MariaDB,以MariaDB为例:
sudo apt install y mariadbserver mariadbclient sudo systemctl start mariadb sudo systemctl enable mariadb
运行安全脚本设置root密码并移除匿名用户:
sudo mysql_secure_installation
根据提示完成配置,然后创建数据库和用户:
sudo mysql u root p CREATE DATABASE example_db; CREATE USER 'example_user'@'localhost' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON example_db.* TO 'example_user'@'localhost'; FLUSH PRIVILEGES; EXIT;
部署动态网站(以PHP为例)
若需运行PHP动态网页,安装PHPFPM和常用扩展:
sudo apt install y phpfpm phpmysql phpcurl phpgd phpmbstring phpxml phpxmlrpc phpsoap phpintl phpzip
修改Nginx配置以支持PHP,编辑虚拟主机文件,在location /块后添加:

location ~ .php$ { include snippets/fastcgiphp.conf; fastcgi_pass unix:/var/run/php/php7.4fpm.sock; # 根据PHP版本调整路径 }
重启Nginx服务:
sudo systemctl restart nginx
在网站根目录创建info.php测试PHP是否正常:
echo "<?php phpinfo(); ?>" > /var/www/example.com/html/info.php
访问http://example.com/info.php,若显示PHP配置信息,则配置成功。
配置SSL证书(HTTPS)
使用Let’s Encrypt免费证书为网站启用HTTPS,安装Certbot:
sudo apt install y certbot python3certbotnginx `` 申请证书(替换域名): ```bash sudo certbot nginx d example.com d www.example.com `` 根据提示选择将HTTP流量重定向到HTTPS,证书自动续期功能会通过Certbot定时任务配置。 ### 七、性能优化与安全加固 1. **优化Nginx配置**:调整`/etc/nginx/nginx.conf`中的`worker_processes`和`worker_connections`参数,根据服务器核心数和内存优化。 2. **启用缓存**:在虚拟主机配置中添加`expires`指令,静态资源缓存设置: ```nginx location ~* .(jpg|jpeg|png|gif|ico|css|js)$ { expires 7d; add_header CacheControl "public, immutable"; }
- 限制访问频率:使用ngx_http_limit_req_module模块防止分布攻破,在http块中添加: limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
在虚拟主机配置中应用:
limit_req zone=one burst=20 nodelay;
监控与维护
定期检查Nginx日志(/var/log/nginx/access.log和error.log),使用logrotate工具管理日志轮转,监控服务器资源使用情况,可通过htop或glances工具实时查看。
相关问答FAQs
问题1:如何修改Nginx默认端口?
解答:编辑/etc/nginx/sitesavailable/default或虚拟主机配置文件,修改listen指令后的端口号(如listen 8080;),保存后执行sudo systemctl restart nginx重启服务,确保防火墙开放新端口(sudo ufw allow 8080/tcp)。
问题2:网站访问出现403错误怎么办?
解答:403错误通常由文件权限问题导致,检查网站根目录权限是否正确(sudo chown R wwwdata:wwwdata /var/www/example.com/html),并确保目录和文件权限为755和644,若问题依旧,检查Nginx配置中的root路径是否正确指向网站目录。