#定义nginx的用户和用户组
#user zhyyt zhyyt;
#nginx进程数,建议设置为cpu总核心数,该配置决定工作进程(worker process)的数量
worker_processes 12;
#全局日志位置和日志级别定义,[debug | info | notice | warn | error | crit]
#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;
#工作模式与一个nginx的链接上限
events {
#参考时间模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模型是Linux 2.6以上版本内核中的高性能网络I/O模型,如果跑在FreeBSD上面,就用kqueue模型。
use epoll;
#单个进程最大连接数,可以设置的大点,十万级。(整个nginx最大连接数=worker_connetions*worker_processes)
worker_connections 65535;
}
#设定http服务器,处理http请求
http {
#文件扩展名与文件类型映射表,将文件后缀类型映射为浏览器能识别的数据类型,放在response的content-Type中,浏览器根据此类型决定以何种方式显示此数据
include mime.types;
default_type application/octet-stream; #默认文件类型
charset utf-8; #默认文件编码
server_names_hash_bucket_size 128; #服务器名字的hash表大小
client_header_buffer_size 32k; #上传文件大小限制
large_client_header_buffers 4 64k; #设定请求缓
client_max_body_size 8m; #设定请求缓
sendfile on; #开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处>理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off。
autoindex on; #开启目录列表访问,适合下载服务器,默认关闭。
tcp_nopush on; #防止网络阻塞
tcp_nodelay on; #防止网络阻塞
keepalive_timeout 120; #长连接超时时间,单位是秒
gzip on; #开启gzip压缩输出,开启nginx gzip压缩后,网页、css、js等静态资源的大小会大大的减少,从而可以节约大量的带宽,提高传输效率,给用户快的体验。虽然会消耗cpu资源,但是为了给用户更好的体验是值得的。
gzip_min_length 1k; #最小压缩文件大小
gzip_buffers 4 16k; #压缩缓冲区
gzip_http_version 1.0; #压缩版本(默认1.1,前端如果是squid2.5请使用1.0)
gzip_comp_level 2; #压缩等级
gzip_types text/plain application/x-javascript text/css application/xml; #压缩类型,默认就已经包含text/html,所以下面就不用再写了,写上去也不会有问题,但是会有一个warn。
gzip_vary on;
#access_log logs/access.log main; #日志文件位置
#upstream配置负载均衡,负载均衡有多种策略,ip_hash、轮询、权重等
upstream zhyytUpstream{
ip_hash;
server 127.0.0.1:9090;
server 127.0.0.1:9092
}
#虚拟服务的配置
server {
listen 80; #监听的本机端口
server_name www.haha.com www.zhyyt.com; #域名配置,域名可以有多个,用空格隔开
#charset koi8-r;
#access_log logs/host.access.log main;
#配置匹配的请求路径以及跳转的地址
location / {
root html;
index index.html index.htm;
}
#匹配/zhyyt/路径
location /zhyyt/ {
proxy_pass http://zhyytUpstream; #转发的地址
proxy_set_header Host $host:$server_port; #设置转发的请求头
}
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html; #错误的跳转页面
location = /50x.html {
root html;
}
}
}
#stream配置,用来处理tcp/udp协议层请求,例如socket请求
stream{
#upstream负载
upstream CSS{
server 172.19.72.120:19877 max_fails=3 fail_timeout=70s;
server 172.19.72.120:19878 max_fails=3 fail_timeout=70s;
}
#stream服务配置
server {
listen 19877 udp; #监听的端口,udp协议
proxy_connect_timeout 1s; #链接超时时间
proxy_timeout 120s; #请求超时时间
proxy_pass CSS; #转发的地址
}
}