我试图在Apache中设置代理,如下所示: <VirtualHost *:80> ServerName test.public.domain … RewriteRule "^/dir/(.*)" "http://x-service.local/$1" [P,L] … 在同一台服务器上还有另一个虚拟主机configuration: <VirtualHost *:80> ServerName x-service.local … 在Apache服务器上的/etc/hosts我有以下条目: x-service.local 127.0.0.1 当我从我的工作站curl test.public.domain/dir/xxx我得到5xx代码。 当我从服务器本身curl x-service.local/xxx ,我得到了200个代码。 当我改变 x-service.local 127.0.0.1 至 x-service.local 192.168.1.1 curl test.public.domain/dir/xxx工作正常。 192.168.1.1是服务器接口的IP地址。 apache听取0.0.0.0:80 没有防火墙 看起来像代理到域parsing为回送接口由于某种原因不起作用。 我不明白为什么我想知道如何使它工作,因为这样的设置将简化我的configuration多个服务器。
我想要做的是在一个Apache目录中创build多个Ruby应用程序,当我去http:// localhost / appname时 ,ruby应用程序没有问题就解决了。 不过,我想dynamic地这样做,所以我不必在每次创build新应用程序时在apache.conf中添加一个新的<Directory> 。 我希望它是像Apache中的PHP,你只需要在目录中放置多个应用程序,并且http:// localhost / appname显示应用程序 的apache.conf <VirtualHost *:80> UseCanonicalName Off ServerName localhost ServerAlias localhost ServerAdmin webmaster@localhost VirtualDocumentRoot /var/www/html/*/public ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined <Directory /var/www/html/*/public> Require all granted Options Indexes FollowSymlinks MultiViews AllowOverride All Order allow,deny Allow from all </Directory> </VirtualHost> 如果我将文档根目录和目录设置为应用程序的完整path,那么一切正常,但是我想使其成为dynamic的。 这甚至有可能吗? 如果是这样,你能提供一些帮助吗? 谢谢!
在尝试让Let's Encrypt Certbot在托pipe反向代理内容的本地服务器上工作时,我无法在Location块中获取本地exception。 httpd.conf片段: SSLProxyEngine on <Location "/"> ProxyPass "https://internal.host/" ProxyPassReverse "https://internal.host/" </Location> Include /etc/apache2/vhosts.d/01_acme.include 在Location块的上面或下面放置01_acme.include文件不起作用。 01_acme.include文件: <Location /.well-known/acme-challenge/> ProxyPass "!" Alias /run/acme/.well-known/acme-challenge </Location> 我在一个名为date目录中放置了一个文本文件。 试图检索这个文件会导致无休止的301redirect到date/index.html/index.html/…直到达到客户端的redirect限制。 日志显示这是在前端服务器上生成的,后端从未收到请求。 如果我用独立的指令replace位置块,它的function如预期: Alias /.well-known/acme-challenge /run/acme/.well-known/acme-challenge ProxyPass /.well-known/acme-challenge ! 根据ProxyPass文档,这种定义exception的方法应该可以工作 – 它非常符合该部分末尾提供的示例configuration。 这是刚刚打破,还是我错过了什么? redirect可能是根本原因,但我不能在这个范围内find任何redirect或重写指令,可能会抛出一个301,并且在.htaccess (没有一个)或configuration文件中只提及index.html是目录索引,我已经尝试明确禁用Options -Indexes没有效果。
此代码在.htaccess或目录中完美工作 RewriteEngine on RewriteCond %{request_uri} !^/dir/$ [NC] RewriteRule ^(.*)$ /dir/ [END] 但是当放入VirtualHost时会导致无限的redirect。 我已经阅读了有关虚拟主机和目录中的request_uri之间差异的文档,但是我仍然无法生成将在虚拟主机上下文中工作的代码。 我应该改变什么?
这是一个特殊情况,我在我的tomcat前面使用Apache mod_proxy ,并且Apache也使用mod_header添加了带有mod_headers的 RequestHeader。 如果特殊字符在URI中,则它们被读取为ISO-8859-1 。 即使我在规则中写下了一个特殊的价值,比如“hélo”。 如果我的conf文件保存为ISO-8859-1 ,那么确定,但是如果conf文件保存为UTF-8 ,那么它就是KO(在运行时变成)。 我没有find这个编码configuration。 我尝试在Windows和Linux的Apache服务器上。 这里的configuration文件: <VirtualHost *:80> ServerName apache.convertigo.net ProxyPass / http://httpbin.org/anything/ ProxyPassReverse / http://httpbin.org/anything/ RewriteEngine On RewriteRule ^(.*)$ – [E=X_REQUEST_URI:%{REQUEST_URI},E=X_REQUEST_HOST:%{HTTP_HOST},E=X_HTTPS_STATE:%{HTTPS}] RequestHeader set x-request-uri "%{X_REQUEST_URI}e" env=X_REQUEST_URI RequestHeader set x-request-host "%{X_REQUEST_HOST}e" env=X_REQUEST_HOST RequestHeader set x-https-state "%{X_HTTPS_STATE}e" env=X_HTTPS_STATE RequestHeader set x-frontal "apache" RequestHeader set x-helo "hélo" </VirtualHost> 这里是一个testingURL,它回显URI(请参阅X-Request-Uri ): […]
我在/usr/local/etc/apache24/Includes有以下conf文件,当我尝试login到Nagios GUI时,我得到了一个403禁止。 我想这与Apache访问Nagios数据的权限问题,但我不知道如何解决这个问题。 我没有将www用户添加到nagios组,并且这些文件位于/usr/local/www/nagios/cgi-bin/可执行,并且由nagios组可读。 我也在httpd.conf文件中启用了cgi_modules ScriptAlias /nagios/cgi-bin/ /usr/local/www/nagios/cgi-bin/ Alias /nagios /usr/local/www/nagios/ <Directory /usr/local/www/nagios> Options None AllowOverride None Order allow,deny Allow from all AuthName "Nagios Access" AuthType Basic AuthUSerFile /usr/local/etc/nagios/htpasswd.users Require valid-user </Directory> <Directory /usr/local/www/nagios/cgi-bin> Options ExecCGI AllowOverride None Order allow,deny Allow from all AuthName "Nagios Access" AuthType Basic AuthUSerFile /usr/local/etc/nagios/htpasswd.users Require valid-user </Directory> 我该如何解决这个问题? Nagios版本:4.3.4 […]
我有一个虚拟主机Apache 2.4的问题。 如果我导航到ty1.dev,我得到的网站af2.dev代替 如果这是Apache 2.2,所有我需要添加的是NameVirtualHost *:80但在2.4中被忽略。 error.log不会报告任何问题 我错过了什么? # httpd-vhosts.conf <VirtualHost *:80> ServerName af2.dev ServerAlias af2.dev ServerAdmin [email protected] DocumentRoot "c:/Users/Adam.Adam-PC/Sites/af2/web" <Directory c:/Users/Adam.Adam-PC/Sites/af2/web> Options Indexes FollowSymLinks MultiViews AllowOverride All Order allow,deny allow from all Require all granted </Directory> </VirtualHost> <VirtualHost *:80> ServerName ty1.dev ServerAlias ty1.dev ServerAdmin [email protected] DocumentRoot "c:/Users/Adam.Adam-PC/Sites/ty1" <Directory c:/Users/Adam.Adam-PC/Sites/ty1> Options Indexes FollowSymLinks MultiViews AllowOverride […]
我们在Apache安装中遇到一个相当奇怪的问题。 这里是一个简短的总结: 目前我正在用https和服务器证书设置Apache。 这是相当容易的,可以直接使用,就像预期的那样。 这是此设置的configuration: Listen 443 SSLEngine on SSLCertificateFile "/progs/apache/ssl/example-site.no.pem" SSLCertificateKeyFile "/progs/apache/ssl/example-site.no.key" SSLCACertificateFile "/progs/apache/ssl/ca/example_root.pem" SSLCADNRequestFile "/progs/apache/ssl/ca/example_intermediate.pem" SSLVerifyClient none SSLVerifyDepth 3 SSLOptions +StdEnvVars +ExportCertData RequestHeader set ssl-ClientCert-Subject-CN "%{SSL_CLIENT_S_DN}s" RewriteEngine On ProxyPreserveHost On ProxyRequests On SSLProxyEngine On … <LocationMatch /secureStuff/$> SSLVerifyClient require Order deny,allow Allow from All </LocationMatch> … <Proxy balancer://exBalancer> Header add Set-Cookie "EX_ROUTE=EB.%{BALANCER_WORKER_ROUTE}e; path=/" […]
我有一个服务器上的一个400MB的zip文件,我试图直接通过networking浏览器(而不是通过脚本)访问。 该文件似乎正常下载,但在124 MB作为损坏的文件中断。 无论使用哪种浏览器,都会发生相同的结果。 Apache访问日志似乎显示成功下载: IP – – [18/Jan/2013:10:07:33 -0500] "GET /url/to/file/myfile.zip HTTP/1/1" 200 455000714 错误日志中没有任何内容。 我已经做了一些search,唯一能find的就是添加AcceptFilter http none ,这似乎没有任何影响。 我在Windows 2008服务器上运行Apache 2.4。
我使用Webmin来pipe理我的Ubuntu 12.04 x86_64机器。 昨天,我经常收到更新通知并安装了它们。 在安装过程中,libapache2-mod-php5已经被卸载,从那以后我无法重新启动Apache。 当我尝试重新安装它时,我得到以下错误: The following packages have unmet dependencies: libapache2-mod-php5 : Depends: apache2-api-20120211 but it is not installable PreDepends: apache2 (>= 2.4) 如果我理解的很好,这意味着我需要Apache 2.4的最低限度,对吧? 如果是这样,因为我使用Virtualmin,似乎没有certificate与Apache 2.4兼容,我怎样才能回滚我的变化? 以下是dpkg.log文件的一部分: 2013-07-30 14:40:30 upgrade bind9 1:9.8.1.dfsg.P1-4ubuntu0.6 1:9.8.1.dfsg.P1-4ubuntu0.7 2013-07-30 14:41:47 upgrade mysql-server 5.5.31-0ubuntu0.12.04.2 5.5.32-0ubuntu0.12.04.1 2013-07-30 14:41:59 upgrade mysql-common 5.5.31-0ubuntu0.12.04.2 5.5.32-0ubuntu0.12.04.1 2013-07-30 14:42:00 upgrade mysql-client 5.5.31-0ubuntu0.12.04.2 5.5.32-0ubuntu0.12.04.1 2013-07-30 […]