Jak podłączyć subdomenę pod port?

Mespi | 2019-10-12 05:00:39 UTC | #1

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 )


Nieznajomy11 | 2019-10-12 08:16:32 UTC | #2

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.


Mespi | 2019-10-12 08:16:29 UTC | #3

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


Nieznajomy11 | 2019-10-12 08:41:17 UTC | #4

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;
}

Mespi | 2019-10-12 08:44:35 UTC | #5

Wielkie dzięki :smiley:

[quote=”Nieznajomy11, post:4, topic:12389”]
server { # Nasluchiwanie listen IPVPS:80; # Domena, mozna podac kolejne po spacji servername kresmc.pl; # Wylaczenie wyswietlania potencjalnie niebezpiecznych informacji w naglowkach (nginx i jego wersja, itp.) servertokens off; # Proxy dla wszystkiego location / { proxysetheader Host $httphost; proxysetheader X-Real-IP $remoteaddr; proxysetheader X-Forwarded-For $proxyaddxforwardedfor; proxysetheader X-Forwarded-Proto $scheme; proxypass http://127.0.0.1:80; } # Oddzielne logi dla roznych domen, wygodniejsze accesslog /var/log/nginx/kresmcaccess.log; errorlog /var/log/nginx/kresmcerror.log; }
[/quote]

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


Nieznajomy11 | 2019-10-12 08:46:14 UTC | #6

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.


Mespi | 2019-10-12 09:14:47 UTC | #7

Wszystko działa! Wielkie dzięki!


system | 2019-11-13 09:14:49 UTC | #8

Ten temat został automatycznie zamknięty 32 dni po ostatnim wpisie. Tworzenie nowych odpowiedzi nie jest już możliwe.