首页 > 系统相关 >nginx.conf样本

nginx.conf样本

时间:2023-10-07 18:23:46浏览次数:36  
标签:conf header 样本 server nginx limit proxy timeout log

#user  nobody;
worker_processes  1;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

#这个指令是指当一个nginx 进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit -n)与nginx 进程数相除,但是nginx 分配请求并不是那么均匀,所以最好与ulimit -n 的值保持一致
worker_rlimit_nofile 65535;
events {
    #默认最大的并发数为1024,如果你的网站访问量过大,已经远远超过1024这个并发数,那你就要修改worker_connecions这个值 ,这个值越大,并发数也有就大
    worker_connections  1024;
}

http {
    geo $limit {
        default 1;
        10.0.0.0/8 0;
        192.168.0.0/24 0;
    }
    map $limit $limit_key {
        0 "";
        1 $binary_remote_addr;
    }

    #限制连接数
    limit_conn_zone $binary_remote_addr zone=perip:10m;
    limit_conn_zone $server_name zone=preserver:10m;
    
    #固定的速度提供服务(2r/s)
    limit_req_zone binary_remote_addr zone=mylimit:10m rate=2000r/s;
    
    # 不显示 nginx 版本号
    server_tokens Off;
    
    include       mime.types;
    default_type  application/octet-stream;

    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;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    client_header_timeout 150;
    client_body_timeout 1800;
    send_timeout 150;
    proxy_read_timeout 1800;   
    proxy_hide_header X-Powered-By;
    proxy_hide_header Server; 
    
    client_max_body_size 1024m;

    gzip               on;
    gzip_min_length    10k;
    gzip_buffers       4 16k;
    gzip_http_version  1.0;
    gzip_comp_level    2;
    gzip_types         text/plain application/x-javascript text/css application/xml text/javascript image/jpeg image/gif image/png image/jpg;
    #vary header支持,该选项可以让前端的缓存服务器缓存经过gzip压缩的页面
    gzip_vary          on;
    gzip_disable       "MSIE [1-6]";

    upstream tomcat_servers{
        server 10.1.1.1:22080 weight=1;
        server 10.1.1.2:22080 weight=1;
        server 10.1.1.3:22080 weight=1;
    }
    
    server {
        #表示限制单个IP同时最多能持有20个连接。
        limit_conn perip 40;
        #表示虚拟主机(server) 同时能处理并发连接的总数为100。
        limit_conn preserver 1000;
        
        #burst 表示在超过设定的访问速率后能额外处理的请求数。
        #当 rate=2r/s 时,表示每500ms 可以处理一个请求。
        #burst=5时,如果同时有10个请求到达,nginx 会处理第1个请求,剩余9个请求中,会有5个被放入队列,剩余的4个请求会直接被拒绝。
        #然后每隔500ms从队列中获取一个请求进行处理,此时如果后面继续有请求进来,如果队列中的请求数目超过了5,会被拒绝,不足5的时候会添加到队列中进行等待。
        #nodelay 表示不延迟。设置 nodelay 后,第一个到达的请求和队列中的请求会立即进行处理,不会出现等待的请求。
        limit_req zone=mylimit burst=1000 nodelay;
        
        listen 80;
        listen 9443 ssl;
        server_name localhost;
        ssl_certificate ../cert/cert.pem;
        ssl_certificate_key ../cert/cert.key;
        ssl_session_timeout 30m;
        ssl_protocols TLSv1.2 TLSv1.3;
        ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-CHACHA20-POLY1305;
        ssl_prefer_server_ciphers off;            
     #   控制 HTTP 请求头部的缓冲区大小
        large_client_header_buffers 4 16k;

     #  开启HTTP严格传输安全HSTS
        add_header Strict-Transport-Security "max-age=30000000; preload";

        charset utf-8;

        if ( $scheme = http ) {
            return 301 https://$host:9443$request_uri;
        }
        
        location / {
            proxy_pass http://tomcat_servers;
            proxy_set_header Host $http_host;
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Forwarded-Proto https;
            proxy_redirect http:// https://;
 #           proxy_cookie_path / "/; secure; SameSite=Lax";
            client_max_body_size 600m;
            client_body_buffer_size 128k;
            proxy_connect_timeout 600;
            proxy_read_timeout 600;
            proxy_send_timeout 600;
            proxy_buffer_size 64k;
            proxy_buffers   4 32k;
            proxy_busy_buffers_size 64k;
            proxy_temp_file_write_size 64k;
        }
        
        location /status668887655678tyuiohghjkjhhjwefjkasdffqwerqwff {
            allow 127.0.0.1;
            deny  all;
            stub_status on;
            access_log logs/status.log;
            auth_basic "NginxStatus";
        }

        error_page  404              /404.html;
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
    }
}

 

标签:conf,header,样本,server,nginx,limit,proxy,timeout,log
From: https://www.cnblogs.com/shichq/p/17747137.html

相关文章

  • Flask审计+Nginx读取
    来自:[SUCTF2019]Pythonginx打开还是源码,直接审计:fromflaskimportFlask,Blueprint,request,Response,escape,render_templatefromurllib.parseimporturlsplit,urlunsplit,unquotefromurllibimportparseimporturllib.requestapp=Flask(__name__)#In......
  • nginx实现后端tomcat的负载均衡调度
    1.负载均衡主机和网络地址规划10.0.0.152proxy.magedu.orgnginx10.0.0.150t1.magedu.orgtomcat110.0.0.160t2.magedu.orgtomcat2#只需在10.0.0.52的nginx主机上实现域名解析[root@localhost~]#cat/etc/hosts127.0.0.1localhost......
  • 编译安装nginx,实现多域名 https
     #编译安装nginx[root@centos8~]#yum-yinstallgccpcre-developenssl-develzlib-devel[root@centos8~]#useradd-s/sbin/nologinnginx[root@centos8~]#cd/usr/local/src/[root@centos8src]#wgethttp://nginx.org/download/nginx-1.18.0.tar.gz......
  • nginx负载均衡中常见的算法及原理有哪些?
     #1)轮询(round-robin) 轮询为负载均衡中较为基础也较为简单的算法,它不需要配置额外参数。假设配置文件中共有台服务器,该算法遍历服务器节点列表,并按节点次序每轮选择一台服务器处理请求。当所有节点均被调用过一次后,该算法将从第一个节点开始重新一轮遍历。 特点:由于......
  • GEE:获取sentinel2指定区域多个单景影像的值(样本点提取)
    简介本教程的主要目的是获取指定单景影像,然后获取指定波段的影像值,按照获取指定波段的影像进行值提取至点,因为这里暂时没有好的方法对哨兵数据的具体属性值进行提取,所以在筛选哨兵影像的时候,需要手动获取每一景影像的id,然后按照单一影像多波段的组合来实现整体的值提取至点,......
  • 低代码平台如何借助Nginx实现网关服务
    摘要:本文由葡萄城技术团队于博客园原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。前言在典型的系统部署架构中,应用服务器是一种软件或硬件系统,它承载着应用程序的核心逻辑。它接收客户端的请求并处理相应的业务逻辑、数......
  • git 批量操作/处理冲突/conflict
    https://www.cnblogs.com/JourneyOfFlower/p/16650697.html......
  • This generated password is for development use only. Your security configuration
    问题描述在我加上spring-boot-starter-security的依赖之后,启动项目报出来这样的错误:问题解决在启动类的注解上,加上这么一段代码就ok啦!启动成功:......
  • i3 config
    1#Thisfilehasbeenauto-generatedbyi3-config-wizard(1).2#Itwillnotbeoverwritten,soedititasyoulike.3#4#Shouldyouchangeyourkeyboardlayoutsometime,delete5#thisfileandre-runi3-config-wizard(1).6#78#......
  • git config --global core.autocrlf input
    我们一般希望远程仓库中的代码为LF,就用: gitconfig--globalcore.autocrlfinput 就ok了。 gitconfig--globalcore.autocrlfinput这是一个Git的配置命令,它的作用是告诉Git在检出代码时不要自动将行尾转换为CRLF(Windows风格的换行符),而是保留原来的LF(Unix风格的换行符)。......