搭建Nginx资源服务器是许多企业和开发者在部署静态资源(如图片、视频、CSS、JavaScript文件等)时的常见选择,因其高性能、稳定性、低资源占用及灵活的配置特性而广受欢迎,以下是详细的搭建步骤及注意事项,帮助您快速完成配置。

环境准备
在开始搭建前,需确保服务器已安装Linux操作系统(如Ubuntu、CentOS等),并具备root或sudo权限,以Ubuntu为例,首先更新系统软件包列表:
sudo apt update sudo apt upgrade -y
然后安装Nginx:
sudo apt install nginx -y
安装完成后,通过systemctl status nginx检查服务状态,若显示“active (running)”,则表示安装成功,首次访问服务器的公网IP,若看到Nginx默认欢迎页面,说明服务已正常运行。
配置资源服务器
创建资源目录
在服务器上创建用于存放静态资源的目录,例如/var/www/resources,并设置合适的权限:

sudo mkdir -p /var/www/resources sudo chown -R www-data:www-data /var/www/resources sudo chmod -R 755 /var/www/resources
www-data是Nginx默认运行用户,赋予其读写权限可避免文件访问问题。
编写Nginx配置文件
Nginx的配置文件通常位于/etc/nginx/sites-available/目录下,新建一个配置文件,例如resources.conf,使用vim或nano编辑器打开:
sudo vim /etc/nginx/sites-available/resources.conf
输入以下配置内容:
server {
listen 80;
server_name your_domain.com; # 替换为您的域名或公网IP
root /var/www/resources;
index index.html;
# 访问日志和错误日志配置
access_log /var/log/nginx/resources.access.log;
error_log /var/log/nginx/resources.error.log;
# 静态资源缓存配置(针对不同文件类型设置缓存时间)
location ~* \.(jpg|jpeg|png|gif|ico|css|js|pdf|txt|zip|tar)$ {
expires 7d; # 缓存7天
add_header Cache-Control "public, no-transform";
}
# 禁止访问隐藏文件(如.htaccess)
location ~ /\. {
deny all;
access_log off;
log_not_found off;
}
# 安全配置:禁止访问敏感文件
location ~* \.(env|log|conf)$ {
deny all;
}
}
配置说明:

listen 80:监听80端口(HTTP);若需HTTPS,需配置SSL证书并修改为443端口。root:指定资源根目录,所有请求将从此目录查找文件。expires:设置静态资源缓存时间,减少重复请求,提升访问速度。deny all:禁止访问隐藏文件和敏感配置文件,增强安全性。
启用配置文件并测试
创建配置文件的软链接到sites-enabled目录以启用站点:
sudo ln -s /etc/nginx/sites-available/resources.conf /etc/nginx/sites-enabled/
删除默认配置文件(可选):
sudo rm /etc/nginx/sites-enabled/default
检查Nginx配置语法是否正确:
sudo nginx -t
若返回“syntax is ok”和“test is successful”,则配置正确,执行sudo systemctl reload nginx重新加载配置。
上传测试资源
通过scp、rsync或FTP工具将静态资源文件上传至/var/www/resources目录,在本地终端使用scp上传:
scp -r /path/to/local/resources user@server_ip:/var/www/resources/
上传完成后,访问http://your_domain.com或http://server_ip/resources/filename,若能正常显示资源,则配置成功。
优化与安全加固
-
防盗链配置:在
server块中添加以下内容,仅允许指定域名访问资源:location ~* \.(jpg|jpeg|png|gif)$ { valid_referers none blocked your_domain.com; if ($invalid_referer) { return 403; } } -
限速配置:防止恶意用户大量下载资源占用带宽:
location /download/ { limit_rate 100k; # 限速100KB/s } -
启用Gzip压缩:在
nginx.conf的http块中添加:gzip on; gzip_types text/plain text/css application/json application/javascript text/xml;
FAQs
问题1:如何配置Nginx支持大文件上传?
解答:修改nginx.conf中的client_max_body_size参数,默认为1MB,可根据需求调整(如100M):
http {
client_max_body_size 100M;
}
修改后执行sudo systemctl reload nginx生效。
问题2:如何通过Nginx实现负载均衡?
解答:在http块中定义upstream服务器组,然后在server块中使用proxy_pass转发请求:
http {
upstream backend {
server 192.168.1.10:8000;
server 192.168.1.11:8000;
}
server {
listen 80;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
}
}
} 