凌峰创科服务平台

如何搭建Nginx资源服务器?

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

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

环境准备

在开始搭建前,需确保服务器已安装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,并设置合适的权限:

如何搭建Nginx资源服务器?-图2
(图片来源网络,侵删)
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,使用vimnano编辑器打开:

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;
    }
}

配置说明

如何搭建Nginx资源服务器?-图3
(图片来源网络,侵删)
  • 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重新加载配置。

上传测试资源

通过scprsync或FTP工具将静态资源文件上传至/var/www/resources目录,在本地终端使用scp上传:

scp -r /path/to/local/resources user@server_ip:/var/www/resources/

上传完成后,访问http://your_domain.comhttp://server_ip/resources/filename,若能正常显示资源,则配置成功。

优化与安全加固

  1. 防盗链配置:在server块中添加以下内容,仅允许指定域名访问资源:

    location ~* \.(jpg|jpeg|png|gif)$ {
        valid_referers none blocked your_domain.com;
        if ($invalid_referer) {
            return 403;
        }
    }
  2. 限速配置:防止恶意用户大量下载资源占用带宽:

    location /download/ {
        limit_rate 100k; # 限速100KB/s
    }
  3. 启用Gzip压缩:在nginx.confhttp块中添加:

    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;
        }
    }
}
分享:
扫描分享到社交APP
上一篇
下一篇