Wpis z mikrobloga

#serwery #domeny #hosting #webdev #webh

Rozmawiałem z supportem ale chyba nie rozumieją co chcę albo ja nie rozumiem jak działają domeny.

Mam sobie serwer na webh.pl, postawiony ubuntu i serwer nginx ktory na kilku portach serwuje kilka stronek.

A więc cos w stylu

111.111.1.1
111.111.1.1:8080
111.111.1.1:9000

I jak wejde przez http to wyswietlaja mi sie strony tak jak ustawilem virutalne hosty w nginx.

Teraz mam sobie domenę na Namecheap, próbuje ją podpiąć tak, ze jak wejde pod ten adres mojadomena.com to pokaze mi sie dokladnie to samo co pod 111.111.1.1:9000, ten sam content, etc. a link pozostaje nadal mojadomena.com a nie przekierowanie. Jak taki proces sie nazywa i jak to zrobic?

W namecheap ustawiam tak:
mojadomena.com
Type: Url Redirect Record
Host: @
Value: http://111.111.1.1:9000
Masked

Z takimi ustawieniami mi niby wyswietla zawartosc tego co mialem pod portem :9000 ale bez meta info, czyli nie ma tytulu strony i zapewne inne meta tagi nie dzialaja, do tego w zrodle strony jest cos takiego:
"
"

co tu sie dzieje, jaki frameset, gdzie jest moja strona

jak zmienie Masked na Unmasked albo 301 to po prostu przekierowuje mi link tak jakbym w php zrobil php header('location...') ? ale nie o to mi chodzi.

Jak sie podpina domeny pod serwery VPS co maja kilka stron na roznych portach?
  • 15
@Melcma: dns służy do rozwiązywania nazw domenowych na adres IP, nie ma nic wspólnego z portem

pewnie szukasz czegoś o serwerach proxy, a może load balancerach

"Url Redirect" masked to pewnie stary "dobry" frameset (so 1990s) i na pewno nie chcesz tego używać
@Melcma: tak, chodzi o proxypass, nginx przekieruje wtedy wszystkie zapytania http na podany adres

Ważne jest, żebyś podał właściwy server
name, bo właśnie to jest porównywane z nagłówkiem Host.

Jeżeli serwujesz wprost z nginx przez np php-fpm wtedy nie musisz nic przekierowywać, ustawiasz tylko listen: 80 i właściwy servername

Wtedy jak wpiszesz w przeglądarce example.com to automatycznie przekieruje Cie na Twoją stronę, wszystko co nie zostanie przypasowane do żadnego
@krzys0000:

mam default server na porcie 80 i servername: localhost

drugi server na porcie 80 i server
name: mojastrona

na namecheap ustawiam A Record, wpisuje ip bez portu i host albo @ albo taki sam jak server_name i w kazdym przypadku otwiera mi to co mam pod default server

moze byc to wina portow? Tylko ze nie mam w ogole ufw - ubuntu ma domyslnie jakis firewall?
@Melcma

w konfiguracji domeny jedyne co musisz ustawić to odpowiedni adres IP w rekordzie A

przykład configu ngnix dla statycznej strony może wyglądać tak:

server {
listen 80; # IPv4
listen [::]:80; # IPv6
server_name mojastrona.pl # Host header
root /var/www/html;

location / {
}
}

# opcjonalnie redirect z www.mojastrona.pl -> mojastrona.pl

server {
listen 80;
listen [::]:80
server_name www.mojastrona.pl

return 301 $scheme://mojastrona.pl$request_uri;
}

(dodaj tabulacje)

wtedy jeżeli mojastrona.pl przekierowuje na
@Melcma w przypadku CentOS taki plik musi być w folderze /etc/nginx/conf.d, w przypadku Ubuntu bodajże /etc/nginx/sites-enabled, sprawdż co jest includowane w /etc/nginx/nginx.conf

potem koniecznie reset serwera: sudo service nginx restart
@krzys0000: ok działa, wielkie dzieki
albo nie dopasowalem server_name pod url albo domena sie dlugo odswiezala, a takto mialem poprawnie

domyslnie ubuntu mial config w /etc/nginx/conf.d ale w /etc/nginx/nginx.conf mozna sobie zincludowac dowolne pliki, wiec sites-enabled jest chyba nazwa umowna tylko, ale wlasnie includuje wszystko z sites-enabled (ktore jest zbiorem symlinkow z sites-available)