首页 > 系统 > Linux >

nginx学习笔记

2017-04-11

nginx学习笔记。

nginx学习笔记


nginx介绍和配置

nginx拥有一个主程序多个丛程序 nginx采用事件驱动 配置文件为nginx.conf

静态资源

1. 增加root目录:

location / {
    root /data/www;
}

2. 增加特定类型的文件目录:

location /images/ {
    root /data;
}

它会匹配/images/开头的请求

设置一个简单的代理服务器

1. 定义一个代理服务器

server {
    listen 8080;
    root /data/up1;

    location / {
    }
}

2. 添加代理服务器配置

server {
    location / {
        proxy_pass http://localhost:8080;
    }

    location /images/ {
        root /data;
    }
}

3. 可以使用后缀名来匹配

location ~ \.(gif|jpg|png)$ {
    root /data/images;
}

最终的配置应该是这样:

server {
    location / {
        proxy_pass http://localhost:8080/;
    }

    location ~ \.(gif|jpg|png)$ {
        root /data/images;
    }
}

4. 设置快速CGI代理,比如PHP

server {
    location / {
        fastcgi_pass  localhost:9000;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param QUERY_STRING    $query_string;
    }

    location ~ \.(gif|jpg|png)$ {
        root /data/images;
    }
}

实现HTTP负载均衡

1. 三种负载规则:

按顺序依次分发 最少连接 ip hash 设置权重

默认为第一种规则

2. 默认的负载均衡配置:

http {
    upstream myapp1 {
        server srv1.example.com;
        server srv2.example.com;
        server srv3.example.com;
    }

    server {
        listen 80;

        location / {
            proxy_pass http://myapp1;
        }
    }
}

3. 最短连接有限负载均衡配置:

upstream myapp1 {
    least_conn;
    server srv1.example.com;
    server srv2.example.com;
    server srv3.example.com;
}

4. session持久化

session有 sticky和persistent两种解决方案。ip-hash可以保证session的一致性。确保了来自同一个主机的请求会被分配到同一个服务器。
使用ip-hash负载均衡配置:

upstream myapp1 {
    ip_hash;
    server srv1.example.com;
    server srv2.example.com;
    server srv3.example.com;
}

5. 设置权重

默认权重为1

upstream myapp1 {
    server srv1.example.com weight=3;
    server srv2.example.com;
    server srv3.example.com;
}

6. 服务健康检查

如果一个server响应发生了错误,那么在随后的请求会跳过这个server。
设置ail_timeout属性,表示此server被发生错误后,被标记的时间, max_fails是在此期间尝试连接的次数。

相关文章
最新文章
热点推荐