Menjalankan ISPConfig 2 Pada Port 80 Menggunakan Fitur Reverse Proxy Apache (Debian Etch)
Artikel ini menunjukkan bagaimana Anda dapat mengonfigurasi sistem Debian Etch yang memiliki panel kontrol webhosting ISPConfig 2 yang terpasang sehingga ISPConfig dapat diakses pada port 80. Secara default ISPConfig menggunakan port 81 yang merupakan port non-standar dan diblokir oleh beberapa firewall dan ISP. Dengan menggunakan modul mod_proxy Apache, kita dapat menghindari masalah ini. Ini memungkinkan kita membuat proxy terbalik yang dapat mengambil halaman dari ISPConfig pada port 81.
Harap diperhatikan:Tutorial ini hanya tentang ISPConfig 2, tidak kompatibel dengan ISPConfig 3. Untuk ISPConfig 3 ada plugin terbalik Nginx yang tersedia di github.
Saya tidak memberikan jaminan apa pun bahwa ini akan berhasil untuk Anda!
1 Catatan Awal
Saya telah menguji ini pada sistem Debian Etch. Meskipun beberapa perintah dalam tutorial ini khusus untuk Debian, sebagian besar dapat diterapkan ke distribusi Linux lainnya (terutama konfigurasi Apache).
Saya menggunakan nama host ispconfig.example.com dalam tutorial ini. Tujuan dari tutorial ini adalah untuk mengakses ISPConfig di bawah URL http://ispconfig.example.com. Saya akan menunjukkan cara melakukannya dalam dua bab terpisah:satu bab jika ISPConfig diinstal di bawah http://ispconfig.example.com:81 (http), dan satu bab jika ISPConfig diinstal di https://ispconfig .example.com:81 (https).
2 ISPConfig Menggunakan http (http://ispconfig.example.com:81)
Untuk membuat proxy terbalik untuk permintaan http, kita memerlukan modul Apache mod_proxy dan mod_proxy_http. Ini sudah diinstal dalam instalasi standar Debian Etch Apache 2.2, jadi yang harus kita lakukan adalah mengaktifkannya:
a2enmod proxy
a2enmod proxy_http
Setelah itu, kita harus memuat ulang Apache:
/etc/init.d/apache2 force-reload
Selanjutnya, kita harus mengkonfigurasi Apache. Buka /etc/apache2/apache2.conf dan cari bagian ini:
vi /etc/apache2/apache2.conf
[...] # Include the virtual host configurations: Include /etc/apache2/sites-enabled/ <Directory /var/www/sharedip> Options +Includes -Indexes AllowOverride None AllowOverride Indexes AuthConfig Limit FileInfo Order allow,deny Allow from all <Files ~ "^\.ht"> Deny from all </Files> </Directory> [...] |
Tepat sebelum bagian ini, kami menambahkan baris berikut:
NameVirtualHost * <VirtualHost *> ServerName ispconfig.example.com DocumentRoot /var/www/ ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://ispconfig.example.com:81/ ProxyPassReverse / http://ispconfig.example.com:81/ </VirtualHost> |
sehingga terlihat seperti ini:
[...] NameVirtualHost * <VirtualHost *> ServerName ispconfig.example.com DocumentRoot /var/www/ ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / http://ispconfig.example.com:81/ ProxyPassReverse / http://ispconfig.example.com:81/ </VirtualHost> # Include the virtual host configurations: Include /etc/apache2/sites-enabled/ <Directory /var/www/sharedip> Options +Includes -Indexes AllowOverride None AllowOverride Indexes AuthConfig Limit FileInfo Order allow,deny Allow from all <Files ~ "^\.ht"> Deny from all </Files> </Directory> [...] |
Kemudian restart Apache:
/etc/init.d/apache2 restart
Jika Anda mendapatkan peringatan seperti ini:
server1:~/ispconfig/httpd/conf# /etc/init.d/apache2 restart
Forcing reload of web server (apache2)...[Tue May 22 23:23:12 2007] [warn] NameVirtualHost *:0 has no VirtualHosts
[Tue May 22 23:23:22 2007] [warn] NameVirtualHost *:0 has no VirtualHosts
maka Anda dapat mengomentari baris Sertakan /etc/Apache2/sites-enabled/ di /etc/Apache2/Apache2.conf:
vi /etc/apache2/apache2.conf
[...] # Include the virtual host configurations: #Include /etc/apache2/sites-enabled/ [...] |
atau Anda mengomentari baris NameVirtualHost * di awal /etc/Apache2/sites-available/default:
vi /etc/apache2/sites-available/default
#NameVirtualHost * [...] |
Mulai ulang Apache:
/etc/init.d/apache2 restart
Peringatan seharusnya sudah hilang sekarang.
Terakhir kita harus memodifikasi file konfigurasi ISPConfig /home/admispconfig/ispconfig/lib/config.inc.php. Anda harus menemukan sesuatu seperti ini di dalamnya:
vi /home/admispconfig/ispconfig/lib/config.inc.php
[...] if(isset($_SERVER['HTTP_HOST'])){ $go_info["server"]["server_url"] = 'http://'.$_SERVER['HTTP_HOST']; } else { $go_info["server"]["server_url"] = "http://ispconfig.example.com:81"; } [...] |
Ubah jadi seperti ini:
[...] //if(isset($_SERVER['HTTP_HOST'])){ // $go_info["server"]["server_url"] = 'http://'.$_SERVER['HTTP_HOST']; //} else { $go_info["server"]["server_url"] = "http://ispconfig.example.com"; //} [...] |
Itu dia. Buka browser dan ketik http://ispconfig.example.com, dan Anda akan melihat permintaan login ISPConfig.
3 ISPConfig Menggunakan https (https://ispconfig.example.com:81)
Untuk membuat proxy terbalik untuk permintaan http, kita memerlukan modul Apache mod_proxy dan mod_proxy_http. Ini sudah diinstal dalam instalasi standar Debian Etch Apache 2.2, jadi yang harus kita lakukan adalah mengaktifkannya:
a2enmod proxy
a2enmod proxy_http
Karena proxy terbalik Apache kami harus dapat "berbicara" dengan situs https (https://ispconfig.example.com:81), kami juga memerlukan modul mod_proxy_connect dan mod_ssl:
a2enmod proxy_connect
a2enmod ssl
Setelah itu, kita harus memuat ulang Apache:
/etc/init.d/apache2 force-reload
Selanjutnya, kita harus mengkonfigurasi Apache. Buka /etc/apache2/apache2.conf dan cari bagian ini:
vi /etc/apache2/apache2.conf
[...] # Include the virtual host configurations: Include /etc/apache2/sites-enabled/ <Directory /var/www/sharedip> Options +Includes -Indexes AllowOverride None AllowOverride Indexes AuthConfig Limit FileInfo Order allow,deny Allow from all <Files ~ "^\.ht"> Deny from all </Files> </Directory> [...] |
Tepat sebelum bagian ini, tambahkan baris berikut:
NameVirtualHost * <VirtualHost *> ServerName ispconfig.example.com DocumentRoot /var/www/ ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / https://ispconfig.example.com:81/ ProxyPassReverse / https://ispconfig.example.com:81/ SSLProxyEngine on AllowCONNECT 81 </VirtualHost> |
sehingga terlihat seperti ini:
[...] NameVirtualHost * <VirtualHost *> ServerName ispconfig.example.com DocumentRoot /var/www/ ProxyRequests Off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass / https://ispconfig.example.com:81/ ProxyPassReverse / https://ispconfig.example.com:81/ SSLProxyEngine on AllowCONNECT 81 </VirtualHost> # Include the virtual host configurations: Include /etc/apache2/sites-enabled/ <Directory /var/www/sharedip> Options +Includes -Indexes AllowOverride None AllowOverride Indexes AuthConfig Limit FileInfo Order allow,deny Allow from all <Files ~ "^\.ht"> Deny from all </Files> </Directory> [...] |
Kemudian restart Apache:
/etc/init.d/apache2 restart
Jika Anda mendapatkan peringatan seperti ini:
server1:~/ispconfig/httpd/conf# /etc/init.d/apache2 restart
Forcing reload of web server (apache2)...[Tue May 22 23:23:12 2007] [warn] NameVirtualHost *:0 has no VirtualHosts
[Tue May 22 23:23:22 2007] [warn] NameVirtualHost *:0 has no VirtualHosts
maka Anda dapat mengomentari baris Sertakan /etc/Apache2/sites-enabled/ di /etc/Apache2/Apache2.conf:
vi /etc/apache2/apache2.conf
[...] # Include the virtual host configurations: #Include /etc/apache2/sites-enabled/ [...] |
atau Anda mengomentari baris NameVirtualHost * di awal /etc/Apache2/sites-available/default:
vi /etc/apache2/sites-available/default
#NameVirtualHost * [...] |
Mulai ulang Apache:
/etc/init.d/apache2 restart
Peringatan seharusnya sudah hilang sekarang.
Terakhir kita harus memodifikasi file konfigurasi ISPConfig /home/admispconfig/ispconfig/lib/config.inc.php. Anda harus menemukan sesuatu seperti ini di dalamnya:
vi /home/admispconfig/ispconfig/lib/config.inc.php
[...] if(isset($_SERVER['HTTP_HOST'])){ $go_info["server"]["server_url"] = 'https://'.$_SERVER['HTTP_HOST']; } else { $go_info["server"]["server_url"] = "https://ispconfig.example.com:81"; } [...] |
Ubah jadi seperti ini:
[...] //if(isset($_SERVER['HTTP_HOST'])){ // $go_info["server"]["server_url"] = 'https://'.$_SERVER['HTTP_HOST']; //} else { $go_info["server"]["server_url"] = "http://ispconfig.example.com"; //} [...] |
Harap pastikan bahwa terbaca http://ispconfig.example.com, bukan https://ispconfig.example.com!
Itu dia. Buka browser dan ketik http://ispconfig.example.com, dan Anda akan melihat permintaan login ISPConfig.
4 Tautan
- Modul Apache mod_proxy:http://httpd.Apache.org/docs/2.2/mod/mod_proxy.html
- Apache:http://httpd.apache.org
- ISPConfig:http://www.ispconfig.org
- Debian:http://www.debian.org