我有我的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用作多个站点的反向代理? 有没有另外一种方法来实现我想要做的事情?
对于我的IT安全课暑期项目,我们必须以不同的方式规避学校/公司networking上的安全措施设置,并解释如何检测和避免这些黑客行为。 其中一个话题是(请原谅我的翻译不好): 阿尔伯特与他的笔记本电脑连接到学校networking。 他只能通过学校过滤代理访问万维网。 此代理configuration为只允许HTTP(TCP 80)和HTTPS(443)请求,并且某些网站(比如www.forbidden-forum.com)被过滤掉。 ICMP回应请求/回复是允许的。 阿尔伯特可以使用什么技巧从学校networking访问www.forbidden-forum.com? networking和系统pipe理员如何检测/防止这些技巧? 现在我不要求这个练习的答案 (这将会使我join这个课程的整个观点并没有教会我)。 到目前为止,我想到了以下几个技巧: 使用ICMP隧道。 通过监视exception高的ICMP帧,可以轻松检测到。 从手机分享互联网连接。 很难发现,特别是如果pipe理员没有对学生电脑的pipe理权限。 在443 TCP端口上使用VPN。 可以通过监视到特定主机(VPN服务器)的exception高数量的443stream量来检测,但很难,因为它可能是合法的stream量。 pipe理员可以尝试使用networking浏览器连接到相同的主机,但可以检测到它不是一个适当的Web服务器。 有一个外部Web服务器,充当远程浏览器 ,将所有内容redirect到www.forbidden-forum.com。 我的问题实际上是关于最后一点。 我认为有可能有这样做的软件,但它将不得不: 根据需要连接到www.forbidden-forum.com replace响应文档/ javascript代码中的所有URL以重新映射到自身,使得Albert的计算机从未实际尝试直接到达www.forbidden-forum.com。 能够将replace的url翻译为原来的url。 实际上,我希望能够在学校访客networking(具有类似的限制)的项目演示中展示这个PoC,但是我真的很想避免自己“开发”一些东西。 我的开发人员的技能实际上并不好,我想知道:有没有一种软件能够做到这一点? 也许一个Apache模块或configuration?
我正在CentOS 6机器上运行一个具有4个内存和3个处理器内核(Intel Xeon 2.9 Ghz)的Web应用程序。 每天早晨8点30分至9点30分(与大多数人进入工作并开始使用此应用程序的时间段一致),Apache会停止采取任何新请求,因为MaxClients设置跨越了256(这是默认设置)。 在任何时候,我有15个用户在使用这个应用程序,并且这个应用程序的活动时间在上午8点30分到下午4点30分之间。 为了试图了解可能会导致MaxClients设置超出的原因,我开始监视在加载页面期间和之后,我的计算机向服务器发送了多less个请求。 大约40分钟的监测结果是: 可以看出,我的web应用程序使用CometChat来允许用户互相交互,并且在页面加载之后,所有的活动都来自CometChat,使得AJAX请求得到更新。 就在现在,我在shell中运行这个命令来获得正在运行的apache线程的数量: pidof httpd | wc -w 结果是:245.重启Apache后,这个数字一直在上升。 这些进程所占用的平均(居民)内存大约是18M 。 每个进程有18M的245个进程会导致超过4个RAM的使用。 现在,对于我的问题: 我的客户(或CometChat是否代表我的客户)提出太多要求? 数据传输量是否exception高? 我该如何防止MaxClients设置被超过? 这对我们来说是一个很低的交通时间。 在接下来的几个月里,stream量只会增加。 任何帮助表示赞赏!
我有我的vhosts.d目录下的文件,它被称为hosts.conf(从我收集的名称是不是一个问题)。 现在有各种主机,你可以看到,如果我使用http(端口80)没有任何问题,我可以从一个网站反弹到另一个,但如果我使用https(端口443)无论网站我在我的浏览器中键入我总是结束于首先与443端口列出的网站(在这种情况下为mobile-dev1。 * .it)。 显然我的真实文件没有*书面,但正确的网站名称。 <VirtualHost 10.65.200.7:80> DocumentRoot "/srv/www/htdocs/public" ServerName portal.***.it <Directory "/srv/www/htdocs/public"> allow from all </Directory> </VirtualHost> <VirtualHost 10.65.200.7:80> DocumentRoot /srv/mobile-dev1/public ServerName mobile-dev1.***.it <Directory /srv/mobile-dev1/public> allow from all Options +Indexes </Directory> </VirtualHost> <VirtualHost 10.65.200.7:443> DocumentRoot /srv/mobile-dev1/public ServerName mobile-dev1.***.it SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL SSLCertificateFile /etc/ssl/certs/wildcard_***_it.pem SSLCertificateKeyFile /etc/ssl/private/wildcard_***_it.key SSLCertificateChainFile /etc/ssl/certs/RapidSSLCA.crt <Directory /srv/mobile-dev1/public> allow from all Options […]
我使用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 […]
我正在做一个path重写设置和环境variables,这将导致mod_jk使用特定的JBoss服务器。 适用于任何应用程序path。 当我尝试我们的监视servelet(做一个简单的数据库来certificate堆栈是可操作的),它匹配重写,重写,设置env var,但却无法实际处理URL的第二次。 为什么通过重写引擎第二次旅行的不一致行为? 模式是,如果/workername/被预先添加到path中,它将删除,但将该值用作mod_jk装载的JK_WORKER_NAME 。 configuration示例: SetHandler jakarta-servlet SetEnv JK_WORKER_NAME mexico RewriteEngine on RewriteRule ^/(mexico[1-2])/(.*)$ /$2 [E=JK_WORKER_NAME:$1,L] (mod_jk工人被命名为mexico1和mexico2) 点击https://hostname/mexico2/public/gateway.sf得到重写,然后第二遍通过重写引擎,由mod_JK处理并传递给应用程序服务器。 一切顺利,看到日志(向右滚动好位) 10.1.1.163 – – [26/Aug/2013:14:10:44 –0400] [publisher.internal.test.hnw.com/sid#2ad8c96bc310][rid#2ad8bde6fae0/initial] (2) init rewrite engine with requested uri /mexico2/public/gateway.sf 10.1.1.163 – – [26/Aug/2013:14:10:44 –0400] [publisher.internal.test.hnw.com/sid#2ad8c96bc310][rid#2ad8bde6fae0/initial] (3) applying pattern '.*' to uri '/mexico2/public/gateway.sf' 10.1.1.163 – – [26/Aug/2013:14:10:44 –0400] [publisher.internal.test.hnw.com/sid#2ad8c96bc310][rid#2ad8bde6fae0/initial] […]
我们已经发现了gitlab,我想将它集成到我们的全局身份validation过程中,该过程依赖于Apache HTTP_REMOTE_USER环境variables。 我已经看到了很less的文件,所以我正在拼命寻找任何帮助如何做到这一点。 我想从gitlab应用程序检索HTTP_REMOTE_USERvariables,并使用它来validation我的用户。 我试图使用omniauth和omniauth-ldap,但是这只会返回在我的服务器中的错误500,似乎有点矫枉过正只能检索Apache HTTP_REMOTE_USERvariables。 我所寻找的是如果这样一个特征简单存在,或者如果我走向一个错误的方向; 如果有人有一些链接到它的文档! 非常感谢 非常感谢您的回答! 我已经在Apacheconfiguration文件中添加了RequestHeader(我使用的是您的apache作为独angular兽反向代理而不是nginx,并且需要将HTTP_REMOTE_USER转发到apache头文件中的独angular兽)。 然后,我已经在这里使用可用的补丁。 与你不同,我不使用ldap用户名/密码authentication,而是使用ldap进行自动化的Kerberosauthentication。 当我到达gitlab网页时,我可以在日志中看到我的授权已被授予,而gitlab从ldap中检索我的用户属性(电子邮件地址)。 它甚至创build我的帐户(根据/home/git/gitlab/config/gitlab.yml文件中的allow_single_sign_on:true)。 但是,它会显示错误500,并显示日志消息“错误堆栈太深”。 然后,我更改了文件vendor / bundle / ruby / 2.0.0 / activesupport-3.2.13 / lib / active_support / callbacks.rb,将其放在一个虚拟文件上(第413行) def __reset_runner(symbol) f = File::open('/tmp/blah', 'a') f.write(caller(1,10)) f.close() 然后我看到它在几个函数上recursion(函数在无限循环中互相调用)。 (这是/ home / git / gitlab中的一段时间;第一行在最后一行之后重复): vendor/bundle/ruby/2.0.0/gems/activesupport-3.2.13/lib/active_support/callbacks.rb:436:in `block in __update_callbacks' vendor/bundle/ruby/2.0.0/gems/activesupport-3.2.13/lib/active_support/callbacks.rb:433:in `each' vendor/bundle/ruby/2.0.0/gems/activesupport-3.2.13/lib/active_support/callbacks.rb:433:in `__update_callbacks' vendor/bundle/ruby/2.0.0/gems/activesupport-3.2.13/lib/active_support/callbacks.rb:502:in […]
CentOs 6 64bit运行apache 2.2.15-29.el6.centos。 当我尝试停止/启动或重新启动httpd时,出现错误,说明它失败了。 错误日志的尾部在下面。 我还注意到,即使在主要的conf文件中configuration了httpd.pid文件,它也不会被创build。 如果我将selinux设置为宽容,那么它工作得很好。 我不想在禁用selinux的情况下运行它。 如果我删除SSL_Mutex文件,它将启动。 HTTPD运行良好,直到我试图添加sslconfiguration。 我将ssl.conf文件从工作服务器复制到conf.d文件夹中。 我也复制了一个sslcert文件夹到conf文件夹。 它包含证书,密钥,csr和密码文件。 我认为这个问题与sslcert文件夹的selinux上下文有关,但我不确定如何解决这个问题。 执行restorecon -R sslcert之后,下面是sslcert文件夹的安全上下文 ls -Z -rw-r–r–. root root system_u:object_r:httpd_config_t:s0 httpd.conf -rw-r–r–. root root system_u:object_r:httpd_config_t:s0 magic **drwxr-xr-x. root root system_u:object_r:httpd_config_t:s0 sslcert** tail -f /var/log/httpd/error_log [Thu Oct 17 13:33:19 2013] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec) [Thu Oct 17 13:33:20 2013] [notice] […]
我使用.htaccess,基本身份validation和相应的密码文件来保护我的networking空间。 托pipe是Linux / Apache。 我想支持用法语口音(即不是ASCII)的用户名。 是否支持非ASCII用户名? 密码文件应该使用什么编码(UTF8,Latin-1,…)?
系统:Ubuntu 13.10 昨天我升级了svn到1.8.5 [wandisco]后,我无法启动Apache2。 我得到的错误 $sudo service apache2 start * Starting web server apache2 * * The apache2 configtest failed. Output of config test was: apache2: Syntax error on line 142 of /etc/apache2/apache2.conf: Syntax error on line 2 of /etc/apache2/mods-enabled/authz_svn.load: Cannot load /usr/lib/apache2/modules/mod_authz_svn.so into server: libsvn_repos-1.so.1: cannot open shared object file: No such file or […]