Nginx връща 404 за някои поддомейни, но не и за други

Така че се опитвам да настроя 5 уебсайта, всички в един и същ домейн, само с различен поддомейн и т.н. www. и cdn. но www. работи добре както би трябвало с cdn. не, получи същите файлове, върху които току-що ги копирах, всички разрешения са еднакви за папките. Имам всеки поддомейн в свои собствени файлове и т.н. wwwmydomaincom и cdnmydomaincom и конфигурацията е една и съща, само разликата е server_name. файлът, който работи, получи www.mydomain.com, останалите получиха somesubdomain.mydomain.com и те хвърлят 404.

Използвам Nginx на ubuntu сървър 16.04.1.

Добавено

location / {
  try_files $uri.html;
}

и поддомейните показват добре html страниците (сега тяхната конфигурация е като тази, която работи) Но.. всеки актив, css, js, изображения или други неща получават 404, така че това е чиста html страница.

Конфигурацията под е точно същата конфигурация като www.mydomain.com, но променена, за да пасне на cdn.mydomain.com

server {
  listen 80;
  server_name cdn.domain.com;
  location /.well-known/acme-challenge {
     default_type "text/plain";
     root /storage/webserver/certbot;
  }

  #Forces all other requests to HTTPS
  location / {
     return 301 https://$host$request_uri;
  }
}
server {
  listen 443 ssl http2;
  server_name cdn.domain.com;
  ssl_certificate /etc/letsencrypt/live/cdn.domain.com/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/cdn.domain.com/privkey.pem;
  ssl_dhparam /etc/ssl/certs/dhparam.pem;
  ssl_protocols TLSv1.2 TLSv1.1 TLSv1;
  ssl_prefer_server_ciphers on;
  ssl_ciphers EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA512:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:ECDH+AESGCM:ECDH+AES256:DH+AESGCM:DH+AES256:RSA+AESGCM:!aNULL:!eNULL:!LOW:!RC4:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS;
  ssl_session_cache shared:TLS:2m;
  # OCSP stapling
  ssl_stapling on;
  ssl_stapling_verify on;
  resolver 8.8.8.8;
  # Set HSTS to 365 days
  add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains';
  root /storage/webserver/cdn.domain.com;
  index index.html index.php;
  location @rewrite {
    rewrite ^ $uri.php last;
    try_files $uri =404;
  }
  location ~ \.php$ {
    fastcgi_split_path_info ^(.+?\.php)(/.+)$;
    fastcgi_pass unix:/run/php/php7.0-fpm.sock;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
    include fastcgi.conf;
    try_files $uri =404;
  }
  rewrite ^(/.*)\.html(\?.*)?$ $1$2 permanent;
  #rewrite ^/(.*)/$ /$1 permanent;
  error_page 404 /404.php;
  error_page 500 503 502 504 /error/40x.php;
  location =/error/40x.html {
    internal;
  }
}

person joveice    schedule 10.02.2017    source източник


Отговори (1)


Хм, ето защо искам да науча такива неща.

Очевидно трябва да го накарате да търси файловете.

така че ако някой влезе в тази малка ситуация, не забравяйте да го накарате да търси в главната папка.

location / {
  try_files $uri $uri/ $uri.html @rewrite;
}
person joveice    schedule 10.02.2017