如何拒绝从任何IP访问页面,除了从一个IP地址,但有这个授权的IP地址在Apache的基本authentication? 谢谢
我们有一个运行Ubuntu 12.04的中型EC2实例 ,通过Apache为十几个小型PHP Web应用程序提供服务。 大约每隔一天,服务器就变得无响应,重新启动实例需要恢复function。 在此期间,无法通过HTTP或SSH访问服务器。 每一次,最后一次logging的Apache请求都是给一个4MB的PDF文档的PHP应用程序。 用户代理始终将客户端标识为iPad(特别是Mozilla/5.0 (iPad; CPU OS 6_1_3 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10B329 Safari/8536.25 ) IP地址,因此可能是同一个用户。 PHP应用程序是一个传统的应用程序,并在将文件的内容从磁盘回传给客户端之前检查一些权限。 我们无法自己重现这个问题,无论是使用iPad还是通过其他方式访问文件。 我们已经尝试了一些监控解决scheme来尝试更好地了解服务器closures时发生的情况,但是没有一个显示出任何系统资源问题。 我的问题是我们可以使用哪些策略来尝试排除故障并希望解决此问题?
我确信这已经被问过,但没有一个答案似乎为我工作。 我有一个域domain.com 。 我有一个子域sub.domain.com在相同的IP。 在这种情况下, sub.domain.com是指向domain.com的CNAMElogging。 我有这个服务器上运行的Apache。 我在sites-available / default中有一个mod_rewrite规则,将所有非ssl连接redirect到ssl: RewriteEngine On RewriteCond %{HTTPS} off RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} 到目前为止,这工作正常。 如果我连接到http://domain.com/foo我使用ssl指向https://domain.com/foo 。 但是,现在我有另一个端口上运行的服务器上运行的另一个Web服务器,我想通过sub.domain.com访问。 我创build了一个将sub.domain.com指向domain.com的CNAMElogging,因此它们都具有相同的IP地址。 我可以做一个SSL连接到https://domain.com:port第二台服务器,它工作正常。 据我可以告诉mod_rewrite上面的东西不应该导致任何问题,因为如果我连接到http://sub.domain.com我应该首先被redirect到https://sub.domain.com ,然后应该得到通过代理到第二个networking服务器。 每当我尝试连接到sub.domain.com或domain.com时,我所遵循的每个博客文章教程和serverfault答案都留下了一些configuration,这些configuration会将所有内容发送到domain.com或给我ssl握手错误。 任何人都可以告诉我这样做的正确方法,并解释为什么它的作品?
我看了一下Canonical Topics ServerFault,可悲的是我之前的“Apache vHost”就是没有回答的问题。 我发现这有点令人惊讶,因为有很多人只是问这个问题。 无论如何,我的问题不是关于“如何”,而是关于在虚拟主机configuration文件中使用的“最佳实践”是什么? 我有以下的虚拟主机: <VirtualHost *:80> ServerName example.com DocumentRoot /home/webmaster/examplesite.com/htdocs ErrorLog /home/webmaster/examplesite.com/logfiles/error.log CustomLog /home/webmaster/examplesite.com/logfiles/access.log combined </VirtualHost> 它做的工作,并得到的东西工作,但是我想知道,如果我能改善它。 特别是我想确保以下问题得到解决: 我的网站有多安全? 我想有一个“上传”文件夹,用户可以发布图像。 我需要添加一些东西到vHost文件? 上述设置是否优化了我的网站,还是我可以进一步优化? 还有什么我可能错过了?
我有一个OS X服务器10.8 [与服务器应用程序]。 我已经启用了网站服务,我已经添加了/Volumes/dev1/http的path作为我的服务器网站的根目录。 我在/private/etc/apache2/httpd.conf编辑了文件并添加了以下行: Include /Volumes/dev1/http/.virtual-hosts /Volumes/dev1/http/.virtual-hosts的文件如下所示: listen 80 listen 443 servername "site" serveradmin "[email protected]" namevirtualhost *:80 namevirtualhost *:443 directoryindex .index.php index.html index.php options -indexes -multiviews +followsymlinks <directory /Volumes/dev1/http> allowoverride all </directory> <virtualhost *:80 *:443> servername site.com serveralias www.site.com documentroot "/Volumes/dev1/http/com-site" rewriteengine on </virtualhost> 服务器完全忽略了这个文件,即使我把一些随机的字符放到apachectl -t里面 – 它说那个语法不行。 我甚至尝试过在这个文件中只有directoryindex .index.php ,它仍然没有效果 – 它返回403禁止,甚至认为.index.php存在。 这个确切的configuration就像一个老式的10.6服务器的魅力。 […]
这是我的虚拟主机: <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName policy.domain.com ServerAlias www.policy.domain.com DocumentRoot /policy ErrorLog /policy/error.log CustomLog /policy/custom.log combined <Directory /policy/> Options +IncludesNOEXEC AllowOverride None Order allow,deny allow from all # redirect non www to www RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^(.*)$ $1.php [L] RewriteCond %{HTTP_HOST} !^www\. [NC] RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] </Directory> </VirtualHost> […]
让我通过例子来解释… 文件: /var/www/example.com/public/wp-content/cache/minify/.htaccess <IfModule mod_rewrite.c> # THIS WORKS… RewriteBase /wp-content/cache/minify/ RewriteRule /w3tc_rewrite_test$ ../../plugins/w3-total-cache/pub/minify.php?w3tc_rewrite_test=1 [L] RewriteCond %{REQUEST_FILENAME}%{ENV:APPEND_EXT} -f RewriteRule (.*) $1%{ENV:APPEND_EXT} [L] RewriteRule ^(.+/[X]+\.css)$ ../../plugins/w3-total-cache/pub/minify.php?test_file=$1 [L] RewriteRule ^(.+\.(css|js))$ ../../plugins/w3-total-cache/pub/minify.php?file=$1 [L] </IfModule> 文件: /etc/apache2/httpd.conf <Directory /var/www/example.com/public> AllowOverride None Options -MultiViews […] <IfModule mod_rewrite.c> Options +FollowSymlinks # Options +SymLinksIfOwnerMatch RewriteEngine On # RewriteBase / </IfModule> […] <IfModule mod_rewrite.c> […]
我们的客户有规则集2.0.5的ModSecurity 2.0,但他告诉我们在开发结束时的细节。 我需要审核所有的应用程序代码,并确保它不会影响ModSecurity。 (它已经) 我知道你不能在POST中提交重要的“内容”和“文档”,这会严重影响我们的应用程序。 鉴于ModSecurity的版本/规则集的数量,在哪里可以find我不能用于键$ _GET和$ _POST和/或禁止标题值的理解解释? 我在网站上find的文件太笼统了,或者我误解了它。 谢谢
您好我有一个服务器的主要问题,SSL完美工作当连接HTTPS:// …,我需要设置从httpredirect到https。 这是我的ssl.conf,Centos 6,有一个IP地址。 与SSLbuild立SSL证书。 宁可不使用.htaccess。 Listen 172.21.11.48:443 NameVirtualHost 172.21.11.48:443 LoadModule ssl_module modules/mod_ssl.so SSLEngine on SSLSessionCache shmcb:/var/cache/httpd/mod_ssl/ssl_scache(512000) SSLCertificateFile /etc/pki/tls/certs/aether.example.com.crt SSLCertificateKeyFile /etc/pki/tls/private/aether.example.com-2048.key SSLCACertificateFile /etc/pki/tls/certs/exampleca.crt <VirtualHost 172.21.11.48:443> SSLEngine on ServerAlias "webmail.example.com" DocumentRoot "/var/www/html/roundcubemail" SSLCertificateFile /etc/pki/tls/certs/aether.example.com.crt SSLCertificateKeyFile /etc/pki/tls/private/aether.example.com-2048.key SSLCACertificateFile /etc/pki/tls/certs/exampleca.crt </VirtualHost> <VirtualHost 172.21.11.48:443> SSLEngine on ServerAlias "cloud.example.com" DocumentRoot "/var/www/html/owncloud" SSLCertificateFile /etc/pki/tls/certs/aether.example.com.crt SSLCertificateKeyFile /etc/pki/tls/private/aether.example.com-2048.key SSLCACertificateFile /etc/pki/tls/certs/exampleca.crt </VirtualHost> 在http://webmail.example.com上连接时,出现“您的浏览器发送了此服务器无法理解的请求”的错误。原因:您正在向使用SSL的服务器端口说纯HTTP。 当我在端口80上添加另一个虚拟主机时,Apache无法启动。 […]
我正在寻找方法,以防止访问WordPress的pipe理文件夹“wp-admin”,但也需要Apache生成404错误(未find)的所有,但没有选定的IP。 我发现这篇文章返回404代码未经授权的尝试,并尝试重写解决scheme,但不适用于我。 所以我把所有的网站保存在/ usr / local / www / apache22 / data中,并尝试在httpd.conf(Apache2.2 FreeBSD 9.1)中使用这样的configuration。 <Directory "/usr/local/www/apache22/data"> RewriteEngine on RewriteCond %{REMOTE_ADDR} !=77.120.9.3 [OR] RewriteCond %{REMOTE_ADDR} !=77.120.9.5 RewriteRule ^wp-admin($|/) – [L,R=404] </Directory> 例如,网站wp-admin的位置是:/usr/local/www/apache22/data/doman.com/wp-admin