使用Nginx搭建图片传输服务:配置与优化指南

发布于:2025-08-28 ⋅ 阅读:(20) ⋅ 点赞:(0)

概述

  • 接上篇文章上传图片的功能,现在讲讲服务器的配置问题。

安装Nginx

  • 在Ubuntu系统上,可以使用以下命令安装Nginx:
sudo apt update
sudo apt install nginx
  • 安装完成后,检查Nginx是否成功安装:
nginx -v
  • 在启动Nginx之前,建议先检查80端口是否被占用(Nginx默认使用80端口):
sudo lsof -i :80
  • 如果端口被占用,可以考虑停止相关进程或为Nginx配置其他端口。

创建图片存储目录

  • 创建一个目录用于存放图片文件,并设置适当的权限:
sudo mkdir -p /opt/app_images
sudo chmod -R 777 /opt/app_images

配置Nginx

  • 编辑Nginx的配置文件/etc/nginx/nginx.conf,在http块中添加以下配置:
http {
    # 其他全局配置...
    client_max_body_size 50M;  # 允许上传的最大文件大小

    server {
        listen 8085;  # 监听8085端口

        # 上传接口反向代理到后端服务
        location /upload {
            # 代理到实际处理上传的后端服务(例如C++服务运行在8080端口)
            proxy_pass http://127.0.0.1:8080;
            proxy_set_header Host $host;
            proxy_set_header X-Real-IP $remote_addr;
        }

        # 图片访问路径
        location /images/ {
            alias /opt/app_images/;  # 图片存储目录
            autoindex off;           # 禁止目录列表
            expires 30d;             # 设置浏览器缓存时间为30天
        }
    }
}

Nginx相关指令

sudo systemctl start nginx #启动Nginx服务
sudo systemctl enable nginx #设置开机自启
sudo systemctl reload nginx #重新加载配置
sudo systemctl status nginx #检查Nginx状态

测试与验证

  • 使用curl或Postman测试上传接口:
curl -X POST -F "file=@/path/to/your/image.jpg" http://your-server-ip:8085/upload
  • 在浏览器中访问图片:
    http://your-server-ip:8085/images/your-image.jpg