参考
http://www.howtocn.org/nginx:directiveindex
http://blog.s135.com/

nginx 配置文档为 nginx.conf 比如我的配置文档 /usr/local/nginx/conf/nginx.conf

格式类似于下面,不要忘记在行尾添加分号(;),使用井号(#)来注释
.......;
events
{
.......;
}

http
{
.......;
   server
   {
   .......;
   }

server
   {
   .......;
   }
.......;
}

我的 nginx.conf

user nginx nginx;

#Nginx 进程运行的用户和组

worker_processes 4;

#Nginx 进程数(建议设定为cpu的总核数,比如我的i3 cpu)

error_log  logs/error.log error;

#定义错误日志,分别为[ debug | info | notice | warn | error | crit ]

pid        logs/nginx.pid;

#pid文件位置

worker_rlimit_nofile 65535;
#一个 nginx 进程打开的最多文件描述符数目,理论值应该是最多打开文件数(ulimit-n) 与 nginx 进程数相除,但是 nginx 分配请求并不是那么均匀,所以最好与 ulimit -n的值保持一致。

# use [ kqueue | rtsig | epoll | /dev/poll | select | poll ];
events
{
use epoll;

#使用epoll事件模型
worker_connections 65535;

#每个nginx进程的连接数(最大连接=连接数(65535) x 进程数(4))
}

http
{
include mime.types;

#文件扩展名与文件类型映射表
default_type application/octet-stream;

#默认文件类型
#charset gb2312;

#默认编码
server_names_hash_bucket_size 128;

#服务器名字的 hash 表大小
client_header_buffer_size 32k;

#上传文件大小限制
large_client_header_buffers 4 32k;

#指定客户端一些比较大的请求头使用的缓冲区数量和大小。
client_max_body_size 8m;

#指令指定允许客户端连接的最大请求实体大小
sendfile on;

#开启高效文件传输模式
tcp_nopush on;

#防止网络阻塞
tcp_nodelay on;

#防止网络阻塞
keepalive_timeout 60;

#客户端与服务器长连接的超时时间,超过这个时间,服务器将关闭连接
#fastcgi                                 
fastcgi_connect_timeout 300;

#指定连接到后端FastCGI的超时时间。
fastcgi_send_timeout 300;

#向FastCGI传送请求的超时时间,这个值是指已经完成两次握手后向FastCGI传送请求的超时时间。
fastcgi_read_timeout 300;

#接收FastCGI应答的超时时间,这个值是指已经完成两次握手后接收FastCGI应答的超时时间。
fastcgi_buffer_size 64k;

#这里可以设置为fastcgi_buffers指令指定的缓冲区大小。
fastcgi_buffers 4 64k;

#指定本地需要用多少和多大的缓冲区来缓冲FastCGI的应答
fastcgi_busy_buffers_size 128k;

#建议为fastcgi_buffers的两倍
fastcgi_temp_file_write_size 128k;

#在写入fastcgi_temp_path时将用多大的数据块,默认值是fastcgi_buffers的两倍,设置上述数值设置太小时若负载上来时可能报 502 Bad Gateway
#
gzip on;

#打开gzip压缩
gzip_min_length 1k;

#最小压缩文件大小
gzip_buffers 4 16k;

#压缩缓冲区
gzip_http_version 1.0;

#压缩版本
gzip_comp_level 2;

#压缩等级
gzip_types text/plain application/x-javascript text/css application/xml;

#压缩类型
gzip_vary on;

#启用应答头“Vary: Accept-Encoding”
#
include   vhosts/*.conf;

#含一些其他的配置文件来完成你想要的功能,比如我想把每个虚拟主机单独放在一个文件里
server                                           #虚拟主机的配置
{
        listen       80;

#被访问的ip地址及端口号,可以只指定一个ip,一个端口,或者一个可解析的服务器名
        server_name  localhost;

#服务器的基本名称,默认名称为机器的hostname,多域名用空格隔开
        root   /data/web;

#请求到达后的文件根目录,使用字段:http, server, location ,location中的if字段
        access_log  logs/host.access.log;

#为连接日志指定了路径,格式和缓冲区大小,如果没有指定日志格式,默认为“combined”
 
        location /

#根据URI的不同需求来进行配置,匹配任何以 / 开始的查询
        {
            index  index.html index.htm index.php;

#设置默认主页,以指定多个文件,如果第一个文件没有找到,将会查找后面指定的文件
        }
 
        #error_page  404              /404.html;

#为错误代码指定相应的错误页面
        error_page   500 502 503 504  /50x.html;
        
        location = /50x.html

#根据URI的不同需求来进行配置,= 精确的匹配,只匹配 / 的查询    
        {
            root   html;

#请求到达后的文件根目录,这个和上边的root功能相同,只是根目录文件夹不一样
        }

location ~* \.php$ {

#根据URI的不同需求来进行配置,~* 不区分大小写匹配任何以php结尾的文件
            root           /data/web;

#网页文件存放的根目录
            fastcgi_pass   127.0.0.1:9000;

#指定FastCGI服务器监听端口与地址
            #fastcgi_pass   192.168.56.10:9000;    #可以是本机或者其它fastcgi服务器。
            fastcgi_index  index.php;

#文件名将追加到URI后面,这个值将存储在变量$fastcgi_script_name中
            fastcgi_param  SCRIPT_FILENAME  /data/web$fastcgi_script_name;
            #指定一些传递到FastCGI服务器的参数,SCRIPT_FILENAME参数决定需要执行哪个脚本
            include        fastcgi_params;

#含一些其他的配置文件来完成你想要的功能,包括 fastcgi_params文件
        }
}

虚拟主机
nginx 可以配置多种类型的虚拟主机,1基于ip地址的虚拟主机,2基于域名的虚拟主机,3基于端口号的虚拟主机。
# another virtual host using mix of IP-, name-, and port-based configuration
#
server {
    listen       80;                              #端口号
    #listen      192.168.5.87:8080;               #Ip地址,这里加了端口号,也可以不加      
    server_name  somename  alias  another.alias;  #域名

location / {
        root   html;
        index  index.html index.htm;
    }
}

还可把它配置成 listen 80; 表示监听该服务器上的所有ip的 80端口,通过 server_name 来区分不同的虚拟主机。

include   vhosts/*.conf; include指令 载入多个虚拟主机配置文档这样很方便,如果直接把多个虚拟主机添加到nginx.conf上则会很乱。

每个vhost.conf 都包含一段 server{......},如果需要多个虚拟主机建立多个vhost*.conf 并写入 server{......}即可,比如下面这样。

# cat conf/vhosts/test.com.conf 
server    
{
        listen       80;
        server_name  test.com;
        root   /data/web2;
        access_log  logs/test.com.access.log;
 
        location / 
        {
            index  index.html index.htm index.php;
        }
        ................ #部分省略
}

nginx_笔记分享_配置篇的更多相关文章

  1. nginx_笔记分享_php-fpm详解

    参考 http://syre.blogbus.com/logs/20092011.htmlhttp://www.mike.org.cn/articles/what-is-cgi-fastcgi-php ...

  2. Spring学习笔记之AOP配置篇(一)

    [TOC] 1. 创建并声明一个切面 首先,创建一个类,添加@Component注解使其添加到IoC容器 然后,添加@Aspect注解,使其成为一个切面 最后,在配置文件里面,使用<aop:as ...

  3. ThinkPHP项目笔记之数据库配置篇

    对于配置文件,有几点说明 common:公共配置,也就是前台,后台,都可以调用的文件,具有普遍性 前台/后台:就是针对前后台的配置文件,具有针对性. 如:(公共文件基本配置) <?php ret ...

  4. 学习笔记_J2EE_SpringMVC_03_注解配置_@RequestMapping用法

    @RequestMappingde的用法 摘要: 主要介绍注解@RequestMapping的用法 一.@RequestMapping 简介 在Spring MVC 中使用 @RequestMappi ...

  5. C#面试题(转载) SQL Server 数据库基础笔记分享(下) SQL Server 数据库基础笔记分享(上) Asp.Net MVC4中的全局过滤器 C#语法——泛型的多种应用

    C#面试题(转载) 原文地址:100道C#面试题(.net开发人员必备)  https://blog.csdn.net/u013519551/article/details/51220841 1. . ...

  6. 无线安全专题_攻击篇--MAC泛洪攻击

    上一篇讲解了无线安全专题_攻击篇--干扰通信,没在首页待多长时间就被拿下了,看来之后不能只是讲解攻击实战,还要进行技术原理和防御方法的讲解.本篇讲解的是局域网内的MAC泛洪攻击,这种攻击方式主要目的是 ...

  7. 好程序员web前端分享HTML基础篇

    好程序员web前端分享HTML基础篇,最近遇到很多新手,都会问,如果要学web前端开发,需要学什么?难不难学啊?多久能入门之类的问题?那么今天好程序员就先来给大家分享一下web前端学习路线:HTML基 ...

  8. 《Kafka权威指南》读书笔记-操作系统调优篇

    <Kafka权威指南>读书笔记-操作系统调优篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 大部分Linux发行版默认的内核调优参数配置已经能够满足大多数应用程序的运 ...

  9. 1C课程笔记分享_StudyJams_2017

    课程1C 概述 课程1C是创建一个生日贺卡应用的实践课程,所以本篇笔记分享主要记录个人的实践过程,此外分享一些比较零散的知识点. Drawable文件夹 Drawable文件夹是Android项目统一 ...

随机推荐

  1. Android 正则表达式验证手机和邮箱格式是否正确

    demo例子: package it.com.cc; import java.util.regex.Matcher; import java.util.regex.Pattern; import an ...

  2. [项目构建 十三]babasport Nginx负载均衡的详细配置及使用案例详解.

    在这里再次说明下, 这个项目是从网上 找到的一套学习资料, 自己在 空闲时间学习了这些东西. 这里面的code当然会有很多不完善的地方, 但是确实也能学到很多新东西.感谢看过这一些列博文和评论的小伙伴 ...

  3. 那些SQL语句

    根据book_id,class_id确定老师uid select user_id from lessons left join book on lessons.lesson_id = book.les ...

  4. Silverlight 中 读取XML文件

    一:xml文件 二:后台代码 private void ReadXml() { List<TreeViewItem> nodes = new List<TreeViewItem> ...

  5. 编写高质量js代码

    原文链接:http://code.tutsplus.com/tutorials/24-javascript-best-practices-for-beginners--net-5399 jquery代 ...

  6. 【转】HP(惠普)大中华区总裁孙振耀退休感言

    一.关于工作与生活我有个有趣的观察,外企公司多的是25-35岁的白领,40岁以上的员工很少,二三十岁的外企员工是意气风发的,但外企公司40岁附近的经理人是很尴尬的.我见过的40岁附近的外企经理人大多在 ...

  7. Hot to get clicked cell column in DevExpress XtraGrid

    To accomplish this task, use the GridView.RowCellClickevent. Please note that this event will not fi ...

  8. jquery trigger传值

    方法1: var e = $.Event('ok.menu.table', { relatedTarget: $el }) that.$el.trigger(e); 接受方法如下.此时,related ...

  9. Asp.Net读取服务器EXE文件的方法!(超简单实例)

    Asp.Net读取服务器EXE文件的方法!(超简单实例) Process process = new Process(); process.StartInfo.FileName = "d:\ ...

  10. python Eve RESTFul 尝试笔记

    0.前言 最近重点研究了yeelink平台的原理和使用,yeelink平台和多数云平台设计一样应用了RESTFul框架.嵌入式侧(或者是客服端侧)的相关技术研究的比较充分(个人这么认为),是不是该弄弄 ...