# 定义nginx运行的用户和用户组
# user nobody;
# nginx进程数,建议设置为等于cpu总核心数。
worker_processes 2;
#全局错误日志定义类型 [debug | info | notice | warn | error | crit]
error_log logs/error.log error;
#进程文件
# pid logs/nginx.pid;
#一个ngixn进程打开的最多的文件描述符数目,理论值应该是最多打开文件数与nginx进程数相处,但是nginx请求并不均匀,建议与ulimit -n 保持一致
worker_rlimit_nofile 65535;
#工作模式与连接数上线
events {
#参考事件模型,use [kqueue | rtsig | epoll | /dev/poll | select | poll]; epoll模型是linux2.6以上版本内核中的高性能I/O模型;
use select;
#单个进程最大连接数(最大连接数=连接数*进程数)
worker_connections 65535;
}
#设定http服务器
http {
#文件拓展名与文件类型映射表
include mime.types;
#默认文件类型
default_type application/octet-stream;
#默认编码
charset utf-8;
#服务器名称的hash表大小
server_names_hash_bucket_size 128;
# 设定请求缓存
client_header_buffer_size 64k;
# 设定请求最大缓存
large_client_header_buffers 4 64k;
# 上传文件大小限制, 设置http下为通用行设定,如果想额外设定可以在location中进行
client_max_body_size 50m;
# 缓存路径
# 语法 proxy_cache_path path [levels=levels] keys_zone=name:size [inactive=time] [max_size=size]
# path 设置缓存文件存放的路径
# levels 设置目录层级,如levels=1:2,表示有两级子目录,第一个目录名取md5值的倒数第一个值,第二个目录名取md5的第2和第三个值 1:1 1:2 2:1 2:2
# keys_zone 设置内存zone的名字和大小,如keys_zone=my_zone:10m
# inactive 设置缓存多长时间就是小,当硬盘上的缓存数据在改时间段内没有被访问过,就会失效,该数据就会被删除,默认10s
# max_size 设置硬盘中最多可以缓存多少数据,当达到该数值时,nginx会删除最少访问的数据
# proxy_cache_path F:\logs levels=1:2 keys_zone=name:1m inactive=2m max_size=100m;
# 语法:proxy_cache zone|off
# 默认为off,即关闭proxy_cache功能,zone为用于存放缓存的内存区域名称
# proxy_cache name;
#开启高效文件传输模式,sendfile指定指定nginx是否调用sendfile函数来输出文件,对于普通应用设为on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,减低系统的负载。注意:如果图片显示不正常把这个改成off
sendfile on;
# 开启目录列表访问,适合下载服务器,默认关闭
# autoindex on;
# 防止网络阻塞
tcp_nopush on;
# 防止网络阻塞
tcp_nodelay on;
# 长连接超时时间,单位秒
keepalive_timeout 120;
# open_log_file_cache max=N [inactive=time] [min_uses=N] [valid=time];
# max 设置缓存中最多容纳的文件描述符数量,如果被占满,采用LRU算法将描述符关闭。
# inactive 设置缓存存活时间,默认是10s。
# min_uses 在inactive时间段内,日志文件最少使用几次,该日志文件描述符记入缓存,默认是1次。
# valid:设置多久对日志文件名进行检查,看是否发生变化,默认是60s。
# off:不使用缓存。默认为off。
open_log_file_cache max=1000 inactive=20s min_uses=1;
# 日志格式设定
log_format access '$remote_addr - $remote_user [$time_local] "$request"'
'$status $body_bytes_sent "$http_referer"'
'$http_user_agent" $http_x_forwarded_for';
# access_log path [format [buffer=size] [gzip[=level]] [flush=time] [if=condition]];
# path 日志存放位置
# format 指定日志的格式,默认使用预定义的combined
# buffer 用来指定日志写入时的缓存大小,默认64k
# gzip 日志写入前先进行压缩,压缩率可以指定,从1到9数值越大压缩比越高,同时压缩的速度也越慢,默认是1
# flush 设置缓存的有效时间,如果超过flush指定的时间,缓存中的内容将被清空
# if 条件判断,如果指定的条件计算为0或空字符串,请求不被写入日志
# 一般的场景中,这些参数都无须配置,极端优化时才可能会考虑这些参数
# access_log off中的off,表示不记录访问日志。
access_log F:/logs/nginx-access.log access;
#FastCGI相关参数是为了改善网站的性能:减少资源占用,提高访问速度
#fastcgi_connet_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 128k;
#gzip模块设置
#开启gzip压缩输出
gzip on;
# 最小压缩文件大小
gzip_min_length 1k;
# 压缩缓冲区
gzip_buffers 4 16k;
# 压缩版本 默认1.1(前端如果是squid2.5使用1.0)
# gzip_http_version 1.0;
# 压缩等级
gzip_comp_level 2;
#需要压缩哪些响应类型的资源,多个空格隔开。不建议压缩图片及大文件(本身存在压缩或者效果不明显)
gzip_types text/plain application/x-javascript text/css application/xml;
#是否添加“Vary: Accept-Encoding”响应头
# gzip_vary on;
# 开启限制ip连接数的时候使用
# limit_zone crawler $binary_remote_addr 10m;
upstream souldomain.com {
#upstream的复杂均衡,weight是权重,可以根据及其配置定义权重.weight参数表示权重,权重越大被分配到的几率越大。
server localhost:9000 weight=1;
}
server {
listen *:80 default_server;
server_name _;
# 设定查看Nginx状态的地址
location /status {
stub_status on;
access_log on;
#auth_basic "NginxStatus";
#auth_basic_user_file confpasswd;
}
}
server {
# 监听
listen 9000;
# 域名,可以有多个,空格隔开
server_name localhost;
# index index.html index.htm index.php;
root /XX/XX;
# 文件缓存
#所有静态文件由nginx直接读取不经过tomcat或者resin
location ~.*.(htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|flv|mid|doc|ppt|pdf|xls|mp3|wma|xml)$ {
expires 15d;
}
location ~ .*.(js|css)?$ {
expires 1h;
}
# 定义虚拟主机的访问日志
#access_log logs/20200709.log access;
# 对"/" 启用反向代理
location / {
root C:\Users\cqy\Desktop\picture;
proxy_pass http://127.0.0.1:80;
proxy_redirect off;
# 设置请求头,可以自定义
proxy_set_header X-Real_IP $remote_addr;
# 后端的web服务器可以通过X-Forwarded-For获取用户真实IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 反向代理配置
proxy_set_header Host $host;
# 允许客户端请求的最大单文件字节数
client_max_body_size 10m;
# 缓冲区代理缓冲用户端请求的最大字节数
client_body_buffer_size 128k;
# nginx跟后端服务器连接超时时间(代理连接超时)
proxy_connect_timeout 90;
# 后端服务器数据回传时间(代理发送超时)
proxy_send_timeout 90;
# 连接成功后,后端服务器响应时间(代理接收超时)
proxy_read_timeout 90;
# 设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffer_size 4k;
# proxy_buffers缓存区,网页平均在32K下
proxy_buffers 4 32k;
# 高负荷下缓冲大小(proxy_buffers * 2)
proxy_busy_buffers_size 64k;
# 设定缓存文件夹大小,大于这个值,将从upstream服务器传
proxy_temp_file_write_size 64k;
proxy_set_header test paroxy_test;
}
# 本地动静分离反向代理设置
location ~.(jsp|jspx|do)?$ {
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_pass http://localhost:8080;
}
}
}
nginx基础配置(详解)
最新推荐文章于 2024-06-05 09:12:10 发布