负载均衡 先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。那么负载均衡的前提就是要有多台服务器才能实现,也就是两台以上即可。 测试环境 在VMware里安装...
方法一:修改nginx.conf server { listen 80; server_name www.ready.com; #添加如下内容即可防止爬虫 if ($http_user_agent ~* qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Y...
events { worker_connections 768; # multi_accept on; } http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; # server_tokens off; # server_names_hash_bucket_size 64; # serve...
最简单的配置nginx.conf使之成为静态文件下载服务器 sendfileon; tcp_nopushon; #keepalive_timeout0; keepalive_timeout65; #gzipon; server{ listen8082;#端口 server_namelocalhost;#服务名 root/dev/shm/update;#显示的根索引目录 autoindexon;#开启索引...
今天,朋友有个网站要挂在我的服务器上,鼓捣了一下Nginx中配置多个主机和域名,具体的要求是: 主机只有一个IP地址 123.123.123.123 有两个功能不同的网站,一个是我现在的blog,一个是朋友的购物网站 有两个域名 www.wusay.org www.AusForYou.com,一个是...
apache下面直接配置数据库配置信息: 1)首先在apache下面的httpd.conf中的 # Secure (SSL/TLS) connections Include conf/extra/httpd-ssl.conf 下面引入(数据库配置文件db-info.conf) Include conf/extra/db-info.conf 2)配置数据库配置文件db-info.conf...
监控Nginx负载均衡器脚本 1.编写脚本 vim nginx_pid.sh #!/bin/bash while : do nginxpid=`ps -C nginx --no-header | wc -l` if [ $nginxpid -eq 0 ];then /usr/local/nginx/sbin/nginx sleep 5 if [ $nginxpid -eq 0 ];then /etc/init.d/keepalived stop f...
1.location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ 2. { 3. expires 30d; 4. } 5. 6. location ~ .*\.(js|css)?$ 7. { 8. expires 1h; 9. } 1.代表图片默认缓存30天 2.JS和CSS默认缓存1小时 用户可以根据需求设置Nginx...
nginx出于性能考虑采用类似lib_event的方式,自己对时间进行了cache,用来减少对gettimeofday()的调用,因为一般来说服务器对时间的精度要求不是特别的高,不过如果需要比较精确的timer,nginx还提供了一个timer_resolution指令用来设置时间精度,具体的机...
试验了用128MB的小机Nginx反代+缓存跑了个3万ip的站,负载一直在0.01-0.02,没感觉 目前,Nginx的缓存控制机制是软肋,特别是清理过期缓存方面,有2种方法来清理过期的缓存,当然,nginx自身也会清理的,但清理的机制不好。所以,只能do it yourself. 1. Cro...
nginx在1.3.1添加了一个新模块 least_conn,也就是我们常说的最少连接负载均衡算法,简单来说就是每次选择的都是当前最少连接的一个server(这个最少连接不是全局的,是每个进程都有自己的一个统计列表)。 在看最少连接模块之前需要对round robin模块有一定的...
这次主要来看upstream的几个相关的hook函数。 首先要知道,对于upstream,同时有两个连接,一个时client和nginx,一个是nginx和upstream,这个时候就会有两个回调,然后上篇blog中,我们能看到在upstream中,会改变read_event_handler和write_event_handler,...
这次主要来分析当upstream发送过来数据之后,nginx是如何来处理。不过这里我忽略了cache部分,以后我会专门来分析nginx的cache部分。 在前面blog我们能得知upstream端的读回调函数是ngx_http_upstream_process_header,因此这次我们就从ngx_http_upstream_pr...
这此主要是分析发送数据到客户端的部分以及buffering状态下,nginx接收upstream数据的部分,这也是upstream的最复杂的部分,这里我还是忽略了cache部分,以后我会专门写blog来分析nginx的cache部分。 这部分的函数入口是ngx_http_upstream_send_response,这...
这次主要来分析upstream中的发送数据给client, 以及当buf不足,将一部分写到temp file的部分,他们对应的函数分别是ngx_event_pipe_write_to_downstream和ngx_event_pipe_write_chain_to_temp_file. 先来看ngx_event_pipe_write_to_downstream,这个函数顾名...
这里主要的头的处理是放在filter中做的,我们首先来看config(默认情况)后,nginx的obj目录下的ngx_modules.c这个文件中的关于filter的部分: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ngx_module_t *ngx_modules[] = { ....................................
然后是charset filter,这个主要是处理nginx内部的charset命令,转换为设置的编码。这个filter就不介绍了,主要是一个解码的过程。 再接下来是chunk filter,它主要是生成chunk数据,这里要注意nginx只支持服务端生成chunk,而不支持客户端发送的chunk数据。c...
这篇我们会主要来分析配置文件相关的一些初始化,而在下一篇我们会详细分析http协议相关,以及socket的初始化信息。 nginx启动最重要的部分是在ngx_init_cycle中,我们接下来就会详细的分析这个函数,以及相关的函数. 下面就是ngx_init_cycle的流程图 首先先...
接上篇,这篇主要来看nginx的网络部分的初始化 首先是ngx_http_optimize_servers函数,这个函数是在ngx_http_block中被调用的,它的主要功能就是创建listening结构,然后初始化。这里ngx_listening_t表示一个正在监听的句柄以及它的上下文。 1 2 3 4 5 6 7 8...
前几天nginx的0.8.x正式成为stable,然后看了下代码,发现0.8加入了linux native aio的支持,我们知道在linux下有两种aio,一种是glibc实现的aio,这个比较烂,它是直接在用户空间用pthread进行模拟的。还有一种就是内核实现的aio,这些系统调用是以io_xxx开...
nginx在1.3.1添加了一个新模块 least_conn,也就是我们常说的最少连接负载均衡算法,简单来说就是每次选择的都是当前最少连接的一个server(这个最少连接不是全局的,是每个进程都有自己的一个统计列表)。 在看最少连接模块之前需要对round robin模块有一定的...
configure 脚本确定系统所具有一些特性,特别是 nginx 用来处理连接的方法。然后,它创建 Makefile 文件。 configure 支持下面的选项: --prefix= path - Nginx安装路径。如果没有指定,默认为 /usr/local/nginx。 --sbin-path= path - Nginx可执行文件安装...
NAME posix_memalign - aligned memory allocation (ADVANCED REALTIME) SYNOPSIS [ADV] #include stdlib.h int posix_memalign(void **memptr, size_talignment, size_tsize); DESCRIPTION Theposix_memalign() function shall allocatesizebytes aligned o...
1进行echo模块的功能设计 以下是本模块要能识别的nginx配置 作为演示模块,我们这个模块仅仅完成以下功能: 读入nginx.conf中以echo开头的配置;echo是本模块新加入的命令,意思是直接输出; 例如: 在用户访问/hello时设置文件头为content-type=application/html;...
Nginx 从 0.7.53 版本之后新增了一些命令行参数:-s 以前都是用kill -HUP `cat /usr/local/nginx/logs/nginx.pid` 方法来重新加载配置,现在只需要用 /usr/local/nginx/sbin/nginx -s reload 命令即可。 -s参数包含四个命令分别是 stop/quit/reopen/reload v...
Nginx 自从 0.7.53 版本之后新增了一些命令行参数,请看: [oschina@liubc oschina]$ /opt/ngx/sbin/nginx -h nginx version: nginx/0.8.45 Usage: nginx [-?hvVt] [-s signal] [-c filename] [-p prefix] [-g directives] Options: -?,-h : this help -v :...
今天发现一个现象,nginx启动的时候log文件都是root:root,这样应用没法写日志进去了。线上其他机器都是nobody:root 后来发现只要/usr/local/ngin/sbin/nginx -sreopen就会把日志属主变成nobody:root了,而用nginx -s reload就不行。...
nginxtcp代理功能由nginx_tcp_proxy_module模块提供,同时监测后端主机状态。该模块包括的模块有: ngx_tcp_module, ngx_tcp_core_module, ngx_tcp_upstream_module, ngx_tcp_proxy_module, ngx_tcp_upstream_ip_hash_module。 1. 安装 1 2 3 4 5 6 # wget h...
使用场景 最近,报告查询系统负载均衡集群相关配置已经完成,两种实现方式分别是基于E...
当你执行 nginx -t 得时候,nginx会去测试你得配置文件得语法,并告诉你配置文件是否...
本文将介绍一些SSL安全性的配置,以此提升网站的安全等级。先给出本博客的SSL配置: s...
我已经谈过一些关于 Nginx 的常见问题,其中有一些是关于如何优化Nginx,很多Nginx新...
nginx_lua_module是由淘宝的工程师清无(王晓哲)和春来(章亦春)所开发的nginx第三...
用Nginx建站的同学,常会有限速需求。开发测试阶段在本地限速模拟公网的环境,方便调...