hello,
Adott egy tuzfal zorppal, mogotte ket webszerver. Szeretnem atadni az IP cimet logelemzesnek, de nem akar menni.
en igy csinalom: from socket import gethostbyaddr
class WD_http(HttpProxy): def config(self): HttpProxy.config(self) self.request["GET"] = (HTTP_REQ_POLICY, self.filterURL) self.request["POST"] = (HTTP_REQ_POLICY, self.filterURL)
# ha nincs reverse, elhasal a Zorp... # ha eleg az IP, ez nem kell, es a HDR_INSERT-nel # csak a client_address kell try: RemoteHost = gethostbyaddr (self.session.client_address.ip_s)[0]; except: RemoteHost = self.session.client_address.ip_s;
def filterURL(self, method, url, version):
self.request_headers["X-Host"] = (HTTP_HDR_INSERT, RemoteHost)
if self.request_url_host == "www.akarmi1.hu": self.session.server_address = SockAddrInet("192.168.1.100", 8080) return HTTP_REQ_ACCEPT if self.request_url_host == "www.akarmi2.hu": self.session.server_address = SockAddrInet("192.168.2.100", 80) return HTTP_REQ_ACCEPT else : self.session.server_address = SockAddrInet("192.168.1.100", 80) return HTTP_REQ_ACCEPT
... httpd.conf-ban pedig: ... LogFormat "%{X-host}i %l %u %t \"%r\" %>s %b" common ... a. (en nem osztom el vhost szerint a kereseket, mindegyik ugyanoda megy, de gondolom a header beszuras eleg igy, nem kell mindegyiknel...) -- Minden baj forrása az 1/x függvény.