在服务器上部署 Nginx 并设置图片服务器

问题:我要指定/home/images专门存放图片!该怎么做,而且我的系统是centos8系统,只有一个root用户,用root用户已经安装了nginx

答案:
既然你使用了 CentOS 8,并且你想使用 /home/images 目录存放图片,以下是步骤:

  1. 创建和设置文件夹权限

    首先,确保 /home/images 目录已经存在:

    mkdir -p /home/images
    

    由于你说只有一个 root 用户,并且你已经以 root 用户安装了 Nginx,那么 nginx 很可能以 nginx 用户运行。确保此用户可以读取目录中的文件:

    chown -R nginx:nginx /home/images
    
  2. 配置Nginx

    Nginx的默认配置文件在 /etc/nginx/nginx.conf。你可以直接在这里添加一个新的 server 块或创建一个单独的配置文件。

    建议在 /etc/nginx/conf.d/ 创建一个新的配置文件,例如 /etc/nginx/conf.d/images.conf,并添加以下内容:

    server {
        listen 80;
        server_name images.yourdomain.com;  # 更改为你的域名
    
        location / {
            root /home/images;
            try_files $uri $uri/ =404;
            add_header Cache-Control "public, max-age=86400"; # 设置缓存为24小时
            expires 1d; # 使图片在客户端缓存24小时
        }
    }
    
  3. 重载Nginx配置

    重启或重载Nginx以应用更改:

    systemctl reload nginx
    
  4. 上传图片

    现在,你可以将图片上传到 /home/images 目录,并通过 http://images.yourdomain.com/yourimage.jpg 这样的URL访问它们。

注意

  • 确保你的域名 images.yourdomain.com 指向了运行 Nginx 的服务器的IP地址。
  • 在 CentOS 系统上,你可能还需要调整 SELinux 设置或暂时关闭 SELinux,特别是当你使用非标准目录(如 /home/images)时。要检查 SELinux 的状态,使用 sestatus 命令。如果遇到权限问题,并且不希望禁用 SELinux,你需要调整相关的 SELinux 上下文。

你可能感兴趣的:(Nginx,服务器,nginx,运维)