Si të ridrejtoni www në Non-www me Nginx në CentOS 7


Prezantimi

Shumë zhvillues të uebit duhet t'i lejojnë përdoruesit e tyre të hyjnë në uebsajtin ose aplikacionin e tyre si përmes nëndomainit www ashtu edhe domenit rrënjë (jo-www). Kjo do të thotë, përdoruesit duhet të kenë të njëjtën përvojë kur vizitojnë www.my-website.com dhe my-website.com. Ndërsa ka shumë mënyra për ta vendosur këtë, zgjidhja më miqësore me SEO është të zgjidhni se cilin domen preferoni—nëndomainin ose domenin rrënjë—dhe t'i ridrejtoni serverin e uebit përdoruesit që vizitojnë tjetrin në domenin e preferuar.

Ka shumë lloje ridrejtimesh HTTP, por në këtë skenar, është më mirë të përdorni një ridrejtim 301, i cili u thotë klientëve: \Uebfaqja që keni kërkuar është zhvendosur përgjithmonë në një URL tjetër. Shkoni atje në vend të kësaj. Sapo shfletuesi të marrë kodin e përgjigjes HTTP 301 nga serveri, ai dërgon një kërkesë të dytë në URL-në e re të dhënë nga serveri dhe përdoruesit i paraqitet uebsajti, ndoshta duke mos vënë re kurrë se ata ishin ridrejtuar.

Pse të mos konfiguroni serverin tuaj të uebit që të shërbejë thjesht të njëjtën faqe interneti për kërkesat për të dy emrat e domeneve? Kjo mund të duket më e lehtë, por nuk jep avantazhet e SEO të ridrejtimit 301. Një ridrejtim i përhershëm u tregon zvarritësve të motorëve të kërkimit se ka një vendndodhje kanonike për faqen tuaj të internetit dhe kjo përmirëson renditjen e kërkimit të asaj URL.

Në këtë tutorial, ju do të konfiguroni një ridrejtim 301 duke përdorur Nginx në CentOS 7. Nëse jeni duke ekzekutuar Apache në vend të Nginx, shihni këtë tutorial në vend të kësaj: Si të ridrejtoni www në Non-www me Apache në CentOS 7

Parakushtet

Për të përfunduar këtë tutorial, së pari ju duhet:

  • Privilegjet e superpërdoruesit (një përdorues në grupin wheel) në serverin që po ekzekuton Nginx. Nëse nuk e keni tashmë këtë konfigurim, ndiqni këtë udhëzues: Konfigurimi fillestar i serverit me CentOS 7.
  • Nginx është instaluar dhe konfiguruar për të shërbyer uebsajtin tuaj. Ndiqni këtë tutorial për ta bërë këtë: Si të instaloni Nginx në CentOS 7.
  • Një emër domaini i regjistruar. Nëse nuk e keni ende, mund të merrni një falas nga ky artikull nga dokumentacioni ynë që tregon se si ta bëni këtë.

Le të fillojmë duke konfiguruar të dhënat tuaja DNS.

Hapi 1 - Konfigurimi i regjistrimeve DNS

Së pari, duhet t'i drejtoni si www.my-website.com dhe my-website.com te serveri juaj që funksionon Nginx. (Pjesa tjetër e tutorialit supozon se domeni juaj është my-website.com. Zëvendësojeni atë me domenin tuaj kudo që ta shihni më poshtë.) Këtë do ta bëni duke krijuar një rekord DNS A për çdo emër që tregon adresën IP të serverit tuaj Nginx.

Hapni tastierën në internet të ofruesit tuaj DNS. Ky tutorial përdor DigitalOcean DNS.

Në formën Shto një domen, fut emrin e domenit të regjistruar në fushën e tekstit dhe kliko Shto domen. Kjo do të shfaqë faqen e domenit të ri, ku mund të shikoni, shtoni dhe fshini regjistrimet për domenin.

Nën Krijo regjistrim të ri, shkruani \@ në fushën e tekstit HOSTNAME. Ky është një karakter i veçantë që tregon se po shtoni një rekord për emrin e domenit rrënjë, një rekord thjesht për my-website.com. Në fushën e tekstit DO DREJTOJ NË, futni adresën publike IPv4 të serverit tuaj dhe klikoni Krijo regjistrim >. (Nuk ka nevojë të ndryshohet TTL.)

Për regjistrimin tuaj të dytë DNS, mund të përdorni një rekord CNAME në vend të një regjistrimi A. Një rekord CNAME është një pseudonim që tregon një emër tjetër në vend të një adrese IP. Mund të krijoni një CNAME që drejton www.my-website.com te my-website.com dhe çdo kërkesë HTTP për nëndomainin www do të gjente rrugën e saj te serveri juaj pasi sapo keni krijuar rekordin A për domenin rrënjë. Por për t'i mbajtur gjërat të thjeshta, thjesht krijoni një tjetër regjistrim si ai i pari, duke futur \www në fushën HOSTNAME dhe adresën IP publike të serverit në DO DREJTIM TË fushë.

Kur të keni krijuar të dy regjistrimet, duhet të duket diçka si kjo:

Me dy regjistrimet në vend, kërkesat në ueb për my-website.com dhe www.my-website.com duhet të arrijnë në serverin tuaj Nginx. Tani le të konfigurojmë serverin.

Hapi 2 - Konfigurimi i Ridrejtimit në Nginx

Siç thuhet në Parakushtet, duhet ta keni tashmë faqen tuaj të internetit të konfiguruar në Nginx. Nuk ka rëndësi nëse blloku i server i sajtit shfaqet në skedarin kryesor /etc/nginx/nginx.conf ose në skedarin e tij. Gjëja e rëndësishme është që ju keni një bllok server të konfiguruar me direktivën server_name të vendosur në my-website.com dhe/ose www .my-website.com. Nëse emri_server juaj përmban një ose të dy emrat, tani është koha për të vendosur se cili emër do të dëshironit të jetë emri i vetëm dhe i vetëm për të pritur sitin.

Hapni skedarin që përmban konfigurimin e faqes tuaj të internetit (p.sh., /etc/nginx/conf.d/my-website.com.conf) në vi ose redaktorin tuaj të preferuar (yum install nano, nëse preferoni) dhe gjeni direktivën name_server:

  1. sudo vi /etc/nginx/conf.d/my-website.com.conf
server {
    . . .
    server_name my-website.com www.my-website.com
    . . .
}

Nëse dëshironi të ridrejtoni www.my-website.com te my-website.com, hiqni www.my-website.com nga Linja emri_server dhe ruajeni dhe dilni nga skedari. (Nëse dëshironi të ridrejtoni my-website.com te www.my-website.com, hiqni my-website.com në vend të kësaj.)

Më pas, krijoni një skedar të ri konfigurimi Nginx të quajtur /etc/nginx/conf.d/www.my-website.com.conf (ose /etc/nginx/conf.d/my- website.com.conf, nëse ky është emri që po ridrejtoni). Emërtoni skedarin si të doni, por si me të gjithë skedarët e konfigurimit Nginx, emri i skedarit duhet të përfundojë në .conf:

  1. sudo vi /etc/nginx/conf.d/www.my-website.com.conf

Shtoni bllokun e mëposhtëm server në skedar, duke zëvendësuar my-website.com me emrin tuaj të domenit:

server {
    server_name www.my-website.com;
    return 301 $scheme://my-website.com$request_uri;
}

Nëse po ridrejtoni my-website.com në nëndomainin www, vendosni my-website.com vetëm në emri_server dhe www.my-website.com në URL-në në rreshtin tjetër.

Ruani dhe dilni kur të keni mbaruar.

Kjo konfiguron Nginx për të dërguar një ridrejtim 301 te çdo klient që kërkon www.my-website.com dhe i drejton ata të vizitojnë my-website.com në vend të kësaj. Ridrejtimi ruan URI-në e kërkesës, kështu që një kërkesë për http://www.my-website.com/login.php do të ridrejtohet në http://my-website.com /login.php.

Shënim: Blloku i server më sipër nuk përmban direktivën dëgjo. Kjo është në rregull, sepse siç u përmend në këtë tutorial, çdo bllok server pa një direktivë dëgjo do të dëgjojë në 0.0.0.0:80 (porta 80 në të gjitha ndërfaqet). Por nëse serveri juaj Nginx është shtëpia e adresave të shumta IP, ose nëse faqja juaj dëgjon në një portë të ndryshme nga 80, mund t'ju duhet të shtoni një direktivë dëgjo për të përcaktuar adresën dhe portën specifike IP. Përdorni të njëjtën vlerë për dëgjoni që përdor blloku kryesor server i faqes tuaj.

Përpara se të aplikoni ndryshimet, kontrolloni që konfigurimi juaj Nginx është pa gabime:

  1. sudo nginx -t

Nëse nuk keni bërë një gabim sintaksor (p.sh., keni harruar një pikëpresje), konfigurimi duhet të jetë në rregull.

Output
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

Tani rinisni Nginx për të aplikuar rregullin e ri të ridrejtimit:

  1. sudo systemctl restart nginx

Përpara se të vizitoni www.my-website.com në shfletuesin tuaj, bëni një kërkesë duke përdorur curl ose në serverin tuaj ose në makinën tuaj lokale (nëse curl është instaluar në vend):

  1. curl -IL http://www.my-website.com

Flamuri -I i thotë curl të shfaqë vetëm titujt nga përgjigja e serverit. Flamuri -L i thotë curl t'i bindet çdo ridrejtimi nga serveri duke bërë automatikisht një kërkesë të dytë, këtë herë në URL-në e dhënë në Vendndodhja header (ashtu siç do të bënte një shfletues ueb). Meqenëse keni konfiguruar ridrejtimin 301, curl duhet të bëjë dy kërkesa dhe ju duhet të shihni vetëm titujt e dy përgjigjeve:

Output
HTTP/1.1 301 Moved Permanently Server: nginx/1.20.1 Date: Thu, 08 Dec 2022 19:24:44 GMT Content-Type: text/html Content-Length: 169 Connection: keep-alive Location: http://my-website.com HTTP/1.1 200 OK Server: nginx/1.20.1 Date: Thu, 08 Dec 2022 19:24:44 GMT Content-Type: text/html Content-Length: 57 Last-Modified: Thu, 01 Dec 2022 22:10:57 GMT Connection: keep-alive ETag: "63892671-39" Accept-Ranges: bytes

Në përgjigjen 301 (Moved Permanently) ndaj kërkesës origjinale për http://www.my-website.com, vini re titullin e fundit: Vendndodhja: http://my-website. com. Përgjigja e dytë është nga kërkesa vijuese e curlhttp://my-website.com, dhe nëse faqja juaj e internetit është e shëndetshme, serveri duhet të ishte përgjigjur me 200 ( NE RREGULL).

Më në fund, vizitoni http://www.my-website.com në shfletuesin tuaj të internetit. Blini sytë dhe do të humbisni ridrejtimin. Faqja juaj e internetit duhet të shfaqet si zakonisht, por shikoni përsëri në shiritin tuaj të adresave dhe vini re se \www mungon në URL-në. Shumica e përdoruesve nuk do ta vënë re kurrë këtë, dhe kështu ata do të kenë të njëjtën përvojë sikur të kishin kërkuar http://my-website.com.

konkluzioni

Në këtë tutorial, ju keni shtuar dy regjistrime DNS për faqen tuaj të internetit dhe keni konfiguruar Nginx për të ridrejtuar një domen dytësor në domenin tuaj të preferuar. Tani faqja juaj e internetit është e arritshme përmes të dy domeneve. Ndoshta ishte para se të lexoni këtë tutorial; ndoshta ju po e shërbenit direkt nga të dy emrat e domenit. Por me vetëm katër linja të tjera të konfigurimit Nginx, ju keni përmirësuar pozicionin e faqes suaj të internetit në sytë e motorëve të kërkimit - dhe në këtë mënyrë e keni ekspozuar atë për më shumë përdorues në internet.

Dëshironi një lexim të mëtejshëm se si Nginx vendos se cili bllok server do të trajtojë një kërkesë të caktuar? Shikoni këtë udhëzues: Kuptimi i serverit Nginx dhe algoritmeve të përzgjedhjes së bllokut të vendndodhjes.