私はnginxを完全に使い始めて、ズームレベルに応じて分けられたマップタイルを提供する方法を見つけるように求められます。画像ファイルの構造は~/data/images/7/65/70.png
に似ています。7はズームレベル、65と70は経度と緯度の値です。フォルダ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
何が欠けていますか?
わかりました。何か説明します。「[nginxへようこそ]」または何かが表示される原因となるファイルであるdefault
というファイル内に定義されているlocalhostサーバーがすでにあります。 t同じserver_name
を使用して新しいサーバーを作成し、それを削除して、ローカルホストにそれらのイメージのみを提供させます。
sites-enabled
からdefault
ファイルを削除する必要があります。元に戻す場合は、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
私はnginxも初めてです。MohammadAbuShadyの回答と同様の私のソリューションは次のとおりです。
sites-enabled/default
whatever.conf
in /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ファイルが含まれていますinclude /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
my.confの最初のエディションは/ 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"
私の場合、/etc/nginx/sites-enabled/default
ファイルを編集しました。
私は次の設定を追加しました:
location /images/ {
root /data;
}
/data/images
の下に画像を配置:
とURLは動作します: http://localhost/images/example.png
SuperUserとしてVS Codeを使用しています。 (私はそれが悪いことを知っています、しかし私はリスクを受け入れます)それはルートアクセスファイル編集で多くの助けになります: