Configuration 如何使用nginx提供图像服务

Configuration 如何使用nginx提供图像服务,configuration,nginx,configuration-files,Configuration,Nginx,Configuration Files,我对nginx完全陌生,我被要求找到一种方法来提供根据缩放级别分开的地图分幅。图像文件结构类似于~/data/images/7/65/70.png,其中7是缩放级别,65和70是lon-lat值。文件夹65包含许多文件,如71.png、72.png等 我已经正确安装了Nginx,我可以收到欢迎使用Nginx的消息。我已按照http://nginx.org/en/docs/beginners_guide.html并创建了/data/www和/data/images目录。我已将index.html文

我对nginx完全陌生,我被要求找到一种方法来提供根据缩放级别分开的地图分幅。图像文件结构类似于
~/data/images/7/65/70.png
,其中7是缩放级别,65和70是lon-lat值。文件夹65包含许多文件,如71.png、72.png等

我已经正确安装了Nginx,我可以收到
欢迎使用Nginx
的消息。我已按照
http://nginx.org/en/docs/beginners_guide.html
并创建了
/data/www
/data/images
目录。我已将index.html文件放在
/data/www
下,并将图像平铺在
/data/images
下。然后,我通过在http标记中添加以下行来修改配置文件:

server {
    location / {
        root /data/www;
    }

    location /images/ {
        root /data;
    }
}
在重新加载配置文件并在浏览器上输入localhost后,我既无法获取index.html文件,也无法查看图像

我试图做的是在输入以下内容时显示图像:

http://localhost/1.0.0/basemap/7/65/70.png
  • 7:表示第7缩放级别的文件夹
  • 65:指示纬度的文件夹
  • 70.png:表示经度的文件(文件夹65包含许多png文件)

我遗漏了什么?

好的,让我解释一下,您已经有了一个本地主机服务器,它定义在一个名为
default
的文件中,该文件导致出现“欢迎使用nginx”或其他内容,我相信您无法创建具有相同
服务器名称的新服务器,让我们删除它,让您的本地主机只提供这些图像

  • 首先,我们需要从启用的
    站点
    中删除
    默认
    文件,如果您想要取回它,它将仍然存在于可用的
    站点中。(请注意,启用的
    站点中的所有文件都只是可用
    站点中文件的符号链接
  • 我们在可用的
    站点中创建一个新文件
    ,并可以随意调用它,例如
    图像应用程序
  • 图像应用程序
    文件中创建新服务器,我假设应用程序的根目录位于名为
    /data
    的文件夹中,当然,您会将其映射到您自己的服务器结构

    server {
        server_name localhost;
        root /data;
        index index.html;
        location / {
            try_files $uri =404;
        }
    }
    
  • 现在我们转到
    站点启用
    并启用我们在
    站点可用中创建的此站点

    sudo ln -s /etc/nginx/sites-available/images-app /etc/nginx/sites-enabled/
    
  • 确保所有nginx配置都正确

    sudo nginx -t
    
  • 如果没有问题,我们可以继续重新加载nginx设置

    sudo service nginx reload
    

我也是nginx新手,以下是我的解决方案,与Mohammad AbuShady的答案类似:

  • 删除已启用/默认的
    站点
  • /etc/nginx/conf.d/
原因是:

sites enabled/default
已定义服务器 即使用/var/www/html监听80根

server {
  listen 80 default_server;
  listen [::]:80 default_server;

  root /var/www/html;
  location / {
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ =404;
    }
}
nginx.conf
文件包括其他conf文件 注意许可 my.conf的第一版根目录位于/home/scotv/,但将获得403禁止的错误,请检查error.log:

2016/04/07 20:12:44 [error] 12466#0: *2 open() "/home/scotv/data/a" failed (13: Permission denied), 
client: 127.0.0.1, server: , request: "GET /a HTTP/1.1", host: "localhost"

就我的情况而言,我刚刚编辑了
/etc/nginx/sites enabled/default
文件

我添加了以下配置:

location /images/ {
            root /data;
        }
并将图像放置在
/data/images
下:

url的工作原理是:

我使用VS代码作为超级用户。(我知道这很糟糕,但我接受风险) 它对根访问文件编辑有很大帮助:


为什么要创建一个新的服务器块,您计划通过什么URL访问这些图像,它们仍然是本地主机,还是您有一个指向您的服务器的域?它们是本地主机。没有域名。我创建了新的服务器块,因为《初学者指南》说,您是否在
/etc/nginx
中有一个
站点已启用
站点可用
文件夹?是的,这些文件夹在
/etc/nginx
中,并且都有
默认
文件。我也编辑了这篇文章,请检查这篇文章是否非常详细和有指导意义。由于磁盘错误,我不得不删除我的虚拟机。我现在正在重新安装它,并将在安装完成后进行尝试。非常感谢你,我刚刚有机会尝试一下,效果非常好。感谢您的详细回答和宝贵时间
location /images/ {
            root /data;
        }