Puncte:0

Cu NGINX, cum redirecționez www la non-www când folosesc un subdomeniu?

drapel jp

Am configurat un site web cu wordpress folosind NGINX și PHP-FPM.

backend.site.com este pentru wordpress-backend

site.comeste pentru nuxt-frontend

Problema mea

Când accesez front-end tastând www.site.com sunt redirecționat către backend.site.com

# /etc/nginx/conf.d/default.conf

Server {
    asculta 80;

    returnează 301 https://$host$request_uri;
}

Server {
    asculta 443 ssl;
    ssl_certificate /etc/nginx/ssl/site.com_ssl_certificate.cer;
    ssl_certificate_key /etc/nginx/ssl/site.com_private_key.key;

    returnează 301 https://$host$request_uri;
}
# /etc/nginx/conf.d/site.com.conf

harta $sent_http_content_type $expires {
    epoca „text/html”;
    "text/html; charset=utf-8" epoca;
    implicit dezactivat;
}

Server {
    asculta 443 ssl;
    asculta [::]:443 ssl;

    ssl_certificate /etc/nginx/ssl/site.com_ssl_certificate.cer;
    ssl_certificate_key /etc/nginx/ssl/site.com_private_key.key;

    nume_server site.com www.site.com;

    gzip on;
    gzip_types text/plain application/xml text/css application/javascript;
    gzip_min_length 1000;

    locație ^~ / {
        alias /var/www/html/web-frontend/.nuxt/dist/client;

        expiră $expires;
        proxy_set_header Gazdă $gazdă;
        proxy_set_header X-Real-IP $adresă_la distanță;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $schema;
        proxy_read_timeout 1m;
        proxy_connect_timeout 1m;
        proxy_pass http://127.0.0.1:3000;
    }

    locație ~ /\.ht {
                nega totul;
    }

    locație = /favicon.ico {
            log_not_found off; access_log off;
    }

    locație = /robots.txt {
            log_not_found off; access_log off; permite tuturor;
    }

    locație ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
            expira max;
            log_not_found off;
    }
}
# /etc/nginx/conf.d/backend.site.com.conf

Server {
    # Configurare SSL
    #
    asculta 443 ssl;
    asculta [::]:443 ssl;
    ssl_certificate /etc/nginx/ssl/site.com_ssl_certificate.cer;
    ssl_certificate_key /etc/nginx/ssl/site.com_private_key.key;

    root /var/www/html/web-backend/web;

    # Adăugați index.php la listă dacă utilizați PHP
    index index.php;

    nume_server backend.site.com;

    gzip_vary on;
    gzip_proxied orice;
    gzip_comp_level 6;
    gzip_buffers 16 8k;
    gzip_http_versiunea 1.1;
    gzip_min_length 0;
    gzip_types text/plain application/javascript text/css text/xml application/xml application/xml+rss text/javascript application/vnd.ms-fontobject application/x-font-ttf font/opentype;

    client_max_body_size 100M;

    Locație / {
        try_files $uri $uri/ /index.php$is_args$args;
    }

    locație ~ \.php$ {
            try_files $uri =404;
            fastcgi_split_path_info ^(.+\.php)(/.+)$;
            fastcgi_pass unix:/run/php/php7.4-fpm.sock;
            fastcgi_index index.php;
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            fastcgi_param SCRIPT_NAME $fastcgi_script_name;
        }

    locație ~ /\.ht {
            nega totul;
    }

    locație = /favicon.ico {
            log_not_found off; access_log off;
    }
    locație = /robots.txt {
            log_not_found off; access_log off; permite tuturor;
    }
    locație ~* \.(css|gif|ico|jpeg|jpg|js|png)$ {
            expira max;
            log_not_found off;
    }

    #error_page 404 /404.html;

    # redirecționează paginile de eroare ale serverului către pagina statică /50x.html
    #
    pagina_eroare 500 502 503 504 /50x.html;
    locație = /50x.html {
        root /usr/share/nginx/html;
    }
}
Puncte:0
drapel cg

Înțelegeți greșit cum funcționează gazda virtuală. Verificați aceste puncte:

  1. Când configurați gazda virtuală, trebuie să setați gazda virtuală pentru http (portul 80) și https (portul 443).
  2. Redirecționează-ți virtualhost pe portul 80 către gazda virtuală pe port 443.
  3. Amintiți-vă că trebuie întotdeauna să gestionați traficul de intrare al dvs. http (portul 80). De ce? Unii dezvoltatori (nu știu de ce) folosesc aceeași publicare a gazdei virtuale două aplicații diferite, una pe portul 80, alta pe 443.

Încercați să adăugați acest lucru pentru a vă rezolva problema

Această configurație redirecționează traficul care vine pe portul 80 către https.

Server {
    asculta 80; 
    nume_server site.com www.site.com;
    access_log /var/log/nginx/site.com.access.log principal;
    error_log /var/log/nginx/site.com.error.log eroare;
  
    Locație / {
        returnează 301 https://$host$request_uri;
    }
}

Redirecționați traficul de intrare activat backend.site.com:80 port către backend.site.com:443 a gazdei virtuale.

Notă: adaug :80 pentru a evidenția prin ce port vine conexiunea

Server {
    asculta 80;
    nume_server backend.site.com;
    access_log /var/log/nginx/backend.site.com.access.log principal;
    error_log /var/log/nginx/backend.site.com.error.log eroare;
   
    Locație / {
        returnează 301 https://$host$request_uri;
    }
}

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.