Articles of Web服务器

保护Apache和Nginx免受慢速读/写和类似攻击?

有很多文章解释攻击networking服务器(通用或特定)的许多方法,甚至列出了减轻这种攻击的一般规则,例如: 不要接受广告窗口大小不正常的连接 删除发送请求超过X秒的连接 当客户端由于完整的接收窗口而不能接受数据时,在30秒后发送RST或FIN 限制来自同一IP的连接数量 删除多个X重复标题(如Range ) 等等… 是否准备好使用,在特定于web服务器(我们使用Apache和Nginx)或全系统(Linux)的prodconfiguration示例上进行testing,这些示例涵盖了大多数常见攻击?

build议为Apache / MySQL设置

我有一个专用的服务器,有1GB内存服务于一些WordPress站点,但是当执行一些testing时(ab:apache benmark,-n 100 -c 10),服务器开始交换,然后就像是死去。 .. 所以,我的问题是,如何调整Apache和MySQL为此目的? 我在php5中使用Apache的mpm_worker 任何关于调整apache.conf和my.cnf文件的build议? 编辑:我试图收集更多的数据发布在这里,但作为我的服务器继续死于交换,我会发布whatevery我现在: apache2.conf <IfModule mpm_worker_module> StartServers 2 MinSpareThreads 20 MaxSpareThreads 50 ThreadLimit 64 ThreadsPerChild 25 MaxClients 75 MaxRequestsPerChild 0 </IfModule> my.cnf(在[mysqld]中) key_buffer_size = 32M max_allowed_packet = 16M thread_stack = 192K thread_cache_size = 8 join_buffer_size = 128K myisam-recover = BACKUP max_connections = 120 table_cache = 128 max_heap_table_size = […]

Webservice随机丢弃连接 – 可能是由于防火墙的非事件数据?

我有一个托pipe的Web应用程序,它从我们办公室的REST webservice请求数据。 每个页面都会调用一个(或多个)web服务,这些服务从我们的主机通过我们的防火墙(WatchGuard Firebox)到我们办公室的服务器。 突然之间,应用程序急剧放缓。 我们已经确定,当外部呼叫时,networking服务是随机超时的(当在办公室networking内呼叫时,这是很好的)。 我很确定这是我们的连接,这是放弃Web服务调用,所以我写了一个快速的PHP /curl脚本调用Web服务在很多迭代,并显示各种时间。 下面是一个输出示例,显示失败和成功的呼叫(5秒超时): http_code namelookup_time connect_time pretransfer_time starttransfer_time total_time 1 0 0.000096 0.0342 0.0000 0.0000 0.0342 2 200 0.000052 0.0332 0.1327 0.1751 0.1752 根据上面的迭代#1,失败的请求似乎在connect和pretransfer之间失败。 我不确定这是否显示连接成功通过防火墙,或者防火墙是否仍然会导致问题? 我们的防火墙正在显示一系列相关访问规则的nondata event日志消息。 我们的IT团队告诉我这些都是例行公事,尽pipe我在Google上没有提到这些。 我不确定这是否适合连接和预转移之间。 在使用webservice服务器(通过内部testing)和live webapp(通过在不同的外部服务器上testing不同的代码)之后,我留下了怀疑到办公室的连接。firebox非数据事件是否会导致连接和预转移之间的问题?

Tomcat6服务器上的JAX-WS客户端拒绝了权限

我有一个使用wsimport生成的Web服务存根的java客户端的一个奇怪的行为。 客户说某事 Got Permission denied: connect while opening stream from http://dev:8080/LicenseServer/services/ServerImpl?wsdl 但是我可以在我的浏览器中打开URL,wsdl显示正确。 此外,我可以从我的浏览器控制Soap11Binding / HttpSoap11Endpoint。 提示可能是主机名“dev”由C:\ Windows \ System32 \ driver \ etc \ hostsparsing。 在与服务器相同的networking中运行java-client并不困难。 也许存根的初始化过程依赖于主机名的“真正的”DNSparsing?

IIS上的多个站点运行完全相同的代码和configuration – 其中一些将w3wp.exe设置为100%,一些没问题

一切正常前几天工作。 我认为一切工作都很好,直到我试图创build这个EC2实例的AMI。 看来 ,创build尝试导致服务器变得无法响应,所以我停止了这个过程,并重新启动服务器。 它是Windows Server 2008 R2,运行6个ASP站点和6个PHP站点。 所有PHP站点相同,所有的ASP站点相同。 在一些网站,他们加载速度快,没​​有发生。 他们中的一些人把W3WP的100%,他们只是不加载,最终抛出500错误,随后刷新说,该网站是不可用的。 (有时 – 我只是再试一次,没有不可用的错误,但服务器超时后仍然有500) 这一切对我来说都没有意义,它们应该都是一样的,它们不应该受到任何影响。 任何想法都会很棒!

如何用php5-cgi优化apache2

我有一个debian与apache2和php5-cgi运行挤压。 请参阅我的munin中的以下统计数据: http : //imageshack.us/photo/my-images/545/multipscharts.png/ 我从昨天开始运行这些每个进程的统计信息,我很惊讶地发现php这样的密集使用以及apache进程的高内存使用。 更多数据:avg(1day)apache2:30个繁忙的服务器,9个空闲Avg apache访问:340 /分钟 现在,我想知道如何减lessphp的CPU使用率和/或Apache的内存使用量。 请注意,我已经通过nginx服务器几乎所有的静态文件(这不是在这些统计数据)。 另外,我显然正在使用mpm_prefork_module。 我的apache2的一般设置如下所示: LockFile ${APACHE_LOCK_DIR}/accept.lock PidFile ${APACHE_PID_FILE} Timeout 300 KeepAlive On MaxKeepAliveRequests 100 KeepAliveTimeout 15 <IfModule mpm_prefork_module> StartServers 5 MinSpareServers 5 MaxSpareServers 10 MaxClients 150 MaxRequestsPerChild 0 </IfModule> HostnameLookups Off Include mods-enabled/*.load Include mods-enabled/*.conf Include conf.d/ Include sites-enabled/ GracefulShutDownTimeout 3 AddOutputFilter INCLUDES .shtml AddType text/html […]

安装/ home作为noexec

使用noexec安装/home是否真的能增加安全性? 它所做的只是禁用二进制权利? 这意味着其他脚本仍然可以将shell代码运行并执行到服务中。 运行共享主机。 挂载/tmp , /var/tmp和/var/shm noexec,nodev和所有提供安全性?

nginx不尊重“root”指令

我正在用Ubuntu运行一个EC2实例,并试图为两个域名安装虚拟服务器,但没有运气,也找不到原因。 我的web文档位于/var/www/<domain> , www文件夹下的所有内容都属于www-data:www-data (目前只有两个index.htmls)。 我已经将站点configuration文件放在/etc/nginx/sites-available ,并将它们链接到sites-enabled了sites-enabled 。 网站configuration文件和符号链接也属于www-data:www-data以防万一。 我还将我的域名与服务器的公共IP地址添加到/etc/hosts ,当然在EC2控制台中启用了端口80。 这里是/etc/nginx/nginx.conf : user www-data www-data; worker_processes 4; pid /var/run/nginx.pid; events { worker_connections 16; } http { sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; include /etc/nginx/mime.types; default_type application/octet-stream; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log debug; gzip on; gzip_disable "msie6"; include /etc/nginx/sites-enabled/*; } 而其中一个网站的configuration(另一个不同的域名): server […]

如何使apache2听localhost和局域网的电脑

我完全搞错了阿帕奇听的东西。 我现在的问题是。 当我让它听 NameVirtualHost *:80 Listen 127.0.0.1:80 Listen 192.168.1.23:80 它可以通过networking访问吗? 因为我的互联网连接到192.168.1.23:80

SSH通过其他2台服务器访问远程服务器

我想继续检查位于远程Web服务器上的日志文件(名为myapp.log)并保持向我显示此文件的最新内容(使用linux命令tail -f myapp.log )。 远程Web服务器的名称是服务 这个远程networking服务器只能通过其他两台远程服务器(名为Alpha & Beta )访问。 所以,我必须build立几个SSH连接才能访问远程服务服务器。 如下所示: 步骤1, SSH到Alpha服务器: ssh [email protected] (需要密码) (现在,我在Alpha服务器上) 步骤2,通过Alpha将 SSH连接到Beta服务器: ssh beta.server.org (需要密码) (现在,我在testing版 ) 步骤3,通过Beta版 SSH连接到服务器: sudo ssh service (需要密码) (现在,我在服务器上) 第4步,打开我的服务器日志文件: tail -f myapp.log 每次我都要在terminal上执行上面的命令来访问myapp.log文件。 最无聊的部分是连接只保持20分钟,然后我必须再次运行这些命令来访问myapp.log文件。 有没有办法让我的连接始终保持活跃?我可以每隔20分钟就能看到myapp.log的内容,而不必每隔20分钟就build立一次SSH连接。 我需要这两个Mac机器和Windows 7机器。 有什么build议么?