accept建立连接
From http://blog.csdn.net/russell_tao/article/details/9111769#comments
本文谈谈传统的TCP三次握手在服务端简单变化。首先看下面这张图可以简单的描述TCP/IP协议栈的结构。
From http://blog.csdn.net/russell_tao/article/details/9111769#comments
本文谈谈传统的TCP三次握手在服务端简单变化。首先看下面这张图可以简单的描述TCP/IP协议栈的结构。
来自“柳大的CSDN博客”:http://blog.csdn.net/poechant
Nginx 的 HttpUpstreamModule 提供对后端(backend)服务器的简单负载均衡。一个最简单的 upstream 写法如下:
upstream backend { server backend1.example.com; server backend2.example.com; server.backend3.example.com; } server { location / { proxy_pass http://backend; } }
From http://blog.meiu.cn/nginx-proxy_cache.html
在Nginx或者Tengine默认的cache都是按照一定的hash算法出来的,如果需要擦除某个域名下的全站cache,用purge只能通过遍历所有的url在实现,效率肯定是很低的。那么如果把cache按照域名存放那么清空起来就很快了。
修改 src/http/ngx_http_file_cache.c
在文件头声明函数部分加
location / { proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_connect_timeout 180; proxy_send_timeout 180; proxy_read_timeout 180; proxy_buffer_size 128k; proxy_buffers 4 128k; proxy_busy_buffers_size 128k; proxy_temp_file_write_size 128k; proxy_cache cache; proxy_cache_valid 200 304 1h; proxy_cache_valid 404 1m; proxy_cache_key $uri$is_args$args; add_header Nginx-Cache "$upstream_cache_status"; proxy_pass http://backend; }
location / { proxy_cache cache_one; proxy_cache_valid 200 304 1d; #Cache for 1Days proxy_cache_key $host$uri$is_args$args; proxy_redirect off; proxy_pass http://1.1.1.1; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_ignore_headers Cache-Control; proxy_hide_header Cache-Control; proxy_ignore_headers Expires; proxy_hide_header Expires; proxy_hide_header Set-Cookie; proxy_ignore_headers Set-Cookie; }
Nginx 设置变量
set $variable "value"; set指令对于域有要求,必须在 server 域内,要想设置全局变量可以用 map 实现。
map "value" $variable{ default "value"; }
这样就可以引用 $variable 变量了。
Nginx 日志格式可以自己定义,你想加个什么字符串之类的,比如在 access 日志前面加个 access 字符
串标记:
log_format access 'access $remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" $http_x_forwarded_for';
这些应用领域通常行业之间的竞争比较激烈,其中包括在线下无法名正言顺的灰色+暴利产业,导致竞争对手之间经常发动DDoS恶意攻击。但营销网站往往是单面加速,加上推广时效性很强,很难被彻底打击,于是一些自作聪明的黑客通过攻击网站的在线客服系统,导致网站无法跟访客沟通,不能交易,从而达到恶意攻击的目的。因此客服系统这个原本有助于网站营销的工具反而成了被攻击的主要对象,虽然伤得委屈,但也不得不面对挑战。
我们遭遇的DDoS攻击类型包括:延缓性的CC攻击和致命的大流量攻击。下面将对两种攻击方式的攻击特点、防御思路和我们用过的一些防御方案进行简单的介绍。
反向代理从传输上可以区分为同步模式和异步模式,apache的mod_proxy和squid都属于同步模式,nginx和lighttpd属于异步模式
同步模式是用户发起请求,请求立即被转到后端的服务器,于是在浏览器和后端服务器之间就建立了一个连接,在请求完成前这个连接是一直存在的。
而异步模式时,用户发起的请求会发送到nginx,nginx接收到所有的数据后在转发到后端的服务器,后端服务器处理完成后把数据返回给nginx,nginx在返回给用户。
由此可见如果用户发起的请求的数据比较大,或者用户端的网速比较慢,同步模式时后端服务器的连接数相对于异步模式会比较多,压力也比较大。
Nginx的cache比较适合处理大文件的,而squid的cache比较适合小文件的cache
nginx添加ctrl+F5强制刷新功能配置
## Ctrl+F5 Cache Purge if ($http_Cache_Control ~ "no-cache") { # set $http_Cache_Control 'max-age=604800'; rewrite ^(.*)$ /purge$1 last; }
在编译安装Nginx的时候加上了Purge模块,来清除缓存.
www.firefoxbug.net/index.html ==>> www.firefoxbug.net/purge/index.html就能清除.
但是之前配置过程中出现了404,但是缓存明明是存在的,就是Purge不了.后来更改Purge的配置就OK了
## Cache_proxy Purge location ~ /purge(/.*) { allow all; proxy_cache_purge cache_one $host$1$is_args$args; #proxy_cache_purge cache_one $host; error_page 405 =200 /purge$1; }
# wget http://ocdn.me/wp-content/down/ocdn_console_last.tar.gz # tar -zxvf ocdn_console_last.tar.gz # cd ocdn_console # ./install.sh
# wget http://ocdn.me/wp-content/down/ocdn_node_last.tar.gz # tar -zxvf ocdn_node_last.tar.gz # cd ocdn_node # ./install.sh
转载请注明住处:http://www.firefoxbug.com/?p=1508
对于/index.php/abc这种url,Apache和Lighttpd会按"index.php?abc"来解释,而nginx会认为是请求名
字是“index.php”的目录下的abc文件的内容。所以CI在nginx下不配置rewrite是无法运行的,而在Apache
和Lighttpd则正常。
wget http://awstats.sourceforge.net/files/awstats-7.0.tar.gz tar -zxvf awstats-7.0.tar.gz mv awstats-7.0 /usr/local/awstats chown -R root:root /usr/local/awstats chmod -R =rwX /usr/local/awstats chmod +x /usr/local/awstats/tools/*.pl chmod +x /usr/local/awstats/wwwroot/cgi-bin/*.pl