GNU/Linux >> Znalost Linux >  >> Linux

Jak přesměruji subdomény na jiný port na stejném serveru?

Řešení 1:

Řešení

Tady je to, na co jsem nakonec přišel poté, co mě Miles Erickson nastavil správným směrem. Chtěl jsem, aby adresní řádek odrážel původní subdoménu/doménu požadavku, nikoli přesměrovaný server a port, ale navedl mě na správnou cestu, aby Google navrhl řešení pomocí VirtualHost a nakonec jsem našel řešení, které zahrnovalo použití mod_proxy .

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName dev.mydomain.com
    ProxyPreserveHost On

    # setup the proxy
    <Proxy *>
        Order allow,deny
        Allow from all
    </Proxy>
    ProxyPass / http://localhost:8888/
    ProxyPassReverse / http://localhost:8888/
</VirtualHost>

Řešení 2:

Spusťte na terminálu následující řádek (správně zadejte název domény a subdomény)

sudo nano /etc/apache2/sites-available/subdomain.example.com.conf 

Vložte následující kód a změňte jej podle svého požadavku

<VirtualHost *:80>
        ServerAdmin [email protected]
        ServerName subdomain.example.com
        ServerAlias subdomain.example.com
        ProxyRequests Off

        #ProxyPass / http://localhost:8080/
        <Location />
                ProxyPreserveHost On
                ProxyPass http://example.com:8080/
                ProxyPassReverse http://example.com:8080/
        </Location>
     # Uncomment the line below if your site uses SSL.
     #SSLProxyEngine On
</VirtualHost>

Spusťte následující řádky na terminálu (správně zadejte název domény a subdomény)

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2ensite subdomain.example.com.conf
sudo service apache2 restart

Řešení 3:

Za předpokladu, že dev.mydomain.com lze převést na IP adresu mydomain.com, můžete do svého httpd.conf přidat následující:

NameVirtualHost *:80

<VirtualHost *:80>
    ServerName dev.mydomain.com
    redirect / http://mydomain.com:8080/
</VirtualHost>

Relevantní dokumentace Apache:

  1. Průvodce vytvářením virtuálních hostitelů založených na jménech
  2. Jádro, včetně VirtualHost a NameVirtualHost
  3. Přesměrování

Související otázka:Přesměrování Apache na základě názvu hostitele

(Poznámka:původní verze této odpovědi nesprávně navrhla použití RedirectMatch, který, jak užitečně zdůraznil @ChrisS, nemůže analyzovat doménovou část adresy URL.)

Řešení 4:

Přidejte do své hlavní konfigurace vhost následující řádky:

ProxyPreserveHost On
ProxyPass / http://example.com:8080/
ProxyPassReverse / http://example:8080/

Všimněte si, že to vyžaduje mod_proxy na Apache.

Řešení 5:

Hledáte mod_rewrite. Zde je odkaz na dokumentaci Apache, která obsahuje mnoho příkladů pro základní a pokročilé konfigurace..

A pokud nejste schopni interpretovat dokumentaci sami, zkuste to přidat do httpd.conf:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^dev\.example\.com$ [NC]        
RewriteRule ^(.*)$ http://example.com:8080$1 [R=301]    

A pokud to není jasný příklad, zde je také odkaz na průvodce mod_rewrite pro začátečníky.


Linux
  1. Jak přesměrovat stderr a stdout na různé soubory ve stejném řádku ve skriptu?

  2. Jak přesměrovat výstup system() do souboru?

  3. jak spustit server tomcat v linuxu?

  1. Jak přesměrovat http na https pomocí .htaccess?

  2. Jak mohu spustit jiný příkaz, ale se stejnými argumenty?

  3. Jak provést přesměrování portu z jedné IP na druhou IP ve stejné síti?

  1. Jak upgradovat server Ubuntu 7.04 ("Dokonalé nastavení" + ISPConfig) na Ubuntu 7.10

  2. Jak přiřadit různé statické IP adresy stejnému stroji v závislosti na jeho OS?

  3. Jak nainstaluji 2 různé verze javy na stejný stroj od EPEL