Nginx自学手册(一) upstream及fastcgi

(一)nginx upstream实现负载均衡

Ngx_http_upstream_module模块可实现七层负载均衡,定义的服务器组可被proxy_pass、fastcgi_pass、uwsgi_pass、scgi_pass和memcached_pass所引用,具体可以参考官方文档:

http://nginx.org/en/docs/http/ngx_http_upstream_module.html

1,当前的环境:

Nginx upstream IP:192.168.180.2

node1 : 192.168.180.2:8080

node2 : 192.168.180.3:8080

目前两台主机的服务都已经再跑如图:

2,nginx upstream配置

(1)只定义http段的定义服务器组

user  ftp;
worker_processes  3;
worker_rlimit_nofile 65535;
events {
    use epoll;
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    #include       proxy.conf;
    log_format yundns_log ‘$server_name $remote_addr [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent"‘;
    log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
                      ‘$status $body_bytes_sent "$http_referer" ‘
                      ‘"$http_user_agent" "$http_x_forwarded_for"‘;
    access_log  logs/access.log  main;
    access_log on;
    server_tokens off;
    sendfile        on;
    tcp_nopush     on;
    server_names_hash_bucket_size 256;
    client_header_buffer_size 256k;
    #large_client_header_buffers 4 32k;
    large_client_header_buffers 4 256k;
    client_body_buffer_size 256k;
    client_header_timeout     3m;
    client_body_timeout 3m;
    send_timeout             3m;
    client_max_body_size 50m;
    keepalive_timeout  120;
    fastcgi_intercept_errors on;
    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    #fastcgi_buffer_size 64k;
    #fastcgi_buffers 8 64k;
    #fastcgi_busy_buffers_size 128k;
    #fastcgi_temp_file_write_size 128k;
    fastcgi_buffer_size 128k;
    fastcgi_buffers 4 256k;
    fastcgi_busy_buffers_size 256k;
    fastcgi_temp_file_write_size 256k;
    gzip on;
    gzip_min_length  1k;
    gzip_buffers     4 16k;
    gzip_http_version 1.0;
    gzip_comp_level 2;
    gzip_types       text/plain application/x-javascript text/css application/xml;
    gzip_vary on;
    #limit_req_zone $anti_SendSms zone=anti_SendSms:30m rate=1r/m;
    limit_req_zone $binary_remote_addr zone=anti_SendSms:30m rate=1r/m;
     upstream guojinbao{
      ip_hash;
      server 192.168.180.2:8080;
      server 192.168.180.3:8080;
       }
    include server/*.conf;
}

(2)定义虚拟主机段location区段的proxy_pass中服务器组

server {
        listen       443 ssl http2;
        server_name  localhost;
        #ssl                  on;
        ssl_certificate      guojinbao.geotrust.crt;
        ssl_certificate_key  guojinbao.geotrust.key;
        rewrite ^/invitejoin/(.*)\.htm[l]?$  /register.shtml?$1 last;
        index index.jsp index.html;
        root /opt/static/home;                            
  location ~ .* {
                                        proxy_pass http://guojinbao;
                                        proxy_set_header X-Real-IP $remote_addr;
                                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                                        #proxy_set_header X-Forward-For $remote_addr;
                                        proxy_set_header Host $host;
                                }
        }

3,测试:

把其中一台服务关闭先把192.168.180.2:8080服务关闭,看下能不能调到192.168.180.3这台服务器上

如下图:

可以正常访问说明服务已调到192.168.180.3这台服务器上,负载均衡已起作用。

备注:主要参数说明:

server 192.168.0.30 weight=2;此处的weight为权重,默认为1;

主要算法,rr,wrr,ip_hash等,可在upstream中定义;

server 192.168.0.30 max_files=3 fail_timeout=30s;此处的max_files,fail_timeout为健康状态检测,超过3次未响应,超时30s,就从server列表中移除。

server 192.168.0.30 backup;标记为备份

server 192.168.0.30 down;标记为不可用,与ip_hash算法一同使用

二、Nginx fastcgi

1、fastcgi全称为高速的通用网关接口,是HTTP服务器与动态脚本语言之间通信的接口,其工作模式与反向代理差不多,实现客户端请求的动静分离。

2 配置fastcfi_params

fastcgi_param  GATEWAY_INTERFACE  CGI/1.1;
fastcgi_param  SERVER_SOFTWARE    nginx;
fastcgi_param  QUERY_STRING       $query_string;
fastcgi_param  REQUEST_METHOD     $request_method;
fastcgi_param  CONTENT_TYPE       $content_type;
fastcgi_param  CONTENT_LENGTH     $content_length;
fastcgi_param  SCRIPT_FILENAME    $document_root$fastcgi_script_name;
fastcgi_param  SCRIPT_NAME        $fastcgi_script_name;
fastcgi_param  REQUEST_URI        $request_uri;
fastcgi_param  DOCUMENT_URI       $document_uri;
fastcgi_param  DOCUMENT_ROOT      $document_root;
fastcgi_param  SERVER_PROTOCOL    $server_protocol;
fastcgi_param  REMOTE_ADDR        $remote_addr;
fastcgi_param  REMOTE_PORT        $remote_port;
fastcgi_param  SERVER_ADDR        $server_addr;
fastcgi_param  SERVER_PORT        $server_port;
fastcgi_param  SERVER_NAME        $server_name;
    server {
         listen       80;
         server_name  192.168.110.4;       ################域名可以有多个,用空格隔
         access_log  /data/nginx/log/nginx.access.log;
        index index.php  index.html;
       # root      /usr/local/nginx/html;
         root    /data/php;
       # root    /data/test/php;
       # root    /data/www/php;
         error_page 500 502 503 /50x.html;                                                                   
         location = /nginx-status {                                                                          
                     stub_status on;                                                                         
                     access_log  off;                                                                        
                     allow 127.0.0.1;                                                                        
                     allow 192.168.180.4;                                                                    
                                  }             
     location ~ \.php$                                                                                       
         {                                                                                                   
            # root   /usr/local/nginx/html/zabbix;                                                           
             expires -1s;                                                                                    
             #index index.php  index.html;                                                                   
             fastcgi_split_path_info ^(.+\.php)(/.+)$;                                                       
             include fastcgi_params;                                                                         
             fastcgi_param PATH_INFO $fastcgi_path_info;                                                     
             fastcgi_index index.php;                                                                        
             fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;                               
             fastcgi_pass 127.0.0.1:9000;                                                                    
                                                                                                             
           }
时间: 2024-10-09 21:51:43

Nginx自学手册(一) upstream及fastcgi的相关文章

Nginx自学手册(三)location匹配,rewrite

(一)Nginx location location语法规则 Syntax: location [ = | ~ | ~* | ^~ ] uri { ... }location @name { ... } Default: - Context: server, location nginx官方的例子: location = / {     [ configuration A ] } location / {     [ configuration B ] } location /documents

Nginx自学手册(六)Nginx+Tomcat实现动静分离

(一)简述 Nginx是一种轻量级,高性能,多进程的Web服务器,非常适合作为静态资源的服务器使用,而动态的访问操作可以使用稳定的Apache.Tomcat及IIS等来实现,这里就以Nginx作为代理服务器的同时,也使用其作为静态资源的服务器,而动态的访问服务器就以Tomcat为例说明. (二)环境简介 服务器名称 IP 备注 Nginx服务器 192.168.180.4 Tomcat服务器 192.168.180.23 client 192.168.181.231 客户端访问 (三)具体步骤:

Nginx自学手册(四)反向代理和缓存

(一)nginx反向代理 什么是代理服务器 :代理服务器,客户机在发送请求时,不会直接发送给目的主机,而是先发送给代理服务器,代理服务接受客户机请求之后,再向主机发出,并接收目的主机返回的数据,存放在代理服务器的硬盘中,再发送给客户机. 为什么要使用代理服务器 1)提高访问速度 由于目标主机返回的数据会存放在代理服务器的硬盘中,因此下一次客户再访问相同的站点数据时,会直接从代理服务器的硬盘中读取,起到了缓存的作用,尤其对于热门站点能明显提高请求速度. 2)防火墙作用 由于所有的客户机请求都必须通

Nginx反向代理、缓存、 负载均衡、upstream以及fastcgi模块应用

Nginx反向代理,缓存, 负载均衡, upstream及fastcgi模块应用 Nginx版本为nginx-1.6.2-1.el6.ngx.x86_64.rpm可以去官网下载: http://nginx.org/packages/centos/6/x86_64/RPMS/ [[email protected] ~]# rpm -ivhnginx-1.6.2-1.el6.ngx.x86_64.rpm [[email protected] ~]# vim/var/www/html/index.ht

Nginx中文手册

下载 : Nginx 中文手册 Nginx 常见应用技术指南[Nginx Tips] 第二版 作者:NetSeek http://www.linuxtone.org (IT运维专家网|集群架构|性能调优) 目 录 一. Nginx 基础知识 二. Nginx 安装及调试 三. Nginx Rewrite 四. Nginx Redirect 五. Nginx 目录自动加斜线: 六. Nginx Location 七. Nginx expires 八. Nginx 防盗链 九. Nginx 访问控制

Nginx安装手册

前提是搭建yum安装环境,见前面的教程资料 Nginx安装手册1 nginx安装环境 nginx是C语言开发,建议在linux上运行,本教程使用Centos6.5作为安装环境.? gcc 安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:yum install gcc-c++ ? PCRE PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库.nginx的http

nginx中文手册内容说明

1.什么是nginx? Nginx 是一个高性能的 Web 和反向代理服务器, 它具有有很多非常优越的特性: 作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎.能够支持高达 50,000 个并发连接数的响应,感谢 Nginx 为我们选择了 epoll and kqueue 作为开发模型. 作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP,也可以支持作为 HTTP代

Nginx安装手册以及图片服务器部署

1.      安装gcc yum install gcc 2.      安装pcre,pcre-devel 在zhoulh目录下建立source build目录 mkdir source build 进入build目录 创建pcre目录 cd pcre wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.35.zip pcre的版本随着时间可能会变动,可以进入 ftp://ftp.csx.cam.ac.uk/pu

CAD CAM CAE自学手册 ANSYS 15.0有限元分析自学手册_完整版PDF电子书下载

CAD CAM CAE自学手册  ANSYS 15.0有限元分析自学手册_2015.10_P523_完整版PDF电子书下载 带索引书签目录高清版_13818745 下载链接http://pan.baidu.com/s/1kUH24Rl [作 者]李津编著 [丛书名]CAD/CAM/CAE自学手册 [形态项] 523 [出版项] 北京:人民邮电出版社 , 2015.10 [ISBN号]978-7-115-27588-2 [中图法分类号]O241.82-39 [原书定价]69.00 [主题词]有限元