Configuration 如何使用nginx提供图像服务
我对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文
~/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;
}