Nginx配置文件功能注释

最近在学配置Nginx做均衡负载,首先最重要的是Nginx的配置文件,参考网上查到的资料,并结合实践,

将该配置文件的详细功能注释在这里做下笔记,方便今后查阅。

官方的Nginx Wiki(英文)   http://wiki.nginx.org/Configuration

环境:FreeBSD8.0+Nginx1.0.10_1

配置文件位置:   /usr/local/etc/nginx(所有配置文件都在此文件夹)

可执行文件位置: /usr/local/sbin/nginx

服务所在位置:   /usr/local/etc/rc.d/nginx

启动:     /usr/local/etc/rc.d/nginx start

停止:     /usr/local/etc/rc.d/nginx stop

重启:     /usr/local/etc/rc.d/nginx restart

测试配置: /usr/local/etc/rc.d/nginx configtest

重载配置: /usr/local/etc/rc.d/nginx reload

服务状态: /usr/local/etc/rc.d/nginx status

主配置文件nginx.conf注释:

#运行服务的用户及用户组 

user www www;

#服务开启的进程数 

worker_processes 5;

#全局错误日志及PID文件 

error_log logs/error.log notice; 

pid logs/nginx.pid;

#限定允许打开的文件的文件描述符长度,包括配置文件、日志文件等,如不指定,则使用操作系统默认值worker_rlimit_nofile 8192; 

#工作模式及连接数上限 

events { 

#工作模式有:

select(标准模式),

poll(标准模式),

kqueue(高效模式,适用FreeBSD 4.1+, OpenBSD 2.9+, NetBSD 2.0 and MacOS X), epoll(高效模式,适用Linux 2.6+,SuSE 8.2,), 

        /dev/poll(高效模式,适用Solaris 7 11/99+,HP/UX 11.22+)

eventport(IRIX 6.5.15+ 和 Tru64 UNIX 5.1A+) 

 use epoll;

 #单个进程允许的最大连接数,总连接数为:worker_processes*worker_connections 

 worker_connections 1024; }

#设定http服务器,利用它的反向代理功能提供负载均衡支持 

http { 

 #设定配置文件位置,这里的conf是指nginx.conf所在的目录,也可以用绝对路径指定其他地方的配置文件 

 include conf/mime.types; 

 include conf/fastcgi.conf; 

 #默认类型-8进制文件流 

 default_type application/octet-stream;

 #全局首页类型 

 index index.html index.htm index.php 

 #设定日志格式 

 log_format main '$remote_addr - $remote_user [$time_local] ' 

         '"$request" $status $bytes_sent ' 

         '"$http_referer" "$http_user_agent" ' 

 '"$gzip_ratio"'; 

 log_format download '$remote_addr - $remote_user [$time_local] ' 

 '"$request" $status $bytes_sent ' 

 '"$http_referer" "$http_user_agent" ' 

 '"$http_range" "$sent_http_content_range"';

 #是否激活sendfile()函数,比默认模式更有效率 

 sendfile on;

 #将HTTP响应头压缩到一个包中发送,仅在sendfile开启时才能配合使用 

 tcp_nopush on;

 #指定保存服务器名称的hash表的大小,存在多个域名或虚拟主机时指定

 server_names_hash_bucket_size 128;

 #设定用户请求header缓冲区大小 

 client_header_buffer_size 10k; 

 large_client_header_buffers 4 4k;

 #开启gzip模块,要求安装gzip 在运行./config时要指定 

 gzip on; 

 gzip_min_length 1100; 

 gzip_buffers 4 8k; 

 gzip_types text/plain; 

 output_buffers 1 32k; 

 postpone_output 1460;

 #设定访问日志 

 access_log logs/access.log main; 

 client_header_timeout 3m; 

 client_body_timeout 3m; 

 send_timeout 3m; 

 sendfile on; 

 tcp_nopush on; 

 tcp_nodelay on; 

 keepalive_timeout 65;

 #设定负载均衡的服务器列表 

 upstream backserver { 

#weigth参数表示权值,权值越高被分配到的几率越大 

#本例是指在同一台服务器,多台服务器改变ip即可 

server 127.0.0.1:8081 weight=5; 

server 127.0.0.1:8082; 

server 127.0.0.1:8083;

 } 

 #设定虚拟主机,默认为监听80端口 

 server { 

 listen 80; 

 server_name test.com www.test.com

 charset utf8; 

 #设定本虚拟主机的访问日志 

 access_log logs/test.com.log main;

 #如果访问 /images/*, /js/*, /css/* 资源,则直接取本地文件,不用转发。

 #但如果文件较多效果不是太好。 

 location ~ ^/(images|js|css)/ { 

 root /usr/local/testweb; 

 expires 30m; 

 }

 #对 "/" 启用负载均衡 

 location / { 

 proxy_pass http://backserver

 proxy_redirect off; 

 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; 

 proxy_connect_timeout 90; 

 proxy_send_timeout 90; 

 proxy_read_timeout 90; 

 proxy_buffer_size 4k; 

 proxy_buffers 4 32k; 

 proxy_busy_buffers_size 64k; 

 proxy_temp_file_write_size 64k; 

 }

 #设定查看Nginx状态的地址,在运行./config 要指定,默认是不安装的。 

 location /NginxStatus { 

 stub_status on; 

 access_log on; 

 auth_basic "NginxStatus"; 

 #是否要通过用户名和密码访问,测试时可以不加上。

 #conf/htpasswd 文件的内容用apache提供的htpasswd工具来产生即可 

 #auth_basic_user_file conf/htpasswd; 

 } 

}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏运维小白

keepass软件使用

下载地址 windows 地址 iphone直接在应用商店下载minikeepass 安卓版本——>需要翻墙下载 安装使用 在存放到一个目录下,然后点击安装,...

25910
来自专栏静默虚空的博客

nginx简易教程

nginx简易教程 概述 什么是nginx? Nginx (engine x) 是一款轻量级的Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代...

4147
来自专栏张戈的专栏

分享两种外链跳转方法,可避免权重流失。

前 2 天,在修改互推联盟自适应页面时,考虑到原先的跳转机制可能会对博友造成困扰,所以想修改成直接跳转模式,彻底抛弃之前强行重写 title 即 iframe ...

43210
来自专栏十月梦想

Apache2.4+PHP7.0环境搭建

开始学习PHP,环境搭建就是一个重要部分,折腾几个小时没搞定,各种问题,今天参考一下书上方法成功了,给大家分享一下。本次搭建结合PHP7.0+Apache2....

3822
来自专栏Flutter入门到实战

Flutter填坑全面总结

Flutter是一个新的跨平台开发的工具,博主也玩了一段时间,一步步的踩着坑摸石头过河,这其中受尽了各种各样的坑,各种谷歌,stackoverflow,Flut...

5952
来自专栏Python爬虫与算法进阶

学习Git(二)基本操作

Git 基础操作 1. 创建版本库 什么是版本库呢?版本库又名仓库,英文名 repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被 G...

36212
来自专栏xingoo, 一个梦想做发明家的程序员

Redis从单机到集群,一步步教你环境部署以及使用

Redis作为缓存系统来说还是很有价值的,在大数据方向里,也是需要有缓存系统的。一般可以考虑tachyon或者redis,由于redis安装以及使用更简单,所...

5326
来自专栏散尽浮华

Centos下MooseFS(MFS)分布式存储共享环境部署记录

分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连,分布式文...

7875
来自专栏烂笔头

Python爬虫代理IP池

目录[-] 在公司做分布式深网爬虫,搭建了一套稳定的代理池服务,为上千个爬虫提供有效的代理,保证各个爬虫拿到的都是对应网站有效的代理IP,从而保证爬虫快速...

8216
来自专栏Linyb极客之路

nginx简易教程

Nginx (engine x) 是一款轻量级的 Web 服务器 、反向代理服务器及电子邮件(IMAP/POP3)代理服务器。

2692

扫码关注云+社区

领取腾讯云代金券