美文网首页
4.常用配置

4.常用配置

作者: 毛子阿卡西 | 来源:发表于2018-05-10 16:54 被阅读0次
    反向代理
    什么是反向代理?
    
    客户端本来可以直接通过HTTP协议访问某网站应用服务器,如果网站管理员在中间加上一个Nginx,客户端请求Nginx,Nginx请求应用服务器,然后将结果返回给客户端,此时Nginx就是反向代理服务器。
    
    image.png
    server {
        listen 80;
        location / {
            proxy_pass http://192.168.0.112:8080; # 应用服务器HTTP地址
        }
    }
    
    负载均衡
    upstream myapp {
        server 192.168.0.111:8080; # 应用服务器1
        server 192.168.0.112:8080; # 应用服务器2
    }
    server {
        listen 80;
        location / {
            proxy_pass http://myweb;
        }
    }
    
    
    image.png
    FastCGI
    Nginx本身不支持PHP等语言,但是它可以通过FastCGI来将请求扔给某些语言或框架处理(例如PHP、Python、Perl)。
    配置中将.php结尾的请求通过FashCGI交给PHP-FPM处理,PHP-FPM是PHP的一个FastCGI管理器
    
    server {
        listen 80;
        location ~ \.php$ {
            include fastcgi_params;
            fastcgi_param SCRIPT_FILENAME /PHP文件路径$fastcgi_script_name; # PHP文件路径
            fastcgi_pass 127.0.0.1:9000; # PHP-FPM地址和端口号
            # 另一种方式:fastcgi_pass unix:/var/run/php5-fpm.sock;
        }
    }
    
    负载均衡详细配置
    http {
         #设定mime类型,类型由mime.type文件定义
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;
        #设定日志格式
        access_log    /var/log/nginx/access.log;
    
        #设定负载均衡的服务器列表
        upstream load_balance_server {
            #weigth参数表示权值,权值越高被分配到的几率越大
            server 192.168.1.11:80   weight=5;
            server 192.168.1.12:80   weight=1;
            server 192.168.1.13:80   weight=6;
        }
    
       #HTTP服务器
       server {
            #侦听80端口
            listen       80;
            
            #定义使用www.xx.com访问
            server_name  www.helloworld.com;
    
            #对所有请求进行负载均衡请求
            location / {
                root        /root;                 #定义服务器的默认网站根目录位置
                index       index.html index.htm;  #定义首页索引文件的名称
                proxy_pass  http://load_balance_server ;#请求转向load_balance_server 定义的服务器列表
    
                #以下是一些反向代理的配置(可选择性配置)
                #proxy_redirect off;
                proxy_set_header Host $host;
                proxy_set_header X-Real-IP $remote_addr;
                #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
                proxy_set_header X-Forwarded-For $remote_addr;
                proxy_connect_timeout 90;          #nginx跟后端服务器连接超时时间(代理连接超时)
                proxy_send_timeout 90;             #后端服务器数据回传时间(代理发送超时)
                proxy_read_timeout 90;             #连接成功后,后端服务器响应时间(代理接收超时)
                proxy_buffer_size 4k;              #设置代理服务器(nginx)保存用户头信息的缓冲区大小
                proxy_buffers 4 32k;               #proxy_buffers缓冲区,网页平均在32k以下的话,这样设置
                proxy_busy_buffers_size 64k;       #高负荷下缓冲大小(proxy_buffers*2)
                proxy_temp_file_write_size 64k;    #设定缓存文件夹大小,大于这个值,将从upstream服务器传
                
                client_max_body_size 10m;          #允许客户端请求的最大单文件字节数
                client_body_buffer_size 128k;      #缓冲区代理缓冲用户端请求的最大字节数
            }
        }
    }
    
    1、轮询(默认)
    每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
    
    2、weight
    指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
    例如:
    upstream bakend {
    server 192.168.159.10 weight=10;
    server 192.168.159.11 weight=10;
    }
    
    3、ip_hash
    每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
    例如:
    upstream resinserver{
    ip_hash;
    server 192.168.159.10:8080;
    server 192.168.159.11:8080;
    }
    
    
    4、fair(第三方)
    按后端服务器的响应时间来分配请求,响应时间短的优先分配。
    upstream resinserver{
    server server1;
    server server2;
    fair;
    }
    

    相关文章

      网友评论

          本文标题:4.常用配置

          本文链接:https://www.haomeiwen.com/subject/kfhtdftx.html