GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara mengarahkan subdomain ke port lain di server yang sama?

Solusi 1:

Solusi

Inilah yang akhirnya saya dapatkan setelah diarahkan ke arah yang benar oleh Miles Erickson. Saya ingin bilah alamat mencerminkan subdomain/domain asli dari permintaan dan bukan server dan porta yang dialihkan, tetapi dia menempatkan saya di jalur yang benar ke Google untuk mencari solusi menggunakan VirtualHost dan saya akhirnya menemukan solusi yang menyertakan penggunaan 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>

Solusi 2:

Jalankan baris berikut di terminal (sebutkan nama domain dan subdomain Anda dengan benar)

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

Tempel kode berikut dan ubah sesuai kebutuhan Anda

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

Jalankan baris berikut di terminal (sebutkan nama domain dan subdomain Anda dengan benar)

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

Solusi 3:

Dengan asumsi bahwa dev.mydomain.com dapat diselesaikan ke IP mydomain.com, Anda dapat menambahkan yang berikut ke httpd.conf Anda:

NameVirtualHost *:80

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

Dokumentasi Apache yang relevan:

  1. Panduan untuk membuat host virtual berbasis nama
  2. Inti, termasuk VirtualHost dan NameVirtualHost
  3. Pengalihan

Pertanyaan terkait:Pengalihan Apache berdasarkan nama host

(Catatan:versi asli dari jawaban ini salah menyarankan penggunaan RedirectMatch, yang, seperti yang ditunjukkan oleh @ChrisS, tidak dapat mengurai bagian domain dari URL.)

Solusi 4:

Tambahkan konfigurasi vhost utama Anda baris berikut:

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

Perhatikan bahwa ini memerlukan mod_proxy di Apache.

Solusi 5:

Anda sedang mencari mod_rewrite. Berikut tautan ke dokumentasi Apache yang menyertakan banyak contoh untuk konfigurasi dasar dan lanjutan..

Dan jika Anda tidak dapat menafsirkan sendiri dokumentasinya, coba tambahkan ini ke httpd.conf:

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

Dan jika itu bukan contoh yang jelas, berikut juga tautan ke panduan pemula mod_rewrite.


Linux
  1. Bagaimana cara mengarahkan ulang http ke https menggunakan .htaccess?

  2. Bagaimana cara mengarahkan stderr dan stdout ke file berbeda di baris yang sama dalam skrip?

  3. bagaimana cara memulai server kucing jantan di linux?

  1. Cara Meningkatkan Server Ubuntu 7.04 ("Pengaturan Sempurna" + ISPConfig) Ke Ubuntu 7.10

  2. Bagaimana saya bisa menjalankan perintah yang berbeda tetapi dengan argumen yang sama?

  3. Bagaimana cara menetapkan alamat IP statis yang berbeda ke mesin yang sama tergantung pada OS-nya?

  1. Bagaimana cara mengarahkan output dari system() ke file?

  2. Bagaimana cara melakukan penerusan port dari satu ip ke ip lain di jaringan yang sama?

  3. Bagaimana cara menginstal 2 versi java yang berbeda pada mesin yang sama dari EPEL