在Ubuntu系统中搭建Web服务器是许多开发者和系统管理员的常见需求,本文将详细介绍基于Nginx的Web服务器搭建过程,包括环境准备、安装配置、安全设置及部署测试等环节,帮助读者完成从零到一的搭建工作。
环境准备
首先需要确保Ubuntu系统已更新至最新版本,打开终端执行以下命令更新软件包列表和已安装的包:
sudo apt update && sudo apt upgrade y
同时建议安装buildessential和libpcre3dev等编译工具,便于后续扩展安装:
sudo apt install buildessential libpcre3dev zlib1gdev y
安装Nginx
Nginx因其高性能和低资源消耗成为主流Web服务器选择,通过APT仓库安装可直接获得稳定版本:
sudo apt install nginx y
安装完成后启动Nginx服务并设置开机自启:
sudo systemctl start nginx sudo systemctl enable nginx
可通过systemctl status nginx检查服务状态,若显示active (running)则表示安装成功。
配置防火墙
Ubuntu默认使用UFW防火墙,需允许HTTP(80)和HTTPS(443)端口流量:
sudo ufw allow 'Nginx Full' sudo ufw reload
此时通过浏览器访问服务器公网IP,应能看到Nginx欢迎页面。
配置虚拟主机
虚拟主机实现多网站隔离,以配置example.com为例:
- 创建网站根目录:
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
- 创建测试页面:
echo "<h1>Welcome to example.com</h1>" > /var/www/example.com/html/index.html
- 创建Nginx配置文件:
sudo nano /etc/nginx/sitesavailable/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; } } - 启用配置并测试:
sudo ln s /etc/nginx/sitesavailable/example.com /etc/nginx/sitesenabled/ sudo nginx t
若显示
syntax is ok和test is successful,则重载Nginx:sudo systemctl reload nginx
安装配置PHP(可选)
若需运行动态网页,可安装PHPFPM:
sudo apt install phpfpm phpmysql y
修改Nginx配置以支持PHP,在location /块中添加:
location ~ .php$ {
include snippets/fastcgiphp.conf;
fastcgi_pass unix:/var/run/php/php8.1fpm.sock;
}
(注:PHP版本号可能因系统版本不同而变化,可通过php v查看)
重启PHPFPM和Nginx服务:
sudo systemctl restart php8.1fpm nginx
安全加固
- 禁用目录列表:在Nginx配置文件中添加
autoindex off; - 设置文件上传限制:在PHP配置中调整
upload_max_filesize和post_max_size - 配置SSL证书:使用Let’s Encrypt免费证书:
sudo apt install certbot python3certbotnginx y sudo certbot nginx d example.com d www.example.com
按提示选择HTTPS重定向即可实现全站加密。
部署测试
在本地电脑/etc/hosts文件中添加服务器IP与域名映射,访问http://example.com应显示自定义测试页面,若部署WordPress等CMS,需额外配置数据库和权限。
常见问题FAQs
Q1: 访问网站显示403 Forbidden错误怎么办?
A: 主要检查三个权限:
- 网站根目录权限应为755(
sudo chmod 755 /var/www/example.com) - HTML文件权限644(
sudo chmod 644 /var/www/example.com/html/*) - Nginx运行用户配置(
/etc/nginx/nginx.conf中的user指令需与目录所有者一致)
Q2: 如何优化Nginx性能?
A: 可通过以下方式优化:
- 调整worker进程数:
worker_processes auto;(根据CPU核心数设置) - 启用GZIP压缩:在
http块中添加:gzip on; gzip_types text/plain text/css application/json application/javascript text/xml;
- 配置缓存:在
location块中添加expires 1d;设置浏览器缓存时间 - 限制连接数:通过
limit_conn_zone和limit_conn指令控制并发连接数
通过以上步骤,即可完成Ubuntu下高性能Web服务器的搭建,后续可根据实际需求扩展负载均衡、反向代理等高级功能。
