Articles of apache 2.2

Apache和长时间的servlet

我有一个webapp部署在4个jboss实例,并有一个Apache 2.2.15(mod_proxy,libs:DAV / 2 mod_ssl / 2.2.15 OpenSSL / 1.0.1e-fips mod_jk / 1.2.31)webserver做负载均衡。 应用程序使用粘滞会话,有时长时间运行的请求会将请求负载平衡器成员置于错误状态,原因是请求超时,并且将此成员上的会话所产生的所有其他请求redirect到另一个jboss,并且由于没有会话用户在另一台服务器上再次出现在login屏幕上。 从我一直在阅读它注意到,如果我将BalancerMember上的重试参数更改为0,这不会再发生。 这是正确的,还是我需要改变另一件事? 收听[IP]:[porta_http] ServerName app.caixa CustomLog /logs/apache2/app/app.caixa-access.log combined ErrorLog /logs/apache2/app/app.caixa-error.log RedirectMatch ^/$ /app/ ProxyPass /app/ balancer://app/app/ ProxyPassReverse /app/ balancer://app/app/ ProxyPass /app_web/ balancer://app/app_web/ ProxyPassReverse /app/ balancer://app/app_web/ Header add Set-Cookie "ROUTEIDapp=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED <Proxy balancer://app> BalancerMember ajp://[IP_ServAPP]:[porta_AJP] route=node1 retry=180 connectiontimeout=300000ms ping=500ms lbset=0 BalancerMember […]

重新启动服务器后,在EC2实例上完成的更改生效

我正在使用codeigniter框架构build的网站上工作。 我从上个月开始使用亚马逊EC2实例。 今天,在做一些工作时,我发现在PHP文件中所做的更改并不反映在现场。 首先,我认为这一定是SVN的一个问题,当我提交或迟到时,文件可能不在服务器上。 所以我用SSH访问EC2实例并用vi编辑器检查一些文件。 变化实际上在那里。 我非常困惑,所以在函数的开头处放一个echo“Test”和die()。 它不起作用。 然后我尝试在这个控制器的构造函数中的回声和死亡语句。 它也没有工作。 然后我尝试另一个控制器和相同的结果。 我甚至在PHP代码之间放置了一段垃圾文本,以产生语法错误,但没有任何反应。 当我在浏览器中打开网站只有1-2小时的function正在工作。 没有最近的变化反映出来。 最后,我从亚马逊控制台重启实例,瞧! 它的工作,所有的变化现在反映在现场。 我想知道这可能是什么原因造成的,所以在未来对我来说不会有什么问题。

cURL到我自己的服务器崩溃的Apache服务器

我在Ubuntu 14.04 LTS上运行apache web sever。 我发现自己在一个服务器上从一个php脚本请求另一个服务器上另一个php脚本的数据的情况。 两台服务器都在我的控制之下。 input我请求的脚本的url工作正常。 但是,当使用cURL请求时,服务器崩溃了。 不是请求数据的服务器,而是与curl联系的服务器。 有没有一个场景的一个cURL请求处理不同于从浏览器的常规请求? 我似乎无法在我的日志文件中find任何有用的东西。 我想我可以做一个解决方法,但是使用curl联系我的服务器的任何人都会崩溃吗? 下面我粘贴了我的curl脚本。 $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET'); curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.125 Safari/537.36'); curl_setopt($ch, CURLOPT_PORT, 80); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($ch, CURLOPT_TIMEOUT, 5); $output = curl_exec($ch); curl_close($ch);

当PHP内存限制设置为128mb时,“允许67108864个字节的内存大小已耗尽”

原谅我,如果这是错误的地方; 不确定是否在SO或这里张贴这个。 我从脚本中得到了上述错误,这意味着我已经达到了脚本内存64MB的限制。 问题是,我有php.ini中的memory_limit设置为128M; 并根据phpinfo()这是内存限制确实设置。 那么为什么我得到一个错误,意味着当我将限制设置为128m时,我已经达到64m的内存限制? 服务器configuration: Redhat Linux Enterprise 6.3 PHP 5.3.3 Apache 2.2.15 8GB的RAM

jsessionid在apache和tomcat之间被丢弃

我们在Ubuntu 12.04.1 LTS上使用Apache 2.2.22和tomcat 7.0.54。 使用Mod代理,Apache和Tomcat在同一个AWS实例上运行。 我们已经观察到,对于相同的请求JSESSIONID可以在Apache访问日志中看到,但是tomcat将其logging为“JSESSIONID = – ”,这导致用户被发送到login页面。 有谁知道什么可能导致这种行为? 这种情况很less发生,但并不罕见,所有这些情况一起忽略。 TIA,Sameer

使用mod_rewriteredirect.htaccess的规则

我有一个PHP脚本根据查询从数据库dynamic生成内容。 用户可以从文本框中search用户名“mark”。 这些内容由PHP在www.domain.com/?username=mark提供,不过我希望用户看到提供的URL为www.domain.com/username/mark.html。 同样,用户可能会search一个configuration文件(整数)。 该内容在www.domain.com/?profile=2上生成。 我希望用户看到提供的URL为www.domain.com/profile/2.html。 这是可行的吗? 这是我的.htaccess文件: RewriteEngine On RewriteRule ^username/([^/]*)\.html$ /?username=$1 [L] RewriteRule ^realname/([^/]*)\.html$ /?realname=$1 [L] RewriteRule ^profile/([^/]*)\.html$ /?profile=$1 [L] Mod_rewrite已启用,但该文件似乎不工作。

configurationApache使用密码和盐使用SQL Server身份validation

我有一个Web应用程序,我想要使用Apache身份validation保护。 我发现它使用sha1 +盐来存储密码。 由于auth_mysql_module已被弃用,我尝试使用authn_dbd_module 。 目前我正在运行debian wheezy。 这里是networking应用程序如何创build密码哈希值: <?php sha1($pw.$salt); ?> 尝试使用PHP: sha1('password'.'salt') c88e9c67041a74e0357befdff93f87dde0904214 我可以使用mysql重现哈希: SELECT SHA1(CONCAT(@pw, @salt)); 尝试使用mysql: mysql> SELECT SHA1(CONCAT('password', 'salt')); +——————————————+ | SHA1(CONCAT('password', 'salt')) | +——————————————+ | c88e9c67041a74e0357befdff93f87dde0904214 | +——————————————+ 我的apache site.conf : DBDriver mysql DBDParams "host=localhost user=<db_user> pass=<db_pass> dbname=<db_name>" <Directory /var/www/htdocs/> Options -Indexes Order allow,deny Allow from all AuthName "Please enter […]

代理Apache页面到应用程序

我有一个应用程序运行localhost:2000而我的网站是在本地主机上。 我想指出目录/projects/projectName – > localhost:2000 。 但是,当应用程序发出/发送请求时会出现问题。 例如,如果在/run时发出GET请求,则请求将GET URL显示为https://localhost/run并返回一个404.这里的两个问题是: 它redirect到端口443; 和 港口2000现在应要求丢失。 更新:我试图closuresSSL,但端口2000仍然在请求丢失。 理想情况下,我希望这与SSL的工作。 这两个问题可能是一回事,但我不确定。 要看看它应该如何工作, http://stevenshi.me:2000是工作的应用程序。 正如你所看到的,GET和POST请求转到上面的url + /foo 。 这是我目前的Apacheconfiguration文件 <VirtualHost *:80> RewriteEngine on RewriteCond %{SERVER_PORT} !^443$ RewriteRule ^/(.*) https://%{HTTP_HOST}/$1 [NC,R=301,L] ServerAdmin [email protected] ServerName stevenshi.me ServerAlias www.stevenshi.me DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> <IfModule mod_ssl.c> <VirtualHost *:443> ServerAdmin [email protected] ServerName stevenshi.me:443 […]

Apache 2.2'a2dissite默认'不删除对其文档根目录的访问

我刚刚在Raspian / Debian上安装了Apache 2.2的全新安装,以便通过SSL托pipe一个站点。 所以,在任何事情之前,我使用a2dissite default从/var/www/删除80上的默认站点。 然后,我将我的新网站添加到/var/www/mysite并为此网站创build了一个完全不同的configuration文件,使用443上的SSL,并使用a2ensite启用它。 然而,一个sudo service apache2 reload ,虽然我的新网站按照预期在端口443上工作,我仍然能够访问端口80上的“默认”网站,作为新的网站是默认目录手段的子文件夹新的站点可在http:// domain / mysite上find 我找不到默认站点/目录configuration以外的任何地方,而不是默认configuration文件,这不会出现在sites-enabled (只有新的站点configuration)。 (如果我编辑默认configuration,但将其保留在站点中 – 可用,则更改不会被提取,这表明不在apache发现此configuration的位置。) 那么,apache在80端口上的/var/www目录是什么? 它是一个硬编码的目录,应该没有覆盖它? 为了解决这个问题,我不得不重新启用默认站点,但是将目录更改为指向新站点之外的某处,以避免提供非SSL访问。

Apache2无法安装

当我运行apt-get install apache2 我得到一些错误: Reading package lists… Done Building dependency tree Reading state information… Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The […]