我有我的Apache服务器端口80上运行。 我还有一个在Jetty 8080端口上运行的Geoserver。为了避免JavaScript中的跨域问题,我希望任何来自http://example.com/geoserver请求代理到http://servername:8080/geoserver 我目前正在使用Virtual_host和mod_proxy来做到这一点。 我的httpd.conf有以下代码: <VirtualHost *:80> ProxyPass /geoserver http://localhost:8080/geoserver ProxyPassReverse /geoserver http://localhost:8080/geoserver </VirtualHost> 现在我需要Apache作为另一个在端口5000上使用node.js运行的应用程序的反向代理。如果我在http.conf中添加下面的代码: <VirtualHost *:80> ProxyPass /DocHub http://localhost:5000 ProxyPassReverse /DocHub http://localhost:5000 </VirtualHost> 我在Apache日志中看到以下警告: _default_ VirtualHost overlap on port 80, the first has precedence 。 而对http://example.com/DocHub的请求会给出404错误。 有没有一种方法可以将Apache用作多个站点的反向代理? 有没有另外一种方法来实现我想要做的事情?
我通过yum安装了httpd v2.2.15和php v5.5.13 。 当我尝试访问我的网站时,我首先注意到了这个问题,并显示了PHP代码。 然后我发现/etc/httpd/modules没有php模块,所以LoadModule失败。 我怎样才能将php模块添加到Apache? PHP的网站是指从源头上构build它。 不过,我需要通过RPMpipe理这个。 有没有其他方法可以做到这一点? 这里是我安装的httpd RPMs: httpd-tools-2.2.15-30.el6.centos.x86_64 httpd-2.2.15-30.el6.centos.x86_64 httpd-devel-2.2.15-30.el6.centos.x86_64 这里是我安装的PHP RPMs: php-xml-5.5.13-2.el6.remi.x86_64 php-pecl-jsonc-1.3.5-1.el6.remi.5.5.x86_64 php-gd-5.5.13-2.el6.remi.x86_64 php-pecl-memcached-2.2.0-2.el6.remi.5.5.x86_64 php-mbstring-5.5.13-2.el6.remi.x86_64 php-process-5.5.13-2.el6.remi.x86_64 php-cli-5.5.13-2.el6.remi.x86_64 php-common-5.5.13-2.el6.remi.x86_64 php-pecl-zip-1.12.4-1.el6.remi.5.5.x86_64 php-pecl-msgpack-0.5.5-4.el6.remi.1.x86_64 php-pgsql-5.5.13-2.el6.remi.x86_64 php-pecl-sqlite-2.0.0-0.4.svn332053.el6.remi.5.5.x86_64 php-mysqlnd-5.5.13-2.el6.remi.x86_64 php-pecl-apcu-4.0.4-1.el6.remi.5.5.x86_64 php-pecl-memcache-3.0.8-2.el6.remi.5.5.x86_64 php-pear-1.9.4-27.el6.remi.noarch php-pdo-5.5.13-2.el6.remi.x86_64 php-pecl-igbinary-1.1.2-0.5.git3b8ab7e.el6.remi.1.x86_64 php-mcrypt-5.5.13-2.el6.remi.x86_64 php-pecl-mongo-1.5.2-1.el6.remi.5.5.x86_64
我正在使用逆向代理( proxypass和proxypassreverse )背后的应用程序。 当我将ProxyHTMLEnable设置为ON时,我不明白为什么超链接被禁用(不可点击)。 请注意,涉及的页面包含: <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 当我检查日志时,我发现这个消息: 非HTML内容; 不插入代理的HTMLfilter 更新: 这就是代理背后的样子: 这就是它应该是这样的: 请注意,由于相对path,我正在使用ProxyHTMLEnable。 当我这样做,它正常工作: ProxyPass /myapp http://192.168.1.55:8080/myapp Keepalive=On timeout=600 ProxyPassReverse /myapp http://192.168.1.55:8080/myapp 当我这样做,它不会: ProxyPass /testenv/ http://192.168.1.55:8080/ Keepalive=On timeout=600 ProxyPassReverse /testenv/ http://192.168.1.55:8080/
我正在尝试使用Apache24 server mod_rewrite模块,但我无法加载它。 我知道有很多关于这个话题的问题,我经历了所有这些,但似乎没有任何工作。 这些是我一直沿用的步骤— CHANGED httpd.conf文件进行了这些更改: 一个。 LoadModule rewrite_module modules/mod_rewrite.so 湾 将AllowOverride None更改为AllowOverride All 重新启动Apache服务器 使用命令提示符命令httpd -M检查加载的模块。 我可以看到那里的mod_rewrite模块已经加载。 我附上下面的图片。 但执行所有这些步骤后,我看不到mod_rewrite作为加载模块在phpinfo 。 如上图所示,没有装载mod_rewrite模块。 另外作为一个狂野的黑客,我甚至尝试使用.htaccess文件重写url,但这是行不通的。 Apache似乎忽略了.htaccess文件,尽pipe我把这个文件放在我的根目录下。 Note: I am running `PHP` as an apache module Using `WAMP` stack Using `localhost` as server 我需要这个模块严重的URL重写的目的。 你们可以build议一些其他的方式来加载这个模块? 编辑 我试图从虚拟主机重写URL,因为答案表明模块已加载,它不依赖于.htaccess和info.php 。但stil不是redirect。 我在下面添加Virtual host设置— <VirtualHost *:80> <Directory "/Apache24/htdocs"> Options FollowSymLinks AllowOverride […]
我已经安装了Apache,服务器运行良好。 然后,我安装了PHP5,它给了我一个警告,它没有编辑所需的Apache文件。 我做了一些Googlesearch,我发现一篇文章说我只需要将其添加到httpd.conf文件的任何位置。 LoadModule php5_module "J:/php/php5apache2_2.dll" AddType application/x-httpd-php .php PHPIniDir "J:/php" 但是,当我这样做,并尝试重新启动服务,Apache无法启动。
帮帮我! 我试图说服我的Apache指向localhost /Sites 。 我究竟做错了什么? httpd.conf设置 <Directory /> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all </Directory> <VirtualHost *> DocumentRoot "/Users/username/Sites" ServerName localhost </VirtualHost> DocumentRoot指向/ Sites文件夹。 听80 NameVirtualHost * 越野车结果 10.0.0.4结果与/ Sites文件夹。 127.0.0.1也一样。 错误 : http:// localhost结果与/private/etc/apache2/…/htdocs
我在一台服务器上有多个开发人员,每个人都有自己的SVN副本。 我希望每个开发者都有自己的子域指向他们自己的代码库副本。 我尝试把PerlSwitches放在里面,但似乎没有工作。 例如 <VirtualHost dev1.devserver.com> PerlSwitches -I/home/dev1/www -w -T <Location /webapp/> SetHandler perl-script PerlHandler WebApp::Handler </Location> </VirtualHost> <VirtualHost dev2.devserver.com> PerlSwitches -I/home/dev2/www -w -T <Location /webapp/> SetHandler perl-script PerlHandler WebApp::Handler </Location> </VirtualHost> 谢谢。
我有两个htaccess规则,我想转移到httpd.conf,因为我听说这是更好的性能。 我试着把它们复制到httpd.conf中,但是它没有使用相同的语法,因为它不起作用。 有人可以告诉我这两个.htaccess规则的httpd.conf相当于: # DISABLE HOTLINKING RewriteEngine on # Options +FollowSymlinks RewriteCond %{HTTP_REFERER} !^$ RewriteCond %{HTTP_REFERER} !^http://(www\.)?mysite.com/.*$ [NC] RewriteRule \.(gif|jpg|jpeg|png|js)$ – [F] # PREVENT ALL ACCESS TO THIS FILE <files admin.php> order allow,deny deny from all </files> 非常感谢。
有没有办法启用SSI的服务器(运行Apache),但只允许include元素( <!–#include –> ),而不是任何其他?
<VirtualHost *:80> SetEnv SITENAME testing ServerName www.test.com # Location of files DocumentRoot "/www/${SITENAME}/site" Alias /data "/www/data/${SITENAME}" Alias /base "/www/${SITENAME}/base/site" # Logging ErrorLog "/var/log/httpd/${SITENAME}-error.log" CustomLog "/var/log/httpd/${SITENAME}-access.log" combined </VirtualHost> 启动apache2 …警告:DocumentRoot [/ www / $ {SITENAME} /站点]不存在 对文档的进一步阅读提供了一个提示,即SetEnv可能不能及时绑定到path中,build议的替代SetEnvIf也是基于请求属性。 我也看到了使用mod_vhost_alias的例子,但似乎并没有处理任何东西,但DocumentRoot,即使如此,它需要使用服务器名称,这是不是我想要的组件。 我想要的是纯粹的variablesreplace可用的configuration是读取和可用的任何string(如C中的#DEFINE)。 我的Apache版本是2.2。 可以这样做吗? 更新:我在文档中发现了一个Define指令,但它不起作用(看起来像2.3是新的)。 我想现在的问题是有一个模块,将此function还是等同于2.2?