Nginx环境说明: Nginx 安装安装nginx所依赖的软件包: yum -y install pcre-devel openssl openssl-devel 下载并安装nginx1.0.4 wget http://10.21.0.212/software/nginx-1.0.4.tar.gz cd /tmp wget http://yum/software/nginx-1.0.4.tar.gz tar -zxvf nginx-1.0.4.tar.gz cd nginx-1.0.4 yum -y install pcre-devel openssl openssl-devel # ./configure --prefix=/opt/nginx --with-http_stub_status_module --with-http_ssl_module #安装监控模块 ,安装SSL模块 ./configure --prefix=/opt/nginx --with-http_stub_status_module #修改nginx的安装路径 make make install 启动:/usr/local/nginx/sbin/nginx Nginx增加对socket连接的支持nginx默认并不支持对socket连接的转发,需要安装新的模块,模块地址: https://github.com/yaoweibin/nginx_tcp_proxy_module 安装tcp_proxy_modules $ wget 'http:///download/nginx-1.2.1.tar.gz' $ tar -xzvf nginx-1.2.1.tar.gz $ cd nginx-1.2.1/ $ patch -p1 < /path/to/nginx_tcp_proxy_module/tcp.patch $ ./configure --add-module=/path/to/nginx_tcp_proxy_module --prefix=/opt --with-http_stub_status_module $ make $ make install 在配置文件的最上加上: tcp { upstream websocket { server 10.23.4.166:9991; #server 192.168.0.3:9991; check interval=3000 rise=2 fall=5 timeout=1000; } server { listen 9990; proxy_pass websocket; } } 注意: You can't use the same listening port with HTTP modules. Nginx 启用gzip这个模块支持在线实时压缩输出数据流 gzip 语法: gzip on|off 默认值: gzip off 作用域: http, server, location, if (x) location 开启或者关闭gzip模块 gzip_buffers 语法: gzip_buffers number size 默认值: gzip_buffers 4 4k/8k 作用域: http, server, location 设置系统获取几个单位的缓存用于存储gzip的压缩结果数据流。 例如 4 4k 代表以4k为单位,按照原始数据大小以4k为单位的4倍申请内存。 4 8k 代表以8k为单位,按照原始数据大小以8k为单位的4倍申请内存。 如果没有设置,默认值是申请跟原始数据相同大小的内存空间去存储gzip压缩结果。 gzip_comp_level 语法: gzip_comp_level 1..9 默认值: gzip_comp_level 1 作用域: http, server, location gzip压缩比,1 压缩比最小处理速度最快,9 压缩比最大但处理最慢(传输快但比较消耗cpu)。 gzip_min_length 语法: gzip_min_length length 默认值: gzip_min_length 0 作用域: http, server, location 设置允许压缩的页面最小字节数,页面字节数从header头中的Content-Length中进行获取。 默认值是0,不管页面多大都压缩。 建议设置成大于1k的字节数,小于1k可能会越压越大。 即: gzip_min_length 1024 gzip_http_version 语法: gzip_http_version 1.0|1.1 默认值: gzip_http_version 1.1 作用域: http, server, location 识别http的协议版本。由于早期的一些浏览器或者http客户端,可能不支持gzip自解压,用户就会看到乱码,所以做一些判断还是有必要的。 注:21世纪都来了,现在除了类似于百度的蜘蛛之类的东西不支持自解压,99.99%的浏览器基本上都支持gzip解压了,所以可以不用设这个值,保持系统默认即可。 gzip_proxied 语法: gzip_proxied [off|expired|no-cache|no-store|private|no_last_modified|no_etag|auth|any] … 默认值: gzip_proxied off 作用域: http, server, location Nginx作为反向代理的时候启用,开启或者关闭后端服务器返回的结果,匹配的前提是后端服务器必须要返回包含”Via”的 header头。 off – 关闭所有的代理结果数据的压缩 expired – 启用压缩,如果header头中包含 “Expires” 头信息 no-cache – 启用压缩,如果header头中包含 “Cache-Control:no-cache” 头信息 no-store – 启用压缩,如果header头中包含 “Cache-Control:no-store” 头信息 private – 启用压缩,如果header头中包含 “Cache-Control:private” 头信息 no_last_modified – 启用压缩,如果header头中不包含 “Last-Modified” 头信息 no_etag – 启用压缩 ,如果header头中不包含 “ETag” 头信息 auth – 启用压缩 , 如果header头中包含 “Authorization” 头信息 any – 无条件启用压缩 gzip_types 语法: gzip_types mime-type [mime-type ...] 默认值: gzip_types text/html 作用域: http, server, location 匹配MIME类型进行压缩,(无论是否指定)”text/html”类型总是会被压缩的。 注意:如果作为http server来使用,主配置文件中要包含文件类型配置文件 http { include conf/mime.types; ........ } gzip_vary syntax: gzip_vary on|off default: gzip_vary off context: http, server, location Enables response header of “Vary: Accept-Encoding”. Note that this header causes IE 4-6 not to cache the content due to a bug 列子: gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain text/javascript application/x-javascript text/css application/xml; gzip_vary on; 可以通过网页gzip检测工具来检测网页是否启用了gzip http://gzip./ Nginx 添加模块原已经安装好的nginx,现在需要添加一个未被编译安装的模块, 查看原来编译时都带了哪些参数 /usr/local/nginx/sbin/nginx -V 添加的参数: --with-http_stub_status_module 1、使用参数重新配置: ./configure --with-http_stub_status_module 2、 编译: make #不要make install,否则就是覆盖安装 3. 替换nginx二进制文件: cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak cp ./objs/nginx /usr/local/nginx/sbin/nginx 配置文件优化worker_processes 2; nginx进程数,建议按照cpu数目来指定,一般为它的倍数。 worker_processes最多开启8个,8个以上性能提升不会再提升了,而且稳定性变得更低,所以8个进程够用了。 worker_cpu_affinity 01 10; 为每个进程分配cpu,上例中将2个进程分配到2个cpu,当然可以写多个,或者将一个进程分配到多个cpu。 2核是 01,四核是0001,8核是00000001,有多少个核,就有几位数,1表示该内核开启,0表示该内核关闭 worker_rlimit_nofile 65535; use epoll; linux下nginx采用epoll事件模型,处理效率高 参考文档:http://hi.baidu.com/zouqone/item/e06ff398e4bc9dd31b49dfb3 worker_connections 65535; 每个进程允许的最多连接数,理论上每台nginx服务器的最大连接数为worker_processes*worker_connections。 keepalive_timeout 60; keepalive超时时间,单位为秒。 以下参数不是很清楚作用,可选项 client_header_buffer_size 4k; 客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置,一般一个请求的头部大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。分页大小可以用命令getconf PAGESIZE取得。 open_file_cache max=102400 inactive=20s; 这个将为打开文件指定缓存,默认是没有启用的,max指定缓存数量,建议和打开文件数一致,inactive是指经过多长时间文件没被请求后删除缓存。 open_file_cache_valid 30s; 这个是指多长时间检查一次缓存的有效信息。 open_file_cache_min_uses 1; open_file_cache指令中的inactive参数时间内文件的最少使用次数,如果超过这个数字,文件描述符一直是在缓存中打开的,如上例,如果有一个文件在inactive时间内一次没被使用,它将被移除 http 之前的配置文件
|
|