Articles of apache 2.2

nginx:从if()返回引用匹配,并在同一时间重写

我需要将以下规则从apache转换为nginx: RewriteCond %{QUERY_STRING} id=([^&]*) [NC,OR] RewriteCond %{QUERY_STRING} daily=([^&]*) [NC] RewriteCond %{REQUEST_URI} !mobSpecCycle [NC] RewriteCond %{REQUEST_URI} !mobSpecTheme [NC] RewriteRule ^rss\/mobSpec([^\/]+)/?$ /rss/mobSpec$1/mobSpec$1_%1.html [QSA,NC,L] 例如重写 / RSS / mobSpecArticle /?ID = 26422 成 /rss/mobSpecArticle/mobSpecArticle_26422.html 我开始如下 if ($args ~ id=([^&]*)|daily=([^&]*)) { rewrite ^/rss\/mobSpec([^\/]+)/?$ /rss/mobSpec$1/mobSpec$1_$2.html last; } 但是我不知道如何在重写规则中取消id =([^&] *)? 我把$ 2放在那里,但它不工作… apache具有%1从RewriteCond反向引用匹配。 如何在后面的重写中从nginx的if()返回引用匹配? 任何想法如何可以添加最后两个条件? RewriteCond %{REQUEST_URI} !mobSpecCycle [NC] RewriteCond […]

在RHEL 7上使用apache 2.4可以实现chrootfunction吗? chroot有意义吗?

我做了我的研究,发现人们不确定chroot是否有助于安全。 我有这些问题没有答案。 如果是的话,chroot是否值得呢?可以在rhel 7上使用httpd 2.4吗?请分享任何资源或参考。 如果不是什么可以成为保护Web服务器的等效方法? 提前致谢。

nginx将不会执行PHP代码,当redirect像SEO一样的URL时

与其他与nginx不执行PHP文件相关的问题不同,问题出在我使用SEO而不是PHP脚本时,然后redirect到PHP脚本,而不是执行代码,它将脚本作为纯文本发送给浏览器。 基本上我想要的是每个请求发送到没有实际文件的HTTP服务器,index.php脚本将被执行,并且其输出返回给浏览器。 但是,发生什么事是我得到的index.php内的代码,而不是。 这是redirect完成的configuration文件的一部分。 它实际上是从以前的Apache的.htaccess文件中翻译过来的: location / { if (!-e $request_filename){ rewrite ^(.*)$ /index.php break; } } 这些是PHP相关的指令,实际上这些指令在configuration文件中的前一个之前: location ~ \.php$ { try_files /dd05cf208ebd3d4559f3af75016a1e3d.htm @php; } location @php { try_files $uri =404; include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/lib/php7.0-fpm/web4.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_intercept_errors on; } 我已经使用了mod_php几十年的Apache,等价的指令刚开始工作,但我是新的Nginx,我不知道从哪里开始debugging。

SSL在Apache上工作,但不在Nginx上

在Apache上的SSLconfiguration SSLEngine On SSLCertificateFile /etc/ssl/domain.crt SSLCertificateKeyFile /etc/ssl/domain.key 这工作得很好 Nginx的: ssl on; ssl_certificate /etc/ssl/domain.crt; ssl_certificate_key /etc/ssl/domain.key; curl给出: * SSL certificate problem: Invalid certificate chain * Curl_http_done: called premature == 1 * Closing connection 0 curl: (60) SSL certificate problem: Invalid certificate chain 铬说: net::ERR_CERT_DATE_INVALID 任何错误的我的nginx conf?

两个Alogging,而我切换服务器?

我疯狂地从dreamhost和他们可怕的产品运行 – 但是这给我留下了一个有趣的情况: 1网站是通过他们的webpanel“完全托pipe”的 – 这个自动创build“A”logging到他们的服务器 – 这指向正确的文件夹,网页文件在 2新网站已经过testing并准备好接收networkingstream量 3单击“仅限dns”将删除A并允许我将其指向新logging,但也会删除Web文件夹位置 4因此,当客户端击中旧的Alogging时,他们指向一个愚蠢的机器人错误消息,该网站已经失踪,而不是渲染旧的网站。 5我已经要求他们修改apache文件,修改Alogging,为我做一些事情,他们可以不在乎,告诉我有一个“美好的一天”! 我能做些什么来从这个可怕的公司有一个更好的过渡? 我可以提供两个logging,然后在一天之内抽出一个? 我是否需要将名称服务器移动到新的服务器上,并尝试从不同的angular度解决这个问题?

Apache只允许授权用户访问文件

我有一个现有的网站,需要链接到我们的networking服务器上的PDF文件。 问题是,只有通过login到站点进行身份validation的用户才能够查看该文件。 我已经尝试了所有我能想到的,我只是不知道如何configurationApache来做我想做的事情。 要么它允许每个人访问该文件,要么没有人访问。 如何设置configuration,使得只有来自foo.bar.com的请求被授权才能从blah.baz.com获取文件? 更新在我的我的网站的configuration文件我现在有 <Directory "/usr/local/web/static/foo"> Order allow,deny Deny from all Allow from foo.bar.com </Directory> 当我在铬控制台检查失败的请求时,我可以看到它包含 Host:blah.baz.com Referer:http://foo.bar.com/

为什么我无法通过Puppet Apache模块将Alias添加到我的Vhost中?

这是我清单中的片段: apache::vhost { 'default-http': port => 80, serveraliases => ['example.test.com', 'example2.test.com',], docroot => '/var/www/html', rewrites => [ { comment => 'Bounce to https', rewrite_cond => ['"%{SERVER_PROTOCOL}" "!^HTTP$"'], rewrite_rule => ['"^/?(.*)" "https://%{HTTP_HOST}/$1" [R=permanent,L]'], } ], } 正如你在下面的configuration中看到的,别名无处可寻: # Vhost template in module puppetlabs-apache # Managed by Puppet # ************************************ <VirtualHost *:80> ServerName default-http ## Vhost docroot […]

如何防止来自前端的“GET斜杠”http DDoS攻击

昨天我们运行Apache2.2的networking服务器从僵尸networking获得了DDoSed,造成九(9)小时的停机时间 。 攻击者只是创build了太多的“GET /”连接,导致我们的服务器到达CPU负载100,最终拒绝进一步的连接。 在这些web服务器的前面,有一个带有haproxy的pfsense机器,负载均衡连接到web服务器。 我们试图阻止来自pfsense的ips,但是这些连接仍然在通过。 当DDoS已经停止,当我们意识到由于已经build立的连接仍然通过, 当我们创build规则时,我们没有指定它也应该适用于已build立的连接。 我们还不知道,自从附件完成后,这样做是否会奏效。 我们在Apache上实现了modsecure,但是由于X-Forwarded-For的原因,我们意识到它没有像预期的那样工作。 Modsecure正确地识别了IPS,但是当遇到阻塞的时候,它拒绝了负载均衡器的IP(需要安装mod_remoteip)。 当我们在web服务器上使用mod_evase时,攻击完成了。 我在DDoS对策上做了一些功课,但是我仍然有一些问题,我没有设法回答自己。 1)你可以阻止来自pfsense /前端在层4级的“GET /”请求,所以连接不会到达后端? 我看到有可能限制一个IP的连接,但是当攻击者创build一个单独的连接(保持活动状态),然后通过这个连接发送所有的“GET”请求时,这会有帮助吗? 2)阻止对前端(比如防火墙 – 负载均衡)或后端的攻击是否更好?

如何阻止Apache2logging某些警告消息?

在我的Apache ErrorLog文件上,我看到这个警告信息多次: [Wed Aug 23 17:27:25.146025 2017] [:error] [pid 14989] [client 66.249.76.54:44935] PHP Warning: Illegal offset type in isset or empty in /var/www/html/blog/wp-content/plugins/ilab-media-tools/classes/tools/s3/ilab-media-s3-tool.php on line 1012 我试图在Github上寻求作者的帮助(与其他许多人一样),但没有任何帮助。 Apache每分钟打印一次这个警告, 有没有办法过滤这个烦人的消息警告?

Apache服务器冻结 – 内存快速填充

我有一个运行PHP5.5.x / MySql5.5.x(内存16GB)的centos上运行的应用程序,现在的问题是,在某个随机时间点,apache / mysql进程无响应。 有些东西仍然附加在内存中,然后caching(交换)在应用程序崩溃后填满非常快。 有没有人遇到类似的问题,或者如何开始debugging,看看它是什么耗费资源,为什么他们不清理? 我怎样才能开始debugging? 任何build议或暗示将受到欢迎。 以下是my.cnf [mysqld] datadir=/usr/mysql socket=/var/lib/mysql/mysql.sock tmpdir=/usr/mysql-tmp user=mysql #innodb_buffer_pool_size=5368709120 innodb_buffer_pool_size=5G innodb_log_file_size=1G table_open_cache = 5000 thread_cache_size = 16384 sort_buffer_size = 2294967295 join_buffer_size = 2294967295 query_cache_limit = 2294967295 read_buffer_size = 2147479552 query_cache_size = 4294967295 key_buffer_size = 2294967295 在httpd.conf # # This is the main Apache server configuration file. It contains […]