Articles of apache 2.4

在两个不同的Apache代理网关上使用AmAgentconfiguration

为了validation我们的应用程序的用户,我有一个可以用下图表示的设置: 我有一OpenAM运行OpenAM的服务器(图中的OpenSSO Enterprise),有几台客户机服务器,并使用Apache2 ( HTTPD )服务器作为具有两种代理configuration的反向代理。 我有一个使用以下虚拟主机configuration的身份validation和redirect的functionstream程: <VirtualHost *:443> AmAgent On AmAgentConf /opt/web_agents/apache24_agent/bin/../instances/agent_1/config/agent.conf ProxyPreserveHost On ProxyPass /application1 https://server1.com:10443/application1 ProxyPassReverse /application1 https://server1.com:10443/application1 </VirtualHost> 我连接到https://reverseproxy.com/application1 ,redirectOpenAM身份validation,并在login后redirect到server1.comlogin页面。我还有一个辅助configuration( agent_2 ),它根据策略configuration文件在OpenAM中configuration。 当想要在两个不同的ProxyPass/ProxyPassReverse实例上configuration两个不同的OpenAMconfiguration时,出现了我的问题。 上面的代码片段在侦听端口443的虚拟主机上的所有内容上都使用AmAgentConf 。但是,我希望两个应用程序都可以在相同的反向代理URL上访问,以使用正确的代理configuration。 理想情况下,我想要像下面这样的东西: <VirtualHost *:443> ProxyPreserveHost On ProxyPass /application1 https://server1.com:10443/application1 ProxyPassReverse /application1 https://server1.com:10443/application1 ProxyPass /application2 https://server2.com:443/application2 ProxyPassReverse /application2 https://server2.com:443/application2 <Proxy "https://server1.com:10443/*"> AmAgent On AmAgentConf /opt/web_agents/apache24_agent/bin/../instances/agent_1/config/agent.conf </Proxy> <Proxy "https://server2.com:443/*"> […]

如何设置与ssl请求一起使用的apache代理中继?

在我们的用例中,我们尝试用apache代理隐藏第三方代理的代理authentication,因为云服务器提供商与ip白名单不兼容。 这意味着从我们的服务器我们尝试使用代理。 而代理需要ip白名单validation。 因此,试图设置一个代理转发到外部代理,其中我们的代理有一个静态IP。 首先我们做了,在我们的AWS盒子上安装一个只有这些configuration的apache服务器 ProxyRequests On ProxyPreserveHost On <VirtualHost *:8001> ProxyPass / http://yyy.externalprovider.io:8230/ Keepalive=On ProxyPassReverse / http://yyy.externalprovider.io:8230/ </VirtualHost> 这对http和https都完全正常。 但请求仍然来自我们的服务器IP。 在此之后,我可以实现使用正常的http运行的东西,但https总是提供一个502网关错误。 具有以下configuration ProxyRequests Off SSLProxyEngine On SSLProxyVerify None SSLProxyCheckPeerCN Off SSLProxyCheckPeerName Off SSLProxyCheckPeerExpire Off ProxyPreserveHost On <VirtualHost *:8001> ProxyPass / http://yyy.externalprovider.io:8230/ Keepalive=On ProxyPassReverse / http://yyy.externalprovider.io.io:8230/ </VirtualHost> 在我们的apache2.conf中,我已经configuration了ProxyTimeout设置为300,因为这是提到最多的解决scheme。 有没有人明白为什么这不起作用?

如何写一个Apache重写规则redirect请求到一个目录到SSL?

我正在尝试将服务器上的目录中的所有请求redirect到https。 我已经在一个单独的configuration(在config.d目录内)和.htaccess文件中尝试了以下内容。 既不工作,也不会造成错误。 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] </IfModule> 当我尝试在一个configuration文件上面是在一个块内。 编辑 这是我在configuration文件中的代码: <Directory "/var/www/html/ssl_dir/"> Options Indexes MultiViews FollowSymLinks AllowOverride All <RequireAny> Require ip xx.xx.xx.0/24 Require ip ::1 </RequireAny> <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{HTTPS} !=on RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] </IfModule> </Directory>

仅在请求开始时才可以使用负载平衡器吗?

假设客户端请求一个页面www.example.com/index.html 。 DNS将其转换为203.0.113.15/index.html 。 然后,这个服务器,作为一个负载均衡器(假设Apache与mod_proxy_balancer),redirect到另一个IP(不在同一本地networking) 198.51.100.5 。 这是这个想法: client ==> example.com == DNS ==> 203.0.113.15 (Load Balancer) => 198.51.100.5 一旦客户端和目的端build立了连接, 如何避免客户端与198.51.100.5之间的进一步通信将通过中间服务器203.0.113.15 ? 是否有可能节省带宽, 中间服务器与客户端没有任何关系 ,而客户端仍然与198.51.100.5通信(上传/下载,潜在的兆字节或千兆字节!),所有这些与example.com仍然在他的浏览器中显示? 如何在mod_proxy_balancer中configuration这个?

通过HTTP将实况video和audiostream式传输到networking浏览器

我试图找出将stream媒体直播video和audio从Apache服务器传输到各种网页浏览器(主要是桌面Firefox和iOS Safari)的最佳方式。 (我现在还没有那么需要,只是现在可以使用的东西)。video由/dev/video0的V4L2设备/dev/video0 。 多个用户将一次连接到服务器。 我希望有一个解决scheme,不需要在客户端的浏览器插件。 我已经看到了我正在寻找的部署为飞机上的娱乐,以实况电视stream的forms发送到飞机WiFinetworking上的网页浏览器。 我还没有find任何(工作)的在线解决scheme(大多数search结果文件使用stream媒体服务,但我需要从我自己的服务器stream)。 我在服务器上运行最新的Debian'Stretch'GNU / Linux。 任何帮助是极大的赞赏。 如果您需要更多信息,请留下评论。

mod_proxy_http不能启用

我有当前代理模块启用,并正常工作: $ apache2ctl -M | grep proxy proxy_module (shared) proxy_fcgi_module (shared) 当我启用mod_proxy_http与a2enmod proxy_http和service apache2 restart ,Apache返回错误,如果mod_proxy未启用: oct 16 10:55:45 apachectl [15243]:apache2:/etc/apache2/apache2.conf中第140行的语法错误:/etc/apache2/mods-enabled/proxy_http.load第2行的语法错误:无法加载/usr/lib/apache2/modules/mod_proxy_http.so放入服务器:/usr/lib/apache2/modules/mod_proxy_http.so:undefined symbol:ap_proxy_check_connection ap_proxy_check_connection是一个mod_proxy.h方法https://ci.apache.org/projects/httpd/trunk/doxygen/group__MOD__PROXY.html#ga618c0e1bede21bdd3af5d6a802671cae 也许模块顺序加载的一些问题? 谢谢。 更新:在IncludeOptional指令之前添加LoadModule mod_proxy后,问题是相同的。 $ vi /etc/apache2/apache2.conf Include /etc/apache2/mods-available/proxy.load Include /etc/apache2/mods-available/proxy.conf # Include module configuration: IncludeOptional mods-enabled/*.load IncludeOptional mods-enabled/*.conf $ apache2ctl -M | grep proxy [Mon Oct 16 11:14:00.205439 2017] [so:warn] [pid […]

用于ScriptAlias位置上查询string的mod_rewrite规则

安装:在Ubuntu的Apache-2.4.18上通过FastCGI的一个QGis-2.18服务器 (真的是一个embedded的MapServer )实例。 如果在cgi处理程序的查询string中设置了某个值,我想添加另一个值。 为此,我在/etc/apache2/conf-enabled/qgis.conf的顶部添加了三行: RewriteEngine on RewriteCond "%{QUERY_STRING}" "application/json" [NC] RewriteRule "^/$" "/?OUTPUTFORMAT=GeoJSON" [PT,QSA] ScriptAlias / /usr/lib/cgi-bin/qgis_mapserv.fcgi <Location "/"> SetHandler fcgid-script Require all granted PassEnv QGIS_PROJECT_FILE </Location> FcgidInitialEnv QGIS_LOG_FILE ${QGIS_LOG_FILE} FcgidInitialEnv QGIS_SERVER_LOG_FILE ${QGIS_SERVER_LOG_FILE} FcgidInitialEnv QGIS_DEBUG ${QGIS_DEBUG} FcgidInitialEnv QGIS_SERVER_LOG_LEVEL ${QGIS_SERVER_LOG_LEVEL} FcgidInitialEnv QGIS_PLUGINPATH "${QGIS_PLUGINPATH}" FcgidInitialEnv PGSERVICEFILE ${PGSERVICEFILE} FcgidInitialEnv HOME /var/www 我正在像这样访问服务器: http://myserver.invalid.tld:51081/ ?SERVICE=WFS &VERSION=1.1.0 &REQUEST=GetFeature &OUTPUTFORMAT=application/json […]

Apache .htaccess和.htpasswd不要求在Django站点input密码

我有一个configuration了mod_wsgi的Django站点,使用Apache 2.4作为Web服务器。 虚拟主机: <VirtualHost *:80> ServerName site.com ServerAlias site.com ServerAdmin [email protected] DocumentRoot /var/www/site <Directory /> Options FollowSymLinks AllowOverride None </Directory> Alias /media/ /var/www/site/media Alias /static/ /var/www/site/static <Directory /var/www/site> Require all granted AllowOverride All </Directory> WSGIScriptAlias / /var/www/site/nep/wsgi.py ErrorLog /var/log/apache2/site/error.log CustomLog /var/log/apache2/site/access.log combined # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. […]

如何在Apache中将Cookie设置为UNIQUE_ID的md5?

我目前在Apache中使用以下代码创build唯一的visit_id cookie: RewriteCond "%{HTTP_COOKIE}" "(^|;)\s*visit_id\s*=([A-Za-z0-9@-]+)" [NC] RewriteRule ".?" – [CO=visit_id:%2:.www.mydomain.com:30,S=1] RewriteRule ".?" – [CO=visit_id:%{ENV:UNIQUE_ID}:.www.mydomain.com:30] (如果存在cookie,请刷新其到期date,否则使用mod_unique_id创build具有UNIQUE_ID环境variables值的cookie。 这是工作,但我想使用更多的随机ID,例如UNIQUE_ID md5。 有没有办法做到这一点只是Apacheconfiguration? 我试过%{md5:%{ENV:UNIQUE_ID}}但是不起作用。

WAMP3多虚拟主机通过networking

我有一台安装了Wamp 3.0.6的Windows机器( 192.168.1.108 )。 我使用多个VirtualHost来“托pipe”不同的网站。 我的http-vhosts.conf如下所示: <VirtualHost *:80> ServerName project0 DocumentRoot c:/wamp64/www <Directory "c:/wamp64/www/"> Options +Indexes +Includes +FollowSymLinks +MultiViews AllowOverride All Require local </Directory> </VirtualHost> # <VirtualHost *:80> ServerName project1 DocumentRoot "c:/wamp64/www_project1" <Directory "c:/wamp64/www_project1/"> Options +Indexes +Includes +FollowSymLinks +MultiViews AllowOverride All Require local </Directory> </VirtualHost> <VirtualHost *:80> ServerName project2 DocumentRoot "c:/wamp64/www_project2" <Directory "c:/wamp64/www_project2/"> Options +Indexes […]