我是nginx的新手,我被要求找到一种方法来提供根据缩放级别分离的Map Tiles。图像文件结构类似于~/data/images/7/65/70.png
,其中7是缩放级别,65和70是lon-lat值。文件夹65包含许多文件,例如71.png,72.png等。
我已正确安装Nginx,我可以收到Welcome to 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
我错过了什么?
答案 0 :(得分:15)
好的,让我解释一下,你已经有了一个localhost服务器,它在一个名为default
的文件中定义,该文件导致“欢迎使用nginx”或者出现一些东西,我相信你无法创建具有相同server_name
的新服务器,让我们将其删除并使您的localhost仅为这些图像服务,
default
删除sites-enabled
文件,如果您想要将其恢复,它仍会存在于sites-available
内。 (请注意sites-enabled
中的所有文件都只是来自sites-available
内文件的符号链接 sites-available
内创建了一个新文件,并根据需要调用它,例如images-app
在images-app
文件中创建新服务器,我假设应用程序的根目录在名为/data
的文件夹中,当然您会将其映射到您自己的服务器结构
server {
server_name localhost;
root /data;
index index.html;
location / {
try_files $uri =404;
}
}
现在我们转到sites-enabled
并启用我们在sites-available
内创建的网站
sudo ln -s /etc/nginx/sites-available/images-app /etc/nginx/sites-enabled/
确保所有nginx配置都正确
sudo nginx -t
如果没有错,我们可以继续并重新加载nginx设置
sudo service nginx reload
答案 1 :(得分:3)
我也是nginx的新手,这是我的解决方案,与Mohammad AbuShady的答案类似:
sites-enabled/default
whatever.conf
/etc/nginx/conf.d/
原因是:
sites-enabled/default
已定义服务器正在使用/ var / www / html
监听80server {
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
文件包含其他配置文件include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
my.conf的第1版是/ home / scotv /上的root,但是会出现403 Forbidden错误,请检查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"
答案 2 :(得分:0)
对于我来说,我只是编辑了/etc/nginx/sites-enabled/default
文件。
我添加了以下配置:
location /images/ {
root /data;
}
并将图像放置在/data/images
下:
和网址有效:http://localhost/images/example.png
我使用VS Code作为SuperUser。 (我知道这很糟糕,但我接受风险) 它对根访问文件的编辑很有帮助: