Farklı bir bağlantı noktasına farklı alt etki isteklerini yönlendirmek için nasıl

4 Cevap php

Ben iki uygulama var, bir başka, blog.myexample.com www.myexample.com olduğunu. PHP ve Apache kullanıyorum.

Şimdi, www.myexample.com benim makine bağlantı noktası 82 üzerinde çalışan, ve blog.myexample.com port 83, aynı makine üzerinde izin istiyorum. Apache ve / veya PHP betikleri nasıl yapılandırılır istekleri için istekleri düzgün hizmet zaman ki?

Edit: Thanks for everyone who responds, but I afraid I don't get the question clear-- my bad!

What I really want is to simulate a condition whereby the www.myexample.com and blog.myexample.com are located on different machines. So when a request comes in, the gateway server ( the one which is also hosting www.myexample.com) will check whether this is a request for www.myexample.com or for blog.myexample.com and does the necessary reroutes.

Bunun nasıl? Teşekkürler.

4 Cevap

Ve farklı süreçlerde - Ben size iki site (www ve blog) farklı limanlara çalıştırmak isteyen için kendi nedeni olduğunu varsayıyoruz. Bu ne amaçladığınız, örneğin değilse yerine kullanımı VirtualHost, co-host port 80 üzerinde aynı apache + php örneği içinde iki etki için:. sonra farklı bağlantı noktaları ya amaçlanan ne olabilir sahip, iki farklı süreçleri var istemiyordu Otherwise, read on.

Eğer iki apache + php süreçler localhost dinleme olduğunu varsayarsak: 82 ve localhost: 83, sırasıyla, bir ters vekil olarak hareket etmek üçüncü, apache-sadece süreci getirmek. Ters proxy apache örneği istekleri iki sanal konak tanımları ile, internetten bağlantı noktası 80 üzerinde gelen dinleyin var. 83, örn: ikinci sanal konak tanımı, blog, locahost isteklerini iletmek istiyorum oysa, 82: İlk sanal konak tanımı, www, localhost'a isteklerini iletmek istiyoruz:

NameVirtualHost *:80

# www
<VirtualHost *:80>
  ServerName www.myexample.com
  ProxyPass               /       http://localhost:82/
  ProxyPassReverse        /       http://localhost:82/
</VirtualHost>

# blog
<VirtualHost *:80>
  ServerName blog.myexample.com
  ProxyPass               /       http://localhost:83/
  ProxyPassReverse        /       http://localhost:83/
</VirtualHost>

Ben şeyler bu tür için proxy kullanabilirsiniz.

Benim örnekte, ben bağlantı noktası 80 üzerinde çalışan 1.3 apache var, ama ben apache 2.2 çalıştırmak için svn depo gerekiyordu ve ben yazın istemiyordu: 82 etki ucunda her zaman. Yani apache 1.3 (port 80) proxy yönlendirmeyi yaptı:

<VirtualHost *:80>
  ServerName svn.mydomain.com
  ServerAlias svn
  ServerAdmin my@email.com

  <IfModule mod_proxy.c>
    ProxyPass / http://svn:82/
  </IfModule>
</VirtualHost>

Benim şapka üst kapalı:

Listen 82
Listen 83
NameVirtualHost 1.2.3.4 # Use your server's IP here

<VirtualHost www.myexample.com:82>
# Configure www.myexample.com here
</VirtualHost>

<VirtualHost blog.myexample.com:83>
# Configure blog.myexample.com here
</VirtualHost>

Bu bir daha tam bir cevap kurulum loosly yukarıda tarif budur bir proxy geçidi için size izin veren böyle bir şey yapmak olacaktır.

ServerName localhost

<Proxy *>
    Order deny,allow
    Allow from localhost
</Proxy>

ProxyRequests           Off
ProxyPreserveHost       On      

ProxyPass               /       http://localhost:10081/
ProxyPassReverse        /       http://localhost:10081/
ProxyPassReverseCookiePath /    http://localhost:10081/