mod_perl - separate PERL interpreter for each LocationMatch
utham hoode <[email protected]>
| Newsgroups | gmane.comp.apache.mod-perl |
|---|---|
| Message-ID | <[email protected]> |
Hi All, I have written a mod_perl proxy server which redirects the HTTP traffic to a webserver. I have pasted the snippet below. In the apache worker thread, is enable. In the httpd.conf two <LocationMatch> are configured http://ipaddress/path1/http://ipaddress/path2/ After starting the http server if i open any URL from the browser, same “TEST_VAR” is being printedfor both the URLs. If I call path1 first, then for both the URLs 100 is printed.If I call path2 first, then for both the URLs 200 is printed.(that is its taking the first called Path, after httpd is started) #----------------------------Startup.pl --------------------------------------------##startup.pl use lib qw(/home/test1/libs); 1; #--------------------------------- #---------------------------- httpd.conf---------------------------------------------# # httpd.conf PerlRequire /home/test1/startup.pl #http://ipaddress/path1/<LocationMatch /path1/> SetEnvIf Request_URI "/" TEST_VAR=100 SetHandler perl-script PerlResponseHandler Module::Test</LocationMatch> #http://ipaddress/path2/<LocationMatch /path2/> SetEnvIf Request_URI "/" TEST_VAR=200 SetHandler perl-script PerlResponseHandler Module::Test</LocationMatch> #-------------------------------------------------------------------------------# #---------------------------- Test.pm ---------------------------------------------# # Test.pm package Module::Test; use strict; use Apache2::Const qw(:methods :http :common);use Apache2::Log ();use Apache2::URI (); my $param = env_variable(); sub handler{ Apache2::ServerRec::warn($param); print "Value".$param; return Apache2::Const::OK;} sub env_variable{ # Configuration loading from a file during startup my $endpointURL = $ENV{'TEST_VAR'}; return $endpointURL;} 1; #-------------------------------------------------------------------------------- But I tried with <VirtualHost> option and it is working fine as PerlOptions +Parent is present.But since the port numbers are different firefox will now allow simulataneous access toboth URL from same webpage. #http://ipaddress:8080/path1/<VirtualHost *:8080> SetEnvIf Request_URI "/" TEST_VAR=100 PerlRequire /home/test1/startup.pl PerlOptions +Parent <LocationMatch /path2/> SetHandler perl-script PerlResponseHandler Module::Test </LocationMatch></VirtualHost> #http://ipaddress:8085/path2/<VirtualHost *:8085> SetEnvIf Request_URI "/" TEST_VAR=200 PerlRequire /home/test1/startup.pl PerlOptions +Parent <LocationMatch /path2/> SetHandler perl-script PerlResponseHandler Module::Test </LocationMatch></VirtualHost> Please help me with this, Thanks in advance.Regards,uttam