nginx 配置整理(初级版)

1.基础配置解析
2.负载均衡
3.缓存
4.反向代理

基础配置解析

worker_processes  1;

工作进程数目,与系统核数相符

error_log  logs/error.log;

日志路径,可以使用不同级别
[ debug | info | notice | warn | error | crit ]
例如

error_log  logs/error.log  notice;
pid        logs/nginx.pid;

pid存放路径

events {
    ##参考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模型是Linux 2.6以上版本内核中的高性能网络I/O模型,如果跑在FreeBSD上面,就用kqueue模型。
   use epoll;
    worker_connections  1024;
}

worker_connections规定每个进程最大连接数
这里,nginx的最大并发数即为
worker_connections * worker_processes
而对于反向代理,由于浏览器建立多个连接,需要除2?
另外,参考事件模型默认为epoll

http {  

        #包含一个文件描述了:不同文件后缀对应的MIME,即文件扩展名与文件类型映射表  
        include       mime.types;  

        #制定默认MIME类型为八进制字节流  
        default_type  application/octet-stream;  

        #指令 access_log 指派路径、格式和缓存大小。  
        #access_log  off;  

        #开启调用Linux的sendfile(),提供文件传输效率  
        sendfile        on;  

        #是否允许使用socket的TCP_NOPUSH或TCP_CORK选项,防止网络阻塞建议打开
        tcp_nopush     on;  

       ##防止网络阻塞  建议打开
      tcp_nodelay on;
      
        #指定客户端连接保持活动的超时时间,在这个时间之后,服务器会关掉连接。  
        keepalive_timeout  65;  

        #设置gzip,压缩文件  
        #gzip  on;  

    #为后端服务器提供简单的负载均衡    
        upstream apaches {  

            server 127.0.0.1:8001;  
            server 127.0.0.1:8002;  

        }  

    #配置一台虚拟机  
        server {  

            listen       8012;  
            server_name  localhost;  
            location / {        
                proxy_pass http://apaches;  
                #重写uri
                rewrite ^/index1 /index2.html last;
            }  
        }  
    }  

配置负载均衡

主要是依靠upstream ,来构建服务器组
这里分在均衡的方式有以下几种
1.默认是轮询方式
2.weight,指定轮询几率

upstream linuxidc{
      server 10.0.0.77 weight=5;
      server 10.0.0.88 weight=10;
}

3.ip_hash 每个ip固定访问一个后端server

upstream favresin{
      ip_hash;
      server 10.0.0.10:8080;
      server 10.0.0.11:8080;
}

初次以外就是可以设置服务器的状态
down 当前server不参与负载
backup 所有非backup机器down,或者忙的时候请求backup机器
例如

upstream bakend{ #定义负载均衡设备的Ip及设备状态
      ip_hash;
      server 10.0.0.11:9090 down;
      server 10.0.0.11:8080 weight=2;
      server 10.0.0.11:6060;
      server 10.0.0.11:7070 backup;
}

举个负载均衡的例子

upstream  test{
        server hd0:80;
        server hd2:80;
        server hd1:1001;
    }
    server {
        listen       12134;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location ^~/admin/ {
            root   html;
            index  index.html index.htm;
        } 


        location / {
            proxy_pass http://test;
        }

缓存

主要配置以下项

proxy_cache_path 
缓存区配置
proxy_buffering
打开缓存
proxy_cache 
设置缓存区
proxy_cache_valid  
返回码为多少时候进行缓存
proxy_cache_key 
缓存的key
        #配置缓存路径,缓存区为cache_one
        proxy_cache_path /tmp/cache levels=1:2 keys_zone=cache_one:20m inactive=1d max_size=100m;
    server {
        listen       12134;
        server_name  localhost;

        location ^~/admin/ {
            root   html;
            index  index.html index.htm;
        } 


        location / {
            #后台访问跳转
            proxy_pass http://test;
                    #打开缓存区
                    proxy_buffering on;
            #指定缓存区
            proxy_cache cache_one;
            #设定缓存对象以及保持时间
            proxy_cache_valid 200 304 301 302 10d;
            proxy_cache_valid  any 1d;   
            #设定缓存key值
            proxy_cache_key $host$uri$is_args$args;

            #expires 300s;          
        }

更加完整的缓存配置

    #cache begin
    proxy_buffering on;
    proxy_cache_valid any 10m;
    proxy_cache_path /data/cache levels=1:2 keys_zone=my-cache:8m max_size=1000m inactive=600m;
    proxy_temp_path /data/temp;
    proxy_buffer_size 4k;
    proxy_buffers 100 8k;
    #cache end
    location / {
    proxy_pass http://apachephp;
    proxy_cache my-cache;
    proxy_cache_valid 200;
    #Proxy Settings
    proxy_redirect off;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
    proxy_max_temp_file_size 0;
    proxy_connect_timeout 90;
    proxy_send_timeout 90;
    proxy_read_timeout 90;
    proxy_buffer_size 4k;
    proxy_buffers 4 32k;
    proxy_busy_buffers_size 64k;
    proxy_temp_file_write_size 64k;
    ##End Proxy Settings
}

反向代理

代理主要配置的有
举自己测过的两个例子
1.代理乌云

        location / {
            proxy_pass http://wooyun.org;
            proxy_cookie_domain wooyun.org hd3;
            proxy_buffering off;
            proxy_set_header X-Real-IP $http_user_agent;
            proxy_set_header User-Agent $http_user_agent;
            proxy_set_header referer "http://wooyun.org$request_uri";

        }

2.代理百度

        location / {
                proxy_redirect https://www.baidu.com/ /;
                proxy_cookie_domain baidu.com hd3;
                proxy_pass https://www.baidu.com;
                proxy_set_header Host "www.baidu.com";
                proxy_set_header Accept-Encoding "";
                proxy_set_header User-Agent $http_user_agent;
                proxy_set_header Accept-Language "zh-CN";
                sub_filter www.baidu.com hd3;
                sub_filter_once off;
                proxy_buffering on;
                }

这里需要说一下,由于百度会自动跳转到https://www.baidu.com/,所以我们需要用proxy_redirect来重定向一下

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值