Articles of httpd

CAS和Apache的httpd代理 – login后不会保持会话

我正在使用Apereo CAS for Enterprise SSO。 我试图用下面的Apache httpdconfiguration来设置一个简单的反向代理: <VirtualHost *:80> ServerName mydomain SSLProxyEngine on SSLProxyVerify none SSLProxyCheckPeerCN off SSLProxyCheckPeerName off SSLProxyCheckPeerExpire off ProxyRequests off ProxyPreserveHost off <Proxy *> Order deny,allow Allow from all </Proxy> ProxyPass /cas https://172.17.0.2:8443/cas ProxyPassReverse /cas https://172.17.0.2:8443/cas </VirtualHost> 我也启用了所有必要的httpd模块: LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_balancer_module modules/mod_proxy_balancer.so LoadModule proxy_http_module modules/mod_proxy_http.so LoadModule socache_shmcb_module modules/mod_socache_shmcb.so LoadModule session_module […]

有没有可能使用类似于mod_proxy的ProxyPass mod_cluster + JBoss + domain.xml的function?

我想在子path上使用代理(来模拟一个服务)。 我想要做的事情如下: https://myinternaldomain.com/myapplication/query/param1/…/paramN 这个包含“查询”的特定子path(?或者如何被称为完全子域?)应该使用代理服务器redirect到我的mockserver(在端口3000上运行) 和其他所有的电话 https://myinternaldomain.com/myapplication 不应该被redirect,应该正常工作 我在我的domain.xml中有一个条目: <subsystem xmlns="urn:jboss:domain:web:2.2" default-virtual-server="default-host" instance-id="${jboss.host.name}-${jboss.server.name}" native="false" default-session-timeout="1440"> <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/> <connector name="ajp" protocol="AJP/1.3" scheme="http" socket-binding="ajp"/> <virtual-server name="default-host" enable-welcome-root="false"> <alias name="localhost"/> <sso cache-container="web" cache-name="sso" reauthenticate="false"/> <rewrite name="myname" pattern="^/myapplication/query/*" substitution="/mockserver/query/" flags="L,R=302"/> </virtual-server> </subsystem> 但它看起来像redirect。 有没有可能在这里有类似于mod_proxy的ProxyPassfunction? 在httpd.conf中看起来像这样的东西(在使用mod_proxy的情况下) ProxyPass "/myapplication/query" "http://mockserver:3000/mockserver/query" ProxyPass / "balancer://mycluster" 谢谢

如何通过Apache的mod_cluster从JBoss的domain.xml创build基于代理的redirect?

我想要实现的是创build一个基于代理的redirectconfigurationJBoss,它将被传递给Apache的HTTPD。 我已经创build了一个redirect的“重写”,但我希望这里有一个代理,而不是强迫调用方修改URL(因为这只需要与特定调用的模拟服务集成) 。 这个部分的解决scheme在我的domain.xml中看起来像这样: <subsystem xmlns="urn:jboss:domain:web:2.2" default-virtual-server="default-host" instance-id="${jboss.host.name}-${jboss.server.name}" native="false" default-session-timeout="1440"> <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/> <connector name="ajp" protocol="AJP/1.3" scheme="http" socket-binding="ajp"/> <virtual-server name="default-host" enable-welcome-root="false"> <alias name="localhost"/> <sso cache-container="web" cache-name="sso" reauthenticate="false"/> <rewrite name="myname" pattern="^/myapplication/query/*" substitution="/mockserver/query/" flags="L,R=302"/> </virtual-server> </subsystem> 该解决scheme需要通过HTTPS工作。 一个可选的解决scheme可以使mod_cluster和mod_proxy以某种方式合作(我没有弄清楚),并向httpd.conf文件添加ProxyPass语句。 谢谢你的帮助!

Httpd mod_rewriteconfiguration和虚拟主机交互

我在Ubuntu 14.04上安装了Apache(2.4.7),然后将我的虚拟主机configuration复制到sites-available目录中,然后将SSLconfiguration文件重写到conf-available目录中,然后使用a2ensite和a2enconf启用它们。 我知道他们被parsing了,因为由于SSLconfiguration,在那里指定的头文件被添加到响应中,并且当(后来出于debugging的目的)禁用mod_rewrite时,Apache抱怨不了解RewriteEngine on指令。 当我开始testing时,Apache拒绝重写最简单的规则: RewriteEngine on # Rewrite https://localhost/test to https://localhost/test.html RewriteRule ^(.*)$ $1.html [L] 当我直接尝试https://localhost/test.html ,它工作。 当我明确地在我的虚拟主机标签中包含configuration文件,重写开始工作: <IfModule mod_ssl.c> <VirtualHost *:443> Include conf-enabled/rewrites.conf … 为什么当它被包含在全局的时候,它的工作方式是缺省的/etc/apache2/apache2.conf ? 关于这种行为有更多的信息吗?

SELinux设置为执行后,httpd服务无法启动

还有其他几个这样的问题,但没有人能解决我的问题。 以下是详细信息: 设置SELinux =强制执行后,httpd服务无法启动。 在error.log中,我看到以下消息: /etc/httpd/modules/mod_jk.so: cannot open shared object file: Permission denied 我的RHEL版本是7.4,httpd版本是2.4.6 经过一番研究,我发现了 # genhomedircon # touch /.autorelabel –> reboot 但是这并没有帮助。 后来我发现这个问题是因为SELinux的上下文。 /etc/httpd/modules/mod_jk.so是符号链接到mod_jk-1.2.41-httpd-2.4.6.so 。 两者有不同的背景。 我试图改变使用semanage的符号链接的上下文,但无法改变。 我试图改变原始文件的上下文,但不能这样做。 /etc/selinux/targeted/contexts/files/file_contexts.local文件显示我所做的更改。 然而, restorecon没有做任何事情,上下文保持不变。 另外matchpathcon不显示任何更改。 以下是来自audit.log的日志 type = CWD msg = audit(1509988597.679:106585):cwd =“/”type = PATH msg = audit(1509988597.679:106585):item = 0 name =“/ etc / httpd / modules […]

Apache反向代理自定义响应

我们正在运行一个用作反向代理的Apache 2.4.6服务器。 该服务器将请求平衡到两个tomcat后端服务器。 我们需要在后端服务器失败时configuration自定义响应,如下所示:HTTP状态码:200内容types:application / json响应正文:“门户处于维护模式” 而且,我们只需要将这个响应发送到移动应用程序,而不是web浏览器,检查一个自定义的http头。 有人能帮我find解决办法吗? 提前致谢。 丹尼尔

在Fedora 27的httpd上禁止403

我的服务器一次又一次地返回下面的错误,设置如下权限。 这是在Fedora 27上运行的虚拟主机。 从文件底部的/etc/httpd/conf/httpd.conf : NameVirtualHost *:80 <VirtualHost *:80> DocumentRoot "/home/andrei06041990/sites/cosmeticremix" ServerName cosmeticremix.dev ServerAlias www.cosmeticremix.dev <Directory "/home/andrei06041990/sites/cosmeticremix"> Options Indexes FollowSymLinks #AllowOverride All AllowOverride None Require all Granted </Directory> </VirtualHost> 我应该提供哪些附加信息来帮助解决此问题?

使用mod_proxy和mod_substitute在https或redirect中replace代码

我想设置一个免费的代理服务器,而不是在每个页面中replacehtml代码,以便在每个访问过的页面中向用户显示一条消息/注释。 到目前为止,它可以通过httpd.conf中的代码正常工作:此代码将body2replace为body 问题是,如果我访问一个https:// url它不会取代html内容 ,因为它应该被encryption是有道理的。 但是,如果在https请求中无法replace代码,是否可以configurationmod_proxy将所有https://请求redirect到http://? ProxyRequests On ProxyVia On <Proxy "*"> </Proxy> RequestHeader unset Accept-Encoding AddOutputFilterByType SUBSTITUTE text/html Substitute "s|body|body2|i"

HTTPD VirtualHostconfiguration无法正常工作

得到了一个新的VPS,安装了一切,有时间来设置虚拟主机 #vim /etc/httpd/conf.d/project.conf <VirtualHost *:80> DocumentRoot "/var/www/html/project.net/wordpress" ServerName project.net ServerAlias www.project.net Options -Indexes +FollowSymLinks +MultiViews </VirtualHost> 要求所有授权在主httpd文件中设置。 #systemctl restart httpd project.net是可访问的,但显示默认的httpd页面 系统信息: Linux dev 2.6.32-042stab116.2 #1 SMP Fri Jun 24 15:33:57 MSK 2016 x86_64 x86_64 x86_64 GNU/Linux with Apache/2.4.6 (CentOS) Server built: Oct 19 2017 20:39:16

configurationmod_proxy忽略域名/ url

我有mod_proxyconfiguration为公共代理,所以用户可以使用我的服务器(/ IP),而浏览网页… 我怎么能设置mod_proxy忽略像“谷歌”的特定url/域名,并直接向用户显示该请求(就像它不会使用代理)?