Jak podłączyć subdomenę pod port?

Tagi: #<Tag:0x00007efc991154a8> #<Tag:0x00007efc991153e0> #<Tag:0x00007efc991152f0>

Słuchajcie intryguje mnie taka mała rzecz. Mianowicie mam dwie usługi na jednej maszyne, które korzystają z portów WWW ( jak nie tak się to nazywa, to raczej wiecie o co chodzi? ).

Chodzi mi o to, że mam zajęte 2 porty: 80 i 8080

Chciałbym, aby port 80 należał do domeny i subdomeny, a port 8080 do innej subdomeny

Na tą chwile i domena, i subdomeny działają na wszystkie porty

http://kresmc.pl
http://kresmc.pl:8080
http://avex.kresmc.pl
http://avex.kresmc.pl:8080
http://warmup.kresmc.pl
http://warmup.kresmc.pl:8080

Czy jest sposób na zablokowanie tego?
Prosił bym o odpowiedzi ;D

Edit: Dodam jeszcze tylko, iż port 80 jest uruchomiony przez apache, a 8080 przez express’a ( https://www.npmjs.com/package/express )

Możesz postawić nginx na publicznym adresie, a apache2 oraz swoją aplikację w nodejs zbindować na lokalnych portach. Wtedy tylko tworzysz proxy w nginx i gotowe. Możesz z poziomu nginx ustalić jaka domena prowadzi gdzie.

1lajk

Jest jakiś poradnik do tego? Bo nie bawiłem się jeszcze w coś takiego

Potrzebujesz po prostu znaleźć informacje:

  • jak zmienić port adres i port nasłuchiwania apache2 (ustawic w /etc/apache2/ports.conf dyrektywe Listen 127.0.0.1:80, zrestartować apache service apache2 restart)
  • jak zmienić port adres i port nasłuchiwania aplikacji nodejs z użyciem express ( app.listen(8080, '127.0.0.1');
  • jak zainstalować nginx i stworzyć w nim proxy (instalacja, proxy)

Można zainstalować nginx od razu, ale zalecam zgodnie z artykułem, który podlinkowałem dodać repo, żeby mieć aktualną wersję. W międzyczasie np. była zmiana struktury konfiguracji na inną, dlatego lepiej nie trzymać się już starej i mieć więcej problemów z aktualizacją.

Po instalacji nginx vhosty znajdują się w /etc/nginx/conf.d. Domyślny zalecam zostawić i skonfigurować go np. tak:

server {
	listen IP_VPS:80 default_server;
	server_name _;
	server_tokens off;
	return 444;
}

Dzięki temu połączenia bezpośrednio do ip zostaną odrzucone. Dla konkretnych domen konfiguracja będzie w uproszczonej wersji wyglądać mniej więcej tak:

server {
        # Nasluchiwanie
	listen IP_VPS:80;
        # Domena, mozna podac kolejne po spacji
	server_name kresmc.pl;
        # Wylaczenie wyswietlania potencjalnie niebezpiecznych informacji w naglowkach (nginx i jego wersja, itp.)
	server_tokens off;

        # Proxy dla wszystkiego
	location / {
		proxy_set_header Host $http_host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_set_header X-Forwarded-Proto $scheme;
		proxy_pass http://127.0.0.1:80;
	}

        # Oddzielne logi dla roznych domen, wygodniejsze
	access_log  /var/log/nginx/kresmc_access.log;
	error_log   /var/log/nginx/kresmc_error.log;
}
2lajki

Wielkie dzięki :smiley:

W podobny sposób mogę dodać nasłuchiwanie drugiego portu?

Dokładnie tak, wystarczy zmienić domenę i port w proxy_pass. Ten z listen zostaje 80, chyba że chcesz łączyć się przez inny. Niemniej to raczej wyglądałoby brzydko i nie jest potrzebne.

1lajk

Wszystko działa! Wielkie dzięki!

1lajk