nginx基础配置(详解)

# 定义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 日志写入前先进行压缩,压缩率可以指定,从19数值越大压缩比越高,同时压缩的速度也越慢,默认是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;
	}      
  }
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值