Pomoc Własna domena i nie używanie numerów portów

spietrza

Download Station
Q's Professional
20 Marzec 2013
428
83
118
48
Poznań
QNAP
TVS-x71
Ethernet
802.11ad
Witam wszystkich,

na dzień dzisiejszym mam własną domenę adres.pl i aby się zalogować na główną stronę serwera wpisuję adres.pl:9050 dla połączenia http lub adres:9550 dla https.

I tak dla usługi File Station czy Video Station mam dalej /fm.html i /vs.html

Rozumiem że muszę uruchomić WebStation ale za bardzo oblatany w webowych tematach nie jestem a chciałbym aby po wpisaniu albo na subdomenie lub łamańcem wejść na odpowiedni adres

chcę wpisać pobierz.adres.pl - wejdzie mi na Download Station
lub adres.pl/pobierz

analogicznie tak samo dla innych usług jakie mam uruchomione na różnych portach.
 
Najlepiej byłoby kupić Ci domene na OVH, ponieważ:
  • jest tania
  • można uaktywnić strefe SOA, która pozwoli Ci swobodnie zarządzać domeną
Jak to zrobić?

(Wcześniej zerknij poglądowo jak wygląda zaawansowana konfiguracja domeny - strefy SOA w OVH)
aubplanet.pl_forum_uploads_images_UBPlanet_1286220587_U15373.jpg


  1. Zaczynasz od zmiany TTL'a domeny z 24h na 10min:
    soa_record.png
  2. Teraz powinieneś odczekać 24h az główne serwery DNS się synchronizują i zapiszą nowy czas po którym wygasają ustawienia Twojej domeny - czyli co 10min zamiast 24h.
  3. Po odczekaniu 24h, logujesz się na OVH i modyfikujesz strefę SOA. Zaczynasz od skierowania domeny głównej, czyli .adres.pl na adres IP serwera NAS. Zrobisz to za pomocą rekordu A tj. na przykładowym zdjęciu powyżej. (A - IPv4; AAAA - IPv6)
  4. Dla poszczególnych subdomen musisz utworzyć kolejne rekordy, z tymże tym razem zamiast A, będzie to CNAME, który wskaże domene główną jako docelowy host. Przykład:
    file.adres.pl - CNAME - adres.pl
    Całość powinna wyglądać tak:
    .adres.pl - A - 154.12.15.245
    file.adres.pl - CNAME - adres.pl
    vid.adres.pl - CNAME - adres.pl
    Notka: Powyższe zmiany mogą być dla Ciebie widoczne dopiero po 10minutach. Przyda Ci sie pod Windowsem polecenie:
    Kod:
    ipconfig /flushdns
    ...a po nim zrestartowanie przeglądarki.
  5. Na serwerze QNAP NAS musisz włączyć usługę serwera Web.
  6. Przekierowanie tych domen na poszczególne adresy powinno się odbyć modułem proxy_http w serwerze Apache, ale na początek wystarczy Ci przekierowanie 301. Czyli utwórz plik index.php na serwerze NAS w udziale sieciowym Web i zapisz do niego:
    PHP:
    <?php
    
    if (isset($_SERVER['HTTP_HOST']) && strlen($_SERVER['HTTP_HOST']) > 0)
    
      $_http_host = $_SERVER['HTTP_HOST'];
    
    else
    
      return false;
    
    switch ($_http_host) {
      case "file.adres.pl":
        header('HTTP/1.0 301 Moved Permanently'); 
        header('Location: http://adres.pl:8080/cgi-bin/fm.html'. $_SERVER['REQUEST_URI']); 
        exit();
        //break;
      case "vid.adres.pl":
        header('HTTP/1.0 301 Moved Permanently'); 
        header('Location: http://adres.pl:8080/...'. $_SERVER['REQUEST_URI']); 
        exit();
        //break;
    }
    
    ?>
  7. Po całej zabawie nie zapomnij zmienić TTL domeny na 24h.
Tak BTW: Jest to banalnie proste!


Jednak w profesjonalnej konfiguracji, takie przekierowanie powinno być realizowane w serwerze Apache zamiast redirect'a z PHP.
Serwer Apache powinien mieć włączone moduły proxy oraz proxy_http a poszczególne subdomeny dodane jako wirtualne hosty. Każdy z nich powinien być skonfigurowany w ten sposób:
Kod:
# Proxy ACL
ProxyRequests Off
<Proxy>
	Order allow,deny
	Allow from all
</Proxy>

ProxyPass / http://37.59.96.172:12080/
ProxyPassReverse / http://37.59.96.172:12080/
ProxyPreserveHost on
Dla hosta SSL z dodatkowym parametrem:
Kod:
SSLEngine On
Live przykład: health.devspark.pl bez widocznego przekierowania na adres docelowy serwuje zawartość: 37.59.96.172:12080
FYI: To staty z serwera, na którym stoi to forum :)
Ale nad takim rozwiązaniem w QNAP'ie będziemy się zastanawiać jak pierwsze nie będzie spełniać Twoich oczekiwań :)
 
Dzięki ale walczę z rozwiązaniem @Silas Mariusza, mam zaparkowaną domenę w home i u nich to nazywa się rekordy.
Nie moge jednak na rekordzie A zmienić odświeżania bo jest statycznie bez możliwości zmiany 1h. Lepiej czekać 1h niż 24h :)

@adamdon ale photo station wpisujesz port widać a rozwiązanie myQNAPcloud moim zdaniem nie jest ciekawym rozwiązaniem.
 
Dzięki ale walczę z rozwiązaniem @Silas Mariusza, mam zaparkowaną domenę w home i u nich to nazywa się rekordy.
Nie moge jednak na rekordzie A zmienić odświeżania bo jest statycznie bez możliwości zmiany 1h. Lepiej czekać 1h niż 24h :)
Przetransferuj sobie domenę do OVH za friko. Zaoszczędzić 50% co rok!
Poszukaj jak złożyć dyspozycję w home.pl o udzielenie kodu authinfo/authcode, a następnie na Rejestracja domen u akredytowanego operatora - OVH zamów swoją domene i wybierz, że jesteś jej właścicielem i chcesz ją przetransferować.
 
Zrobiłbym tak jak sugerujesz ale oprócz domeny mam ssl kupiony a ovh musiałbym nowy kupić i to za 199 zł aż
@Silas Mariusz działa prawidłowo wszystko tak jak napisałeś ale właśnie myślę o drugim rozwiązaniu czyli Virtual Host.
Ponieważ każdy adres ma działać z użyciem certyfikatu ssl a w wersji inde.php nie widzę opcji abym mógł tu pleść https zamiast http oraz wymusić używanie tylko https.
 
mam zaparkowaną domenę w home i u nich to nazywa się rekordy.
SOA record w którym jest TTL :)

@Silas Mariusz działa prawidłowo wszystko tak jak napisałeś ale właśnie myślę o drugim rozwiązaniu czyli Virtual Host.
Ponieważ każdy adres ma działać z użyciem certyfikatu ssl a w wersji inde.php nie widzę opcji abym mógł tu pleść https zamiast http oraz wymusić używanie tylko https.
Wobec tego zrób wirtual hosty a w nich osobne pliki index.php z przekierowaniem na host docelowy.

Albo spróbuj zostawić obecny plik a wszystkie wirtual hosty skierować na ten jeden konkretny. Ponieważ i tak w nim sprawdzany jest host na który się łączysz.
 
No tak ale dalej jest to przez php.
Jak pisałeś wariant drugi w którym mogę użyć ssl.
Nie wiem czy źle rozumuję ale sądziłem że ten drugi wariant przez Ciebie podany jest właśnie Wirtualnym hostem.

Ale widać że nic to nie ma wspólnego z konfiguracją Apache, zgadza się ??
 
Wszystko padło po zmianie portów dla web station. Nowe ustawiono na 90 a ja po chwili przestawiłem z powrotem.
Plik index.php jest dostępny w web /share/CACHEDEV1_DATA/Web
jednak jak wchodzę na adres adres.pl pojawia się po prostu pusta karta, jak wejdę na adres.pl:8080 widzę logowanie do serwera.
Więc kontakt z zewnątrz jest prawidłowy, dodatkowo sprawdziłem czy port 80 jest przekierowany na NAS i wszystko jest poprawne, także port 301.

W pliku index mam tak wpisane linie wg sugestii @Silas Mariusz, jedynie zmienione na moje adresy

PHP:
<?php

if (isset($_SERVER['HTTP_HOST']) && strlen($_SERVER['HTTP_HOST']) > 0)

  $_http_host = $_SERVER['HTTP_HOST'];

else

  return false

switch ($_http_host) {
  case "file.adres.pl":
    header('HTTP/1.0 301 Moved Permanently');
    header('Location: http://adres.pl:8080/cgi-bin/fm.html'. $_SERVER['REQUEST_URI']);
    exit();
    //break;
  case "vid.adres.pl":
    header('HTTP/1.0 301 Moved Permanently');
    header('Location: http://adres.pl:8080/...'. $_SERVER['REQUEST_URI']);
    exit();
    //break;
}

?>
 
Więc kontakt z zewnątrz jest prawidłowy, dodatkowo sprawdziłem czy port 80 jest przekierowany na NAS i wszystko jest poprawne, także port 301
Nie. 301 to nie port. To kod statusu odpowiedzi serwera Web. Tj 404 to błąd, 301 to permanentne przekierowanie kompatybilne z SEO, które wskazuje wyszukiwarkom nowy adres Web.
Ref. HTTP/1.1: Status Code Definitions
10.3.2 301 Moved Permanently
The requested resource has been assigned a new permanent URI and any future references to this resource SHOULD use one of the returned URIs. Clients with link editing capabilities ought to automatically re-link references to the Request-URI to one or more of the new references returned by the server, where possible. This response is cacheable unless indicated otherwise.

The new permanent URI SHOULD be given by the Location field in the response. Unless the request method was HEAD, the entity of the response SHOULD contain a short hypertext note with a hyperlink to the new URI(s).

If the 301 status code is received in response to a request other than GET or HEAD, the user agent MUST NOT automatically redirect the request unless it can be confirmed by the user, since this might change the conditions under which the request was issued.
Kod:
Note: When automatically redirecting a POST request after
receiving a 301 status code, some existing HTTP/1.0 user agents
will erroneously change it into a GET request.
A więc 301 to nie port, więc nie musi być przekierowany.

jednak jak wchodzę na adres adres.pl pojawia się po prostu pusta karta
A czy masz włączonego raportowanie błędów .php? Bo jeśli nie, to pusta kartka/biała strona, oznacza, że w pliku .php (w tym wypadku index.php) jest gdzieś błąd.
FAQ - Jak włączyć wyświetlanie błędów PHP?
Proponuje zainstalować phpError - więcej przeczytasz w powyższym linku.
 
Plik index.php był domyslny przy web więc chyba plik powinien być prawidłowy, jedynie zmieniłem w sekcji <? to co wkleiłem od Ciebie.
Najlepsze że mam także squida odpalonego i bez problemu z zewnątrz wchodzę /squid

Dziękuję, sprawdzę.
 
Plik index.php był domyslny przy web więc chyba plik powinien być prawidłowy, jedynie zmieniłem w sekcji <? to co wkleiłem od Ciebie.
Najlepsze że mam także squida odpalonego i bez problemu z zewnątrz wchodzę /squid
A więc bankowo w index.php jest błędna składnia lub jakiś error, a że masz wyłączone raportowanie błędów to nie wiesz gdzie błąd. Zainstaluj phpError z QPKG.
phpError
 
Ok, sugerowałem się opisem.
Wynik z uruchomienia taki że druga linia błędna. Znam się na Delphi ale ten błąd nic mi nie mówi nawet patrząc na wyrażenia użyte, nic nie ma wspólnego

ai58.tinypic.com_adcgon.png
 
W czym edytujesz plik php? Notepad++ ?
Upewnij się, że na końcu każdej lini nie ma dodatkowych znaków.

A tak BTW:
Spróbuj w katalogu Web utworzyć plik .htaccess:
Kod:
<IfModule mod_rewrite.c>
	RewriteEngine On

	RewriteCond %{HTTP_HOST} ^(file\.)?adres.pl$ [OR]
	RewriteRule ^(.*)$ https://forum.qnap.net.pl/$1 [R=301,L]

	RewriteCond %{HTTP_HOST} ^(vid\.)?adres.pl$ [OR]
	RewriteRule ^(.*)$ https://forum.qnap.net.pl/$1 [R=301,L]

</IfModule>

... i pozostawić plik index.php pusty :)
 

Użytkownicy znaleźli tą stronę używając tych słów:

  1. wirtual host nie działa