总字符数: 4.91K

代码: 5.06K, 文本: 无

预计阅读时间: 22 分钟

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
# 以哪个用户,运行nginx应用
# nobody是个低权限用户,为了安全
# user nobody;
# nginx进程数启动进程,通常设置成cpu的核数
# 查看cpu核数
# cat /proc/cpuinfo
worker_processes 1;
# 全局错误日志
# nginx的error_log类型如下(从左到右: debug最详细crit最少):
# [debug info notice warn error crit ]
# 例如: error_log logs/nginx_error.log crit;
# 解释:日志文件存储在nginx安装目录下的 logs/nginx_error.log,错误类型为crit,也就是记录最少错误信息;
error_log logs/error.log;
error_log logs/notice.log notice;
error_log logs/info.log info;
# PID文件,记录当前启动的nginx的进程ID
pid logs/nginx.pid;
# 这个参数表示worker进程最多能打开的文件句柄数,基于liunx系统ulimit设置
# 查看系统文件句柄数最大值:ulimit -n
# Linux一切皆文件,所有请求过来最终目的访问文件,所以该参数值设置等同于liunx系统ulimit设置为优
worker_rlimit_nofile 65535;
# 工作模式及连接数上限
events {
# 网络模型高效(相当于建立索引查找结果),nginx配置应该启用该参数
# 但是仅用于linux2.6以上内核,可以大大提高nginx的性能
use epoll;
# 该参数表示设置一个worker进程最多开启多少线程数
# 优化设置应该等同于worker_rlimit_nofile设置值,表明一个线程处理一个http请求,同时可以处理一个文件数,各个模块之间协调合作不等待.
worker_connections 65535;
}
# 设定http服务器,利用它的反向代理功能提供负载均衡支持
http {
# 设定mime类型,类型由mime.type文件定义
# NIME(Multipurpose Internet Nail Extensions)多用途互联网邮件扩展类型.是设定某种扩展名的文件用一种应用程序来#打开的方式类型,当该扩展名文件被访问的时候,浏览器会自动使用指定应用程序来打开
include /etc/nginx/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/var/log/nginx/access.log
# sendfile
# 开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应用设为on,如果用来进行下载等应用磁盘I0重负载应用,可设置为off,以平衡磁盘与网络I/0处理速度,降低系统的负载.注意:如果图片显示不正常把这个改成off.
sendfile on;
#防止网络阻塞
tcp_nopush on;
#防止网络阻塞
tcp_nodelay on;
# 连接超时时间
# keepalive_timeout 0;
#长连接超时时间,单位是秒
keepalive_timeout 65;
# 开启gzip压缩
gzip on;
# IE6及以下禁止压缩
gzip_disable "MSIE [1-6]\.";
# 最小压缩文件大小
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;
# 给CDN和代理服务器使用,针对相同url,可以根据头信息返回压缩和非压缩副本
gzip_vary on;
# 设定请求缓冲
client_header_buffer_size 1k;# 上传文件大小限制
large_client_header_buffers 4 4k;# 设定请求缓存
# 设定负载均衡的服务器列表
upstream mysvr {
# weigth参数表示权值,权值越高被分配到的几率越大
server 192.168.8.1x:3128 weight=5;
server 192.168.8.2x:80 weight=1;
server 192.168.8.3x:80 weight=6;
}
upstream mysvr2 {
# weigth参数表示权值,权值越高被分配到的几率越大
server 192.168.8.x:8 weight=1;
server 192.168.8.x:8 weight=6;
}
# 虚拟主机的配置
server {
# 侦听80端口
listen 80;
# 设置编码
charset koi8-r;
# 定义使用www.xx.com访问域名可以有多个,用空格隔开
server_name www.xx.com;
# 设定本虚拟主机的访问日志
access_log logs/www.xx.com.access.log main;
#默认请求
location / {
#定义服务器的默认网站根目录位置
root /root;
# 定义首页索引文件的名称
index index.php index.html index.htm;
# 请求转向mysvr定义的服务器列
proxy_pass http://mysvr;
# 以下是一些反向代理的配置可删除.
proxy_redirect off;
# 后端的web服务器可以通过x-Forwarded-For获取用户真实IP
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# 允许客户端请求的最大单文件字节数
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;
}
# 定义错误提示页面
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /root;
}
# 本地动静分离反向代理配置
# 所有jsp的页面均交由tomcat或resin处理
location ~.(jspjspxdo)?$ {
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://127.0.0.1:8088;
}
# 静态文件,nginx自己处理
location ~ ^/(imagesjavascriptjscssflashmediastatic)/ {
root /var/www/virtual/htdocs;
# 过期30天,静态文件不怎么更新,过期可以设大一点,如果频繁更新,则可以设置得小一点.
expires 30d;
}
# 设定查看Nginx状态的地址
location /NginxStatus {
stub_status on;
access_log on;
auth_basic "NginxStatus";
auth_basic_user_file conf/htpasswd;
#htpasswd文件的内容可以用apache提供的htpasswd工具来产生.
}
#禁止访问.htxxx文件
location ~ /\.ht {
deny all;
}
}
}