当前位置:  操作系统/服务器>linux
本页文章导读:
    ▪nginx 自动调试脚本一例      本节内容: Nginx 自动调试脚本 编译时,configure 加上--with-debug, nginx.conf 中   代码示例: worker_processes  1; 然后:   代码示例: make make install sbin/nginx ps -A |grep nginx 然后,找到: gdb -p 分.........
    ▪nginx负载均衡的配置实现方法      本节内容: nginx 负载均衡 将一台Nginx主机当作前端负载均衡服务器,后面通过交换机链接多台web服务器,提供html和php的web界面服务。 通过配置前端负载均衡服务器,可以实现将html界面和php.........
    ▪分享nginx高效学习的方法      本节内容: nginx高效学习方法 Nginx做为一个高性能的web服务器,相对于apache等服务器来说它的代码量并不是非常庞大,反而非常精简。看过nginx源码的人都知道,nginx将“一切皆为模块”和“.........

[1]nginx 自动调试脚本一例
    来源: 互联网  发布时间: 2013-12-24

本节内容:
Nginx 自动调试脚本

编译时,configure 加上--with-debug,
nginx.conf 中
 

代码示例:
worker_processes  1;

然后:
 

代码示例:
make
make install
sbin/nginx

ps -A |grep nginx

然后,找到:
gdb -p

分享下自动化脚本:
 

代码示例:
killall nginx
sleep 3
sbin/nginx
sleep 3
procnum=`ps -A | grep nginx |tail -n 1 |awk '{print $1}' `
gdb -p $procnum

    
[2]nginx负载均衡的配置实现方法
    来源: 互联网  发布时间: 2013-12-24

本节内容:
nginx 负载均衡

将一台Nginx主机当作前端负载均衡服务器,后面通过交换机链接多台web服务器,提供html和php的web界面服务。

通过配置前端负载均衡服务器,可以实现将html界面和php界面的分开访问,即html页面一个服务器,php页面使用另一台服务器达到负载均衡的效果。

或配置多台服务器提供同一个页面的web服务,当访问量很大时,可以均衡web服务器的流量,对同一个页面实现负载均衡。

具体配置:
 

代码示例:

#vi nginx.conf
#在http中添加如下配置
upstream html.{
    server 10.0.8.29:80 weight=1 max_fails=2 fail_timeout=30s;
}
upstream www.{
  server 10.0.8.32:80 weight=1 max_fails=2 fail_timeout=30s;
  server 10.0.8.31:80 weight=1 max_fails=2 fail_timeout=30s;
}  #权重,值相同就平分访问量#最大请求失败次数和失败时间,超出就跳到另一个服务器进行访问。
#以下参数可以根据需求进行设置
#压缩变量设置
     gzip  on;
#    gzip_min_length 2k;
#    gzip_buffers 4 64k;
#    gzip_http_version 1.1;
#    gzip_comp_level 5;
#    gzip_types text/plain application/x-javascript text/css application/xml;
#    gzip_vary off;
##客户端设置
#    client_max_body_size 100m;
#    client_body_buffer_size 512k;
#    client_header_timeout 5m;
#    client_body_timeout 5m;
##代理设置
#    proxy_connect_timeout 60;
#    proxy_read_timeout 60;
#    proxy_send_timeout 60;
#    proxy_buffer_size 128k;
#    proxy_buffers 4 128k;
#    proxy_busy_buffers_size 128k;
#    proxy_next_upstream error timeout invalid_header http_500 http_503 http_404;
#    proxy_temp_file_write_size 128k;
#    proxy_max_temp_file_size 128k;
#    proxy_cache_path /tmp/nginx levels=1:2
#     keys_zone=one:10m
#     inactive=7d max_size=10g;

在server中添加如下配置(可以理解为一个server配置就是一个web服务)
location ~ \.php$ {
    proxy_pass http://www.;    #此路径由upstream指定。
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
}
#当访问以.php结尾的页面时,就由proxy_pass跳转到www.进行访问,此页面由前面upstream设置。
location ~ \.html$ {
    proxy_pass http://html.;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header Host $host;
    proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
}
#当访问以.html结尾的页面时,跳转到html.进行访问。


    
[3]分享nginx高效学习的方法
    来源: 互联网  发布时间: 2013-12-24

本节内容:
nginx高效学习方法

Nginx做为一个高性能的web服务器,相对于apache等服务器来说它的代码量并不是非常庞大,反而非常精简。看过nginx源码的人都知道,nginx将“一切皆为模块”和“所有问题都可以通过加层的方式来解决”这两句话体现得淋漓尽致。

nginx所有功能都由一个一个模块叠加而成,这对快速定位问题非常有用。在计算机行业中有这么一句话,计算机中的所有问题都可以通过增加中间层的方式来解决;比如linux物理内存太少不够用,就通过增加虚拟内存这一层来解决;再比如内存访问磁盘的速度太低,就通过增加调整缓存这一层来解决等等。

nginx也是一样通过增加中间层来解决问题,nginx的大体上分为三层,第一层由核心模块、事件模块,日志模块组成,主要处理配置解析、TCP网络事件等;第二层由http框架模块、mail框架模块等组成,在第一层的基础上处理用户的请求,解析用户请求行、请求头(http协议);第三层由业务模块组成,通过获取第二层解析的用户请求信息进行业务处理。用来做nginx 正向代理、nginx 反向代理用来代理后端文件或作nginx缓存,都相当不错的。

nginx是一个非常优秀的开源软件,学习它可以提高我们编码的能力。相信每个人都能学会nginx,只是时间问题而已,但如何发最少的时间高效的学会nginx呢?本人学习nginx已有大半个月,虽没有完全看完nginx源代码,但也看懂近十个模块的源代码。

分享下学习nginx的一些方法,供大家参考。

第一步、下载nginx源代码,在linux上编译安装
    能看懂configure文件的尽量学习一下,看不懂的就算了,编译完后是知道在objs目录下有一个ngx_modules.c文件,这文件里存有nginx模块加载运行的顺序。

第二步、用sourceInsight建立一个nginx源码工程
    第三、四步中会用到

第三步、找一本nginx方面的电子书,按照书的流程看一遍
    入门级书中一般都会介绍一些nginx常用的配置项、nginx常用的数据结构、以及如何编写nginx模块等等,这些都得学会。看书是有技巧的,在看书时遇到书中对某结构体或者某函数的描述时就将描述信息写在源代码中对相应的结构体或函数边,后续看代码时就不需要再这里找那里找了。

    推荐《实战Nginx:取代Apache的高性能Web服务器》,有兴趣的朋友可以参阅下。

第四步、阅读源代码
    书看完了,并不代表就学会了,有些细节还得通过看源代码才能知道。
   
    阅读源代码不能无目的的去看,得按照ngx_modules.c文件中模块的编译 顺序一个模块一个模块的去看,模块之间总会有些依赖关系的,前一个模块所做的工作往往后面的模块要用到,不按模块顺序看是要付出很大代价的。
   
    由于在第三步中对一些重要的结构成员已经有描述了,此时看起代码来就不那么困难了。
   
    源代码至少得看两遍,第一遍将每个模块的源码看一遍,知道该模块处理了那些配置项,完成了什么功能;
    第二遍得从连接的角度去看,如当nginx收到用户请求时经过那些模块,这些模块对它做了那些处理等。

参考资料:
http://nginx.org/en/docs/      //官方文档,有每个模块处理的配置项
http://www.pagefault.info/?p=188  //nginx的启动过程分析


    
最新技术文章:
▪linux系统中的列出敏感用户的脚本代码
▪a10 config backup for aXAPI
▪一键备份gitolite服务器的Shell脚本
▪nagios 分发文件实现代码
▪阿里云云服务器Linux系统更新yum源Shell脚本
▪一个监控LINUX目录和文件变化的Shell脚本分享
▪Linux下实现SSH免密码登录和实现秘钥的管理、...
▪Shell正则表达式之grep、sed、awk实操笔记
▪3个备份系统文件并邮件发送的Shell脚本分享
▪CentOS 6.3下给PHP添加mssql扩展模块教程
▪监控网站是否可以正常打开的Shell脚本分享
▪shell脚本编程之if语句学习笔记
▪shell脚本编程之循环语句学习笔记
▪shell脚本编程之case语句学习笔记
▪Shell脚本实现的阳历转农历代码分享
▪Shell脚本实现复制文件到多台服务器的代码分...
▪Shell脚本实现批量下载网络图片代码分享
▪Shell脚本实现检测文件是否被修改过代码分享
▪Shell脚本数组用法小结
▪Shell脚本批量重命名文件后缀的3种实现
▪C语言实现的ls命令源码分享
▪Linux下查找后门程序 CentOS 查后门程序的shell脚...
▪Shell 函数参数
▪linux shell 自定义函数方法(定义、返回值、变...
▪Shell实现判断进程是否存在并重新启动脚本分...
▪Shell脚本break和continue命令简明教程
▪Shell脚本函数定义和函数参数
▪让代码整洁、过程清晰的BASH Shell编程技巧
▪shell常用重定向实例讲解
▪awk中RS、ORS、FS、OFS的区别和联系小结
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3