Saya telah mencari di Google dan tidak memiliki banyak keberhasilan dalam menemukan jawaban. Saya menjalankan server di Ubuntu dan saya memiliki program yang diinstal yang menggunakan berbagai port non-standar. Masing-masing menggunakan port yang berbeda, dalam kasus saya mereka adalah 9090, 9091, 9092, 9093, dan 9094. Saya membuat server apache dan memiliki nama domain yang sekarang dapat menjangkau server saya daripada harus mengetikkan alamat IP saya. Apa yang saya cari adalah cara untuk membuat direktori yang dapat menunjuk ke berbagai port yang saya daftarkan. Saya menginginkan sesuatu seperti:
https://www.mydomain.com/app1 https://www.mydomain.com/app2 http://www.mydomain.com/app3
Beberapa port lebih dari SSL, ada juga yang tidak, saya hanya mengaturnya (9090-9094) agar mudah digunakan di pihak saya. Saya ingin mendapatkan / app1 untuk menunjuk ke port SSL 9090, / app2 untuk menunjuk ke port SSL 9091, dan / app3 untuk menunjuk ke port non-SSL 9092. Apakah ada cara sederhana untuk melakukan itu? Saya sudah mencoba menambahkan ProxyPass dan sejenisnya berdasarkan posting lain tetapi tidak ada yang berhasil. Apakah saya perlu menambahkan situs baru?
Juga, jika ini melibatkan pengeditan file, yang saya harapkan akan, akan sangat dihargai jika Anda bisa mendaftar lokasi default file dan di mana menambahkan sesuatu. Saya terus melihat posting yang mengatakan untuk menambahkan ProxyPass, jadi saya hanya berasumsi itu masuk ke dalam VirtualHost, tapi saya tidak sepenuhnya yakin. Pada dasarnya, saya tahu sedikit tentang pengaturan server web dan saya perlu diperlakukan seperti itu.
Saya meminta maaf atas tag yang salah dan saya menghargai waktu yang Anda ambil untuk membaca posting dan bantuan yang Anda berikan.
EDIT: Untuk klarifikasi, aplikasi sudah dapat diakses https://www.mydomain.com:9090
, dll. Saya hanya ingin cara yang digunakan https://www.mydomain.com/appName
untuk sampai ke lokasi / halaman yang sama yang diterbitkan oleh aplikasi tersebut.
EDIT 2: Dari / etc / apache2 / sites-available / default
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /app1 https://localhost:9090/
ProxyPassReverse /app1 https://localhost:9090/
</VirtualHost>
sumber
<VirtualHost 10.0.0.1:80 > ServerName server.domain.com DocumentRoot /usr/local/apache/htdocs </VirtualHost>
Jawaban:
Pastikan modul apache berikut diinstal dan dimuat:
Anda dapat memeriksa melalui menjalankan perintah berikut sebagai root (dengan asumsi httpd ada dalam $ PATH Anda)
httpd -t -D DUMP_MODULES
Setelah itu, coba ubah konfigurasi Anda ke yang berikut:
Proxy sekarang akan berfungsi jika Anda mengunjungi
http://localhost/app1
atauhttp://mydomain.com/app1
dengan asumsi mydomain.com menunjuk ke localhost.sumber
ProxyRequests Off <Proxy *> Order deny,allow Deny from all Allow from 127.0.0.1 </Proxy> SSLProxyEngine on ProxyPass /app1 https://localhost:9090 ProxyPassReverse /app1 https://localhost:9090
?ProxyPass /app1/ https://localhost:9090/
dan sama untuk ProxyPassReverse jika digunakan. Dan kedua, tambahkan pengarahan ulang RewriteRule:RewriteRule ^/app1$ /app1/ [R]
as / app1 tidak akan diproksi saat itu.