设为首页 收藏本站
查看: 731|回复: 0

[经验分享] nginx配置文件详解

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-6-24 08:58:17 | 显示全部楼层 |阅读模式
  Nginx的配置文件nginx.conf存放在nginx的安装目录的conf下,整个配置文件是以block的形式组织的。整个配置文件中Main命令位于最高层,在Main层下面可以有Event、HTTP等级层,而在HTTP层中又包含server层,即server block,server block中又可分为location层,并且一个server block中可以包含多个location block。Nginx配置文件主要分成四个部分:main(全局设置)、server(主机设置)、upstream(负载均衡设置)和location(URL匹配特定位置的设置)。main部分设置的命令将影响其他所有设置;server部分的命令只要用于指定主机和端口;upstream命令主要勇于负载均衡,设置一系列的后端服务器;location部分用于匹配网页位置。这死者之间的关系形式:server继承main,location继承server,upstream既不会继承其他设置也不会被继承。

下面这段是全局属性配置

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
//user指定nginx的worker进程运行的用户及用户组,默认是nobody账号运行
user nobody nobody;

//指定nginx开启的进程数
worker_processes 2;

//定义全局日志错误日志文件,日志输出级别有debug、info、notice、warn、error、crit可供选择
error_log /usr/local/nginx/logs/nginx_error.log crit;

//指定进程id的存储文件位置
pid /usr/local/nginx/logs/nginx.pid;

//用于绑定worker进程和cpu,Linux内核2.4以上可用
worker_rlimit_nofile 51200;

//设定nginx的工作模式及连接上限
//use指定nginx的工作模式,nginx支持的工作模式有select、poll、kqueue、epoll、rtsig和/dev/poll
//其中select和poll都是标准工作模式,kqueue和epoll是高效的工作模式,对于linux系统,epoll是首选
//worker_connections用于定义nginx每个进程的最大连接数,默认是1024。最大连接数由 worker_processes
//和worker_connections决定,即max_client=worker_processes*worker_connections
//进程的最大连接数受linux系统进程的最大打开文件数限制,在执行操作系统命令"ulimit -n 65536"
//后worker_connections的设置才能生效
events
{
    use epoll;
    worker_connections 6000;
}



下面这段是nginx对HTTP服务器相关属性配置:
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
http
{
//include主模块命令,实现对配置文件所包含文件的设定,可以减少配置文件的复杂度。类似于apache中的include方法
include mime.types;

//default_type属于HTTP核心模块命令,这里设定默认的二进制流,也就是访当文件类型未定义
//时使用这种方式,例如,在没有配置php环境时,nginx是不予解析的,此时,用浏览器访问
//php文件就是出现下载窗口
default_type application/octet-stream;

server_names_hash_bucket_size 3526;
server_names_hash_max_size 4096;

//log_format指定日志输出格式,combined_realip为日志输出名称
log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'
'$host "$request_uri" $status' '"$http_referer" "$http_user_agent"';

//用于设定允许客户端请求的最大的单个文件字节数
client_max_body_size 10m;

//用于指定客户端请求头的headerbuffer大小。对于大多数请求,1KB的缓冲区大小已经足够,
//如果自定义了消息头或有更大的cookie,可以增加缓冲区大小
client_header_buffer_size 1k;
client_body_buffer_size 256k;

//用于指定客户端请求中较大的消息头的缓存最大数量和大小,4位个数,128K大小,最大缓存
//为4个128K
large_client_header_buffers 8 4k;

//用于开启高效文件传输模式。将tcp_nopush和tcp_nodelay另个命令设置为on用于放置网络阻塞
sendfile on;
tcp_nopush on;
tcp_nodelay on;

//设置客户端连接保持活动的超时时间。超过这个时间后,服务器会关闭该连接
keepalive_timeout 10;

//设置客户端请求头读取超时时间,如果超过这个时间,客户端还没有发送任何数据,nginx
//将返回“Request time out(408)”错误
client_header_timeout 10;

//设置客户端请求主题读取超时时间,如果超过这个时间,客户端还没有发送任何数据,nginx
//将返回“Request time out(408)”错误,默认值是60
client_body_timeout 10;

//指定相应客户端的超时时间,这个超时仅限于两个连接活动之间的时间,如果超过这个时间,
//客户端没有任何活动,nginx将会关闭连接
send_timeout 10;

connection_pool_size 256;
request_pool_size 4k;
output_buffers 4 32k;
postpone_output 1460;
client_body_temp_path /usr/local/nginx/client_body_temp;
proxy_temp_path /usr/local/nginx/proxy_temp;
fastcgi_temp_path /usr/local/nginx/fastcgi_temp;
fastcgi_intercept_errors on;



下面这段是HTTPGzip模块在nginx配置中的相关属性设置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//用于设置开启或者关闭gzip模块
gzip on;

//设置允许压缩的页面最小字节数,页面字节数从header头的Content-Length中获取。默认值
//是0,不管页面多大都进行压缩。建议设置成大于1KB的字节数,小于1KB可能会越压缩越大
gzip_min_length 1k;

//表示申请4个单位16KB的内存作为压缩结果流缓存,默认申请是与原始数据大小相同的内存
//空间Kauai存储gzip压缩结果
gzip_buffers 4 16k;

//设置识别http协议版本,默认是1.1
gzip_http_version 1.1;

//指定压缩比例,1表示压缩比最小,处理速度最快,9表示压缩比最大,传输速度最快,但处
//速度最慢,也比较消耗内存
gzip_comp_level 2;

//指定压缩的类型,无论是否指定,“text/html”类型总会被压缩的
gzip_types text/plain application/x-javascript text/css text/htm application/xml;

//让前端的缓存服务器缓存经过gzip压缩的页面,例如用squid缓存经过的nginx压缩的数量
gzip_vary on;



下面这段是虚拟主机的配置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//定义虚拟主机开始的关键字
server
{
//指定虚拟主机的服务端口
listen 80;

//用于指定ip地址或者域名,多个域名之间用空格分开
server_name 192.168.8.10

//设定访问的默认首页地址
index index.html index.htm index.php index.jsp;

//指定虚拟主机的网页根目录,这个目录可以是相对路径,也可以是绝对路径
root /usr/local/nginx/html/test;

//设置网页的默认编码格式
charset gb2313;

//指定虚拟主机的访问日志存放路径,最后的main指定访问日志的输出格式
access_log logs/www.test.com.log main;






运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-234407-1-1.html 上篇帖子: 整合nginx,tomcat,mysql的安装与配置 下篇帖子: nginx1.8.0安装 配置文件
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表