Использование Nginx для обслуживания статических файлов в подкаталоге - PullRequest
0 голосов
/ 06 июня 2018

В настоящее время у меня есть куча рабочих статических файлов на доменном имени khairulslt.me (из NameCheap).Недавно я попытался настроить поддомен (khairulslt.me/RGBGame), как показано в коде ниже;Тем не менее, я продолжаю получать 404 ошибки.Что я пропускаю?

server {
  listen 80;

  index circles.html;
  server_name khairulslt.me www.khairulslt.me;

  location / {
  root /var/www/khairulslt.me;
  add_header 'Cache-Control' 'no-store, no-cache, must-revalidate, proxy- 
  revalidate, max-age=0';
  expires off;
  }

  location /RGBGame {
  alias /var/www/RGBGame/colorGame.html;
  index colorGame.html;
  }
}

PS: я хочу использовать новые файлы в качестве рабочего веб-приложения под той же каплей Digital Ocean, которую я использую для приложения кругов.

Ответы [ 3 ]

0 голосов
/ 06 июня 2018

Псевдоним, кажется, указывает на файл colorGame.html, попробуйте это:

server {
  listen 80;

  server_name khairulslt.me www.khairulslt.me;


  location /RGBGame/ {
     alias /var/www/RGBGame/;
  }
}

При использовании alias запрос к ://khairulslt.me/RGBGame/file.foo будет обслуживать файлы из:

/var/www/RGBGame/file.foo

Можно использовать, например, root (добавить местоположение к пути):

  location /RGBGame/ {
     root /var/www/khairulslt.me/;
  }

В этом случае запросы к ://khairulslt.me/RGBGame/file.foo будут обслуживать файлы из:

/var/www/khairulslt.me/RGBGame/file.foo
0 голосов
/ 10 июня 2018

Решил это.Необходимо изменить этот блок кода здесь:

location /RGBGame {
root /var/www/khairulslt.me;
index colorGame.html;
try_files $uri $uri/ /var/www/RGBGame/colorGame.html?q=$uri&$args;
autoindex off;
}

Оставит мою окончательную конфигурацию здесь на случай, если она кому-нибудь поможет:

server {

  server_name khairulslt.me www.khairulslt.me;

  autoindex off;
  location / {
    root /var/www/khairulslt.me;
    index circles.html;
  }


listen 443 ssl; # managed by Certbot
ssl_certificate /etc/letsencrypt/live/khairulslt.me/fullchain.pem; # managed by 
Certbot
ssl_certificate_key /etc/letsencrypt/live/khairulslt.me/privkey.pem; # managed 
by Certbot
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot

location /RGBGame {
    root /var/www/khairulslt.me/RGBGame;
    index colorGame.html;
    try_files $uri $uri/ /var/www/RGBGame/colorGame.html?q=$uri&$args;
    autoindex off;
  }

location /robots.txt { return 200 "User-agent: *\nDisallow: /\n"; 
  }

}

 server {
if ($host = www.khairulslt.me) {
    return 301 https://$host$request_uri;
  } # managed by Certbot


if ($host = khairulslt.me) {
    return 301 https://$host$request_uri;
  } # managed by Certbot


listen 80;
server_name khairulslt.me www.khairulslt.me;
return 404; # managed by Certbot
}

Что этот конфиг делает:

1) Служите статическим файлам, Веб-приложение № 1 (также как группа файлов html / css / js) по URL-адресу khairulslt.me

2) Служите второму набору статических файлов, Веб-приложение № 2, также как группаhtml / css / js файлы) по URL khairulslt.me/RGBGame

0 голосов
/ 06 июня 2018

Вам не нужно указывать путь к файлу, но нужно указать каталог в вашей директиве псевдонима.

Так что просто используйте:

location /RGBGame/ { 
    alias /var/www/RGBGame/; 
    index colorGame.html; 
}
...