Oct1a

Nginx知识梳理

Nginx知识梳理

进程模型

  • master 主进程

  • worker 子进程

默认连接数为1024,具体根据硬件信息配置

配置

vim nginx.conf
events{
    # 默认使用epoll,可不写
    use epoll;
    # 每个worker允许连接的客户端最大连接数
    worker_connections: 10240;
}

为何nginx性能会比较高?主要是通过epoll模型处理

其实是类似于一种多路复用的模式

nginx.conf 配置结构

main 全局配置

event 配置工作模式以及连接数

http http模块相关配置

server 虚拟主机配置,可以有多个

location 路由规则,表达式

upstream 集群,内网服务器

配置结构

user  root; # 用户,默认nobody,用于生成worker的用户
worker_processes auto; # 进程数量,看cpu数量
error_log  /www/wwwlogs/nginx_error.log  crit; # 错误日志 debug,info,notice,warn error,crit
pid        /www/server/nginx/logs/nginx.pid; # 进程号
worker_rlimit_nofile 51200;

events
    {
        use epoll; # 默认使用epoll,可不写
        worker_connections 51200; # 每个worker允许连接的客户端最大连接数,根据硬件配置来决定
        multi_accept on;
    }

http
    {
        include       mime.types; # 文件类型        
        default_type  application/octet-stream; # 默认type类型
        
        # 日志格式化
        #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; # 访问日志
        
        server_names_hash_bucket_size 512;
        client_header_buffer_size 32k;
        large_client_header_buffers 4 32k;
        client_max_body_size 50m;

        # 开启可高效传输
        sendfile   on; 
        tcp_nopush on; # 数据包累计到一定数量后发送

        keepalive_timeout 60; # 客服端连接服务器超时时间,如果设置为0的话,每个请求都增加一个链接数

        tcp_nodelay on;

        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
        fastcgi_buffer_size 64k;
        fastcgi_buffers 4 64k;
        fastcgi_busy_buffers_size 128k;
        fastcgi_temp_file_write_size 256k;
        fastcgi_intercept_errors on;

        # 压缩配置
        gzip on; 
        gzip_min_length  1k;
        gzip_buffers     4 16k;
        gzip_http_version 1.1;
        gzip_comp_level 2;
        gzip_types     text/plain application/javascript application/x-javascript text/javascript text/css application/xml;
        gzip_vary on;
        gzip_proxied   expired no-cache no-store private auth;
        gzip_disable   "MSIE [1-6]\.";

        limit_conn_zone $binary_remote_addr zone=perip:10m;
        limit_conn_zone $server_name zone=perserver:10m;

        server_tokens off;
        access_log off;

server
    {
        listen 888; # 监听端口
        server_name localhost; # ip,域名
        index index.html index.htm index.php;
        root  /www/server/phpmyadmin;

        #error_page   404   /404.html;
        include enable-php.conf;

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

        location ~ /\.
        {
            deny all;
        }

        access_log  /www/wwwlogs/access.log;
    }
include /www/server/panel/vhost/nginx/*.conf;
}

本作品采用 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议 进行许可。