Alt Dizine Sahip Apache VirtualHost Proxy'si


13

Şu anda birincil web sunucumuz olarak bir IIS sunucumuz var. Yerine bir Apache sunucusu uyguluyoruz, ancak yine de IIS sunucusunun erişilebilir olması gerekiyor. Genellikle bu basit bir şeydir, çünkü Apache2 bir alt etki alanını bu sunucuya atayabilir.

Ancak sorunumuz şudur: IIS sunucusunda dotnetCharting kullanıyoruz ve lisans, etki alanı adına bağlıdır. DotnetCharting'in çalışmasını sağlamak için başka bir lisans satın alınması gerekecektir.

Sorum şu: Apache2 proxy'si bir alt dizin olabilir mi? Örneğin, 'www.example.com/subdir' IIS sunucusunu işaret edebilir mi? İmkansız olmamalı gibi görünüyor, ama bunun için bir çözüm bulamıyorum.

Yanıtlar:


19

Elbette. Ama dikkat et; birçok web uygulaması URL yollarını değiştirmek için iyi tasarlanmamıştır. Uygulama şu anda bir alt dizinde mi kullanılıyor?

# You'll probably want this to maintain the host mapping in IIS
ProxyPreserveHost On
# Swap in the IP address or internal host name of your IIS server:
ProxyPass /subdir/ http://192.0.2.100/subdir/

Veya URL yolunu değiştiriyorsanız, kaynaklar için mutlak yollar (CSS, javascript, resimler) nedeniyle birçok uygulamanın bu konuda sorun yaşayacağını unutmayın:

ProxyPass /subdir/ http://192.0.2.100/
ProxyPassReverse /subdir/ http://192.0.2.100/

Mükemmel! Bu test ortamımdaki hileyi yaptı. Şu anda, dahili olarak, sunucunun IP adresini girebilir ve sunucuya ulaşmak için dahili proxy'imizi kullanabilirsiniz ve her şey (dotnetcharting hariç) mükemmel çalışır, bu yüzden bu yöntemle proxy yaptığımızda uygulamanın başarısız olmasını beklemiyorum. Çok takdir!
SuperJer

1
Ben sondaki kapalı bırakmak zorunda /den subdir(böyle: /subdir). Aksi takdirde domain.com/subdiruygulama hatasıyla sonuçlanırsa (500). / (Eğer) eğik çizgi eklenmişse doğru proxy olur domain.com/subdir/, ama aradığım etki bu değildi.
OneHoopyFrood

2

Elbette.

  1. Mod_proxy modunu etkinleştir mod_proxy_http
  2. Apache VHost'unuzda aşağıdaki talimatları ayarlayın

    ProxyPass /subdir http://iis.server/.../
    ProxyPassReverse /subdir http://iis.server/.../
    

Son "/" işaretinin zorunlu olduğuna dikkat edin.

Daha fazla bilgi için: http://httpd.apache.org/docs/2.2/mod/mod_proxy.html


0

uçtaki son eğik çizgi zorunlu DEĞİLDİR. Bu şekilde ayarladım

ProxyPass /dir http://exmpale.com/dir/ 

ProxyPassReverse /dir http://exmpale.com/dir/ 

ve üst seviye işe yaradı, ancak ana seviyenin altındaki alt dizinlerde her şey olmadı.

Bunu bu şekilde değiştirdim ve her şey çalıştı.

Yanlış bilgi için teşekkürler !!!

ProxyPass /dir http://exmpale.com/dir

ProxyPassReverse /dir http://exmpale.com/dir

1
İnsanlar bunu neden küçümsüyor? Tam olarak yaşadığım sorun buydu. Her iki url'ü eğik çizgi ile bitirmek veya eğik çizgi olmadan her iki url'yi bırakmak zorundasınız .... en azından benim için alt dizinlere geldiğinde yardımcı oldu;)
Jannik
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.