Nginx

Как да пренасочвам URL адреси в Nginx

Как да пренасочвам URL адреси в Nginx
Nginx е лек уеб сървър, който често се използва и като обратен прокси, уеб сървър и балансиращ товар. Nginx по подразбиране предлага много полезни функции и могат да се добавят още като модули, когато се инсталира. Това ръководство има за цел да покаже как да използвате Nginx за пренасочване на URL адреси към различни посоки. Въпреки че Nginx предоставя множество функции за пренасочване на URL адреси, това ръководство използва малка част от тях, тъй като целта му е да преподава само основните в пренасочването на URL адреси. Областите, обхванати в това ръководство, са пренасочване на незащитени (порт 80) URL адреси към защитената му версия, пренасочване на заявка към IP към име на домейн и накрая пренасочване на всички други поддомейни, домейни към основния домейн.

Предварителни изисквания

На първо място, това ръководство предполага, че потребителят има правилен SSH клиент, инсталиран на компютъра, ако не продължите и инсталирайте Putty като клиент, след това използвайте следните команди. Освен това се изисква Nginx, Nano редактор.

  1. Въведете следните команди, за да инсталирате Nano текстов редактор. Първата команда помага да се извлекат най-новите пакети от хранилищата, а втората команда инсталира най-новата версия на nano текстов редактор.
sudo apt-get update
sudo apt-get install nano
  1. В прозореца на терминала въведете следната команда, за да промените текущата директория на директория nginx.
cd / etc / nginx / sites-available
  1. Сега напишете нано по подразбиране или името на файла, свързано с домейна, за да промените настройките на домейна.
  2. Оттогава следвайте един от следните сегменти, за да продължите.

Пренасочване от HTTP (порт 80)

В наши дни Google, Bing и много други търсачки предпочитат уебсайтове с криптирана връзка. Когато връзката между клиента и сървъра е шифрована, данните, предавани чрез тази конкретна връзка, са защитени и по този начин трети страни нямат достъп до тези данни. Когато връзката не е криптирана, такива сайтове са несигурни и по този начин това застрашава безопасността на данните. Несигурният уебсайт използва порт 80, за да предоставя своите услуги на обществеността. За съжаление, по подразбиране уеб браузърът се свързва с порт 80, тъй като уеб сървърът приема, че клиентът по подразбиране иска това и по този начин заявката трябва да бъде пренасочена към защитената си версия. Има няколко начина да го направите с Nginx.

Метод 1

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

Параметърът на сървъра по подразбиране указва, че този сървърен блок е сървърът по подразбиране, следователно всички заявки към порт 80 изпълняват този сървърния блок първоначално по подразбиране, а след това остава след това. Скобата означава, че тя също така улавя заявки от ipv6 мрежи. Връщане 310 означава, че пренасочването е постоянно и по този начин сокът за връзка се предава заедно с него.

сървър
слушайте 80 default_server;
слушайте [::]: 80 сървър по подразбиране;
домейн на сървърно име.com www.домейн.com;
върнете 301 https: // домейн.com $ request_uri;

Метод 2

Ако към текущия сървър няма прикачен уебсайт и изискването е пренасочване на всякакви заявки към порт 80, тогава може да се използва следният сървърен блок. Копирайте го във файла по подразбиране, както беше посочено по-рано. Тук _ (долна черта) означава всеки домейн. Както по-рано, тук може да се използва параметър default_server, скоби (за IPv6 адреси) като незадължителни атрибути.

сървър
слушайте 80 default_server;
Име на сървъра _;
връщане 301 https: // $ host $ request_uri;

Метод 3

Следният кодов фрагмент означава, ако връзката не е криптирана, което означава, че порт 80 получава заявки, след което те се пренасочват към защитена версия на посочения домейн. Това трябва да се копира навсякъде в сървъра , но след параметъра server_name.

if ($ схема != "https")
връщане 301 https: // $ host $ request_uri;

Пренасочване от IP адреса

За разлика от споделения хост, както специалните сървъри, така и виртуалните частни сървъри винаги имат определен IP адрес, разпределен към него. Ако уеб сървърът е конфигуриран с Nginx с долна черта (което означава, че сървърът обработва всяка заявка), тогава всяка заявка към IP адреса получава достъп и до уебсайта. Наличието на достъп до уебсайта чрез IP адрес не е нещо, което всеки уеб майстор иска поради различни причини. От друга страна, ако всяка заявка се обработва, злонамерените потребители могат да свържат произволен домейн с уеб сървъра, което не е добре за името на марката или бизнеса и затова е важно да обработваме само заявки към конкретни домейни или и и IP адрес. Този сегмент демонстрира в такива случаи как да се обработват заявки към IP адреса на уеб сървъра. Използването на този кодов блок заедно с един от горепосочените кодови блокове (с изключение на метод 2 от предишното решение) гарантира всяка заявка към двата домейна и IP се пренасочва към желаната дестинация.

Както беше казано по-горе, копирайте следния кодов фрагмент във файла по подразбиране на Nginx (предварителни изисквания, 3-та стъпка). Вместо да използвате името на домейна в параметъра server_name, просто използвайте IP адреса на сървъра, а след това в следващия ред използвайте „return 301 domain“ към мястото, където заявката се пренасочва. Сега, когато заявка до този конкретен IP адрес, получена до сървъра, тя се пренасочва към посочения домейн. Най-добрият пример за това е, когато случаен потребител напише IP адреса на уеб сървъра за директен достъп до сайта. Ако следният кодов фрагмент не е посочен никъде във файла по подразбиране, всяка заявка към IP не се обработва; следователно потребителите не могат да получат достъп до уебсайта чрез IP адреса.

сървър
слушайте 80;
слушайте [::]: 80;
слушайте 443 ssl http2;
слушайте [::]: 443 ssl http2;
192.168.1.1;
връщане 301 https: // nucuta.com;

Пренасочване от всеки друг домейн

Това решение е същото като първото решение на това ръководство, освен че пренасочва заявките към порта 443 на уеб сървъра, което означава, че както защитени, така и незащитени заявки се пренасочват към посочения домейн в параметъра return. Както казахме по-рано, просто копирайте това във файла по подразбиране.

сървър
слушайте 80;
слушайте [::]: 80;
слушайте 443 ssl http2;
слушайте [::]: 443 ssl http2;
домейн на сървърно име.com www.домейн.com;
връщане 301 https: // nucuta.com;

Финализиране

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

  1. Просто използвайте следната команда в терминала на Linux, за да тествате конфигурационния файл по подразбиране, ако резултатът е добър, продължете към следващата стъпка.
sudo nginx -t
  1. Използвайте една от следните команди, за да рестартирате уеб сървъра Nginx. Командата зависи от името и версията на дистрибуцията на Linux.
sudo systemctl рестартирайте nginx
презареждане на sudo услуга nginx
sudo / etc / init.d / nginx презареждане
Топ Oculus App Lab Games
Ако сте собственик на слушалки на Oculus, тогава трябва да знаете за странично зареждане. Sideloading е процесът на инсталиране на несъхранявано съдър...
Топ 10 игри за игра на Ubuntu
Платформата на Windows е една от доминиращите платформи за игри поради огромния процент игри, които се развиват днес, за да поддържат Windows. Може ли...
5 най-добри аркадни игри за Linux
В днешно време компютрите са сериозни машини, използвани за игри. Ако не можете да получите новия висок резултат, ще разберете какво имам предвид. В т...