操作系统: Debian8
软件版本: nginx 1.6.2


配置文件说明:
nginx默认配置文件为/etc/nginx/nginx.conf,可以在运行命令中-c指定配置文件。


# 运行用户
user www-data;   
# 启动进程,通常设置成和cpu的数量相等
worker_processes  1;

# 全局错误日志及PID文件
error_log  /var/log/nginx/error.log;
pid        /var/run/nginx.pid;

# 工作模式及连接数上限
events {
    use   epoll;              # epoll是多路复用IO(I/O Multiplexing)
    worker_connections  1024; # 单个后台worker process进程的最大并发链接数
    # multi_accept on;
}

# 设定http服务器
http {
    
    # 访问日志
    access_log /var/log/nginx/access.log;
    error_log  /var/log/nginx/error.log;        
    #开启gzip压缩
    gzip  on;
    gzip_disable "MSIE [1-6]\.(?!.*SV1)";
    
    # server的配置(后边详细介绍)
    server {
    }
     
    # 从文件导入其他的server配置
    # 其中sites-enabled目录下都是指向sites-available目录中的软链接,
    # 建议用户自己添加的配置都放在sites-available目录中,然后软链接至sites-enabled目录;
    # 需要临时关闭的话,可以删除sites-enabled中的软链接,恢复时重建链接即可。
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites-enabled/*;
}

# 设定mail服务器
#mail {
#}

# 设定rtmp 服务器
#rtmp {
#    server {
#    }
#}

server配置项详细说明: 并不需要所有的条目,无用的条目可以删减去

server {

    # 侦听端口:可侦听多个端口,以空格分隔
    listen 80 default_server;
    
    # 绑定域名:可以绑定多个域名,以空格式分隔
    server_name  oroct.com www.oroct.com blog.oroct.com;
    
    # 设定访问日志
    access_log  logs/oroct.com.access.log  main;
    
    # 默认请求
    location / {
        # 定义服务器的默认网站根目录位置
        root   /var/www;     
        # 定义首页索引文件的名称 
        index index.php index.html index.htm; 
        
        # php相关配置        
        fastcgi_pass unix:/var/run/www/php.sock;
        fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;
        include /etc/nginx/fastcgi_params;
        
        # 重写向不存在的页面
        if (!-e $request_filename) {
                rewrite ^(.*)$  /index.php last;
        }

    }
        
    # 定义错误提示页面
    # error_page   500 502 503 504 /50x.html; 
    # location = /50x.html {
    #    root   /var/www/error;
    # }
    
    # 静态文件,nginx自己处理
    # 静态文件不怎么更新,过期可以设大一点,
    # 如果频繁更新,则可以设置得小一点。
    location ~ ^/(images|javascript|js|css|flash|media|static)/ {
        root /var/www/virtual/htdocs;       
        expires 30d;
    }
    
    # 也可以单独把PHP部分摘出来
    #location ~ \.php$ {
    #}
    
    # 设定查看nginx状态的地址
    location /NginxStatus {
        stub_status           on;
        access_log            on;
        auth_basic            "NginxStatus";
        auth_basic_user_file  conf/htpasswd;
    }
    
    # 禁止访问 .htxxx 文件
    location ~ /\.ht {
        deny all;
    }    
}

配置端口转发:

server {
    server_name git.doit.pub;
    location / {
        # 代理地址及端口
        proxy_pass  http://127.0.0.1:3000; 
        # 修改转发请求头
        proxy_set_header Host $proxy_host; 
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }
}

未绑定域名访问: 关键字一个下划线_

server {
    listen 80 default_server;
    server_name _;  
    root /var/www/default;
    # 通过include简化php配置语句
    include /etc/nginx/fastcgi_php;
    location / { 
        index index.php index.html;
    }   
}

如果不设置的话,一般会指向第一个server的配置,所以这个一定要注意,也可以通过return 404返回错误。

server {
    listen 80 default_server;
    server_name _;  
    return 404;   
}

配置https服务:

server {   
    # https监听端口为443 
    listen 443;
    # 指定证书
    ssl on; 
    ssl_certificate      /etc/nginx/ca/server.crt;
    ssl_certificate_key  /etc/nginx/ca/server_nopwd.key;
    
    # 下边的设置基本都差不多了
    # ......
}

配置rtmp服务:

# 配置RTMP服务(RTMP章节详细说明)
rtmp {                
    server {
        listen 1935;      # 服务端口
        chunk_size 4096;  # 数据传输块的大小

        application vod {
            # 视频文件存放位置。
            play /opt/video/vod; 
        }
        application vod2 {
            play /opt/video/vod2; ;
        }
        application live{
        }
        application hls{
        }
        
    }
}

https://www.jianshu.com/p/0a6f0b425b7f


配置负载均衡:

http {
    .............
    
    #设定负载均衡的服务器列表
    upstream mysvr {
        # weigth参数表示权值,权值越高被分配到的几率越大
        # 开启本机上的Squid的3128端口
        server 192.168.8.1:3128 weight=5;
        server 192.168.8.2:80   weight=1;
        server 192.168.8.3:80   weight=6;
   }    
}

https://www.cnblogs.com/xiaogangqq123/archive/2011/03/02/1969006.html