nginx 一些配置
worker_processes 4; #工作进程数 events { #epoll是多路复用IO(I/O Multiplexing)中的一种方式, #仅用于linux2.6以上内核,可以大大提高nginx的性能 #use epoll; #我是win上用的所以屏蔽了 accept_mutex on; #设置网路连接序列化,防止惊群现象发生,默认为on multi_accept on; #设置一个进程是否同时接受多个网络连接,默认为off worker_connections 1024; #单进程最大并发链接数 } http { #设定mime类型,类型由mime.type文件定义 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 指令指定 nginx 是否调用 sendfile 函数(zero copy 方式)来输出文件, #对于普通应用,必须设为 on, #如果用来进行下载等应用磁盘IO重负载应用,可设置为 off, #以平衡磁盘与网络I/O处理速度,降低系统的uptime. sendfile on; #tcp_nopush on; #连接超时时间 #keepalive_timeout 0; keepalive_timeout 65; tcp_nodelay on; #开启gzip压缩 gzip on; gzip_disable "MSIE [1-6]."; #设定请求缓冲 client_header_buffer_size 128k; large_client_header_buffers 4 128k; #设定虚拟主机配置 server { #侦听80端口 listen 80; #定义使用 www.nginx.cn访问 server_name www.nginx.cn; #定义服务器的默认网站根目录位置 root html; #设定本虚拟主机的访问日志 access_log logs/nginx.access.log main; #默认请求 location / { #定义首页索引文件的名称 index index.php index.html index.htm; } # 定义错误提示页面 error_page 500 502 503 504 /50x.html; location = /50x.html { } #静态文件,nginx自己处理 location ~ ^/(images|javascript|js|css|flash|media|static)/ { #过期30天,静态文件不怎么更新,过期可以设大一点, #如果频繁更新,则可以设置得小一点。 expires 30d; } #PHP 脚本请求全部转发到 FastCGI处理. 使用FastCGI默认配置. location ~ .php$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } #禁止访问 .htxxx 文件 location ~ /.ht { deny all; } } }
#http里面加入 限制单个IP的并发连接数 perip 是名字可以随便定义 limit_conn_zone $binary_remote_addr zone=perip:10m; #perserver 是名字 `limit_conn 名字 数量` limit_conn_zone $server_name zone=perserver:10m; #$binary_remote_addr 限制同一客户端ip地址 #$server_name 是限制同一server最大并发数 #server里面加入 limit_conn perip 10; #限制单个ip最大连接数是10个 limit_conn perserver 100; #限制与该server的最大连接数 #限制上传大小50m client_max_body_size 50m; #和limit_rate一起使用 下载速度超过10M后速度限制为128k/s limit_rate_after 10m; #限制下载速度为128k/s limit_rate 128k; #让http请求重定向到https请求 error_page 497 https://$host$uri?$args;
#https listen 80; listen 443 ssl; server_name www.chao.com; #ssl on; ssl_certificate www.chao.com.cer; ssl_certificate_key www.chao.com.key; ssl_session_cache shared:SSL:1m; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #nginx 1.13.0以上版本设置为(1.13之前的版本不支持TLSv1.3) 主要TLSv1.0有漏洞不安全 ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
REM 启动nginx.bat php @echo off set php_home=d:/php-7.1.7-nts-Win32-VC14-x64 set nginx_home=d:/wnmp/nginx-1.14.0 REM Windows 下无效 REM set PHP_FCGI_CHILDREN=5 REM 每个进程处理的最大请求数,或设置为 Windows 环境变量 set PHP_FCGI_MAX_REQUESTS=1000 echo Starting PHP FastCGI... RunHiddenConsole.exe %php_home%/php-cgi.exe -b 127.0.0.1:9000 -c %php_home%/php.ini echo Starting nginx... RunHiddenConsole.exe %nginx_home%/nginx.exe -p %nginx_home%
location /web/ { // nginx 支持history配置 try_files $uri $uri/ /web/index.html; }
location /web/ { #默认位off 表示忽略带下划线的参数 #想要接收到带下划线的请求头参数 则设置为on underscores_in_headers on }
location /web { // alias 和 root 配置问题 // 访问 www.test.com/web/index.html // 实际访问路径为 /wwwroot/www/web/index.html // root 的配置是相对与/的根路径 root /wwwroot/www; //alias /wwwroot/www/web; index index.html; } // 对于根路径 root和alias配置一样 location / { root /wwwroot/www; //alias /wwwroot/www; }