首页   快速返回

nginx配置详解     所属分类 nginx
每个指令必须以分号结束!!!


# 用户和组,默认为nobody nobody 
#user nginx nginx;

#worker进程数,默认为1    通常设置为CPU数量或者2倍于CPU   
#worker_processes 2;  

#指定进程pid文件
#pid /nginx/pid/nginx.pid; 

# 进程可以打开的最大描述符数
worker_rlimit_nofile 204800; 

# 设置日志路径,级别。可以放入全局块,http块,server块,
# debug|info|notice|warn|error|crit|alert|emerg
error_log log/error.log debug;  


events {

    #设置网路连接处理,防止惊群现象发生,默认为on
    # 惊群现象:一个网路连接到来,多个睡眠的进程被同时叫醒,但只有一个进程能获得链接,这样会影响系统性能。
    accept_mutex on;  
    #设置一个进程是否同时接受多个网络连接,默认为off
    multi_accept on;  
    
    #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
    # linux建议epoll,FreeBSD建议采用kqueue
    # Select、poll属于标准事件模型,如果当前系统不存在更有效的方法,nginx会选择select或poll
    #use epoll;  
    
    #最大连接数,默认为512   
    # 理论上单台nginx服务器的最大连接数 worker_processes*worker_connections 
    worker_connections  1024;    
}


http {

    # 文件扩展名与文件类型映射表
    include       mime.types;
    
    # 默认文件类型,默认为text/plain   
    default_type  application/octet-stream; 
    
    # 关闭访问日志
    #access_log off;   
    # 自定义格式  
    log_format myFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for';
    #combined为日志格式的默认值
    access_log log/access.log myFormat; 
    
    
    #允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。 
    sendfile on;  
    
    #每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限。
    sendfile_max_chunk 100k; 
    
    #连接保持时间,默认为75s,可以在http,server,location块。    
    keepalive_timeout 65; 
    
    tcp_nodelay on;
    # send_timeout 25;
    
    # 后端服务器连接超时
    proxy_connect_timeout 90; 
    proxy_read_timeout 180; 
    proxy_send_timeout 180;

     
    upstream mysvr {   
      server 192.168.1.10:8000;
      #热备
      server 192.168.1.11:8000 backup;  
    }
    
    #错误页
    error_page 404 https://www.codefun00.xyz; 
    server {
        #单连接请求上限次数  
        keepalive_requests 120; 
        #监听端口
        listen       4545;  
        #监听地址    
        server_name  127.0.0.1;   
            
        #请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写。
        location  ~*^.+$ {   
           #根目录    
           #root path; 
           #设置默认页
           #index vv.txt;  
           #请求转向mysvr 定义的服务器列表
           proxy_pass  http://mysvr;  
           
           #拒绝的ip
           deny 127.0.0.1;  
           #允许的ip  
           allow 192.168.1.11;          
        } 
    }
}


$remote_addr 与 $http_x_forwarded_for  客户端ip地址;
$remote_user 客户端用户名称;
$time_local  访问时间与时区;
$request   请求的url与http协议;
$status  请求状态;成功为200;
$body_bytes_sent 发送给客户端主体内容大小;
$http_referer  访问来源
$http_user_agent 客户端浏览器的相关信息;



虚拟机配置
server.server_name 配置域名

upstream 4种负载均衡策略


轮询(默认)  后端服务器down掉,会自动剔除
weight
upstream bakend {
server 192.168.0.10 weight=10;
server 192.168.0.11 weight=10;
}

ip_hash

upstream bakend {
ip_hash;
server 192.168.0.10:8000;
server 192.168.0.11:9000;
}

fair(第三方) 响应时间短的优先分配

url_hash(第三方)

upstream backend {
server 192.168.0.10:8000;
server 192.168.0.11:9000;
hash $request_uri;
hash_method crc32;
}




upstream bakend{
ip_hash;
server 127.0.0.1:9090 down;
server 127.0.0.1:8080 weight=2;
server 127.0.0.1:6060;
server 127.0.0.1:7070 backup;
}

down 当前server不参与负载
backup 热备 其它所有的非backup机器down或者忙的时候,请求backup机器





系统分页大小查看
getconf PAGESIZE
4096

上一篇     下一篇
mysql运维命令

nginx安装及配置

nginx知识点整理

nginx超时配置

nginx状态监控

使用prometheus和grafana监控JVM