本文为博主原创,未经允许不得转载:

  nginx.conf 配置文件配置解析

  #定义 Nginx 运行的用户和用户组。默认nginx的安装用户为 nobody
    user www www;   #启动进程,通常设置成和 cpu 的数量相等,即worker 进程数量,默认为1
    worker_processes 8;  #单个后台 worker process 进程的最大并发链接数 (最大连接数=连接数*进程数)
    worker_connections 102400;   #全局错误日志及 PID 文件
    error_log /usr/local/nginx/logs/error.log;   #错误日志定义等级,[ debug | info | notice | warn | error | crit ]
    pid /usr/local/nginx/nginx.pid;   #keepalive 超时时间,客户端到服务器端的连接持续有效时间
    keepalive_timeout 120;   #允许客户端请求的最大单文件字节数
    client_max_body_size 10m;

  Nginx WEB 默认发布静态页面,也可以均衡后端动态网站,用户发起 HTTP 请求,如果请求静态页面,Nginx 直接处理并返回,如果请求的是动态页  面,Nginx 收到请求之后会进行判断,转到后端服务器去处理。

  Nginx 实现负载均衡需要基于 upstream 模块,同时需要设置 location proxy_pass 转发指令实现。如下为 Ningx 应用负载均衡集群配置,根据后端实际情况修改即可,study_www 为负载均衡模块的名称,可以任意指定,但必须跟 vhosts.conf、Nginx.conf 虚拟主机的 proxy_pass段保持一致,否则不能将请求转发至后端的服务器,weight 表示配置

权重,在 fail_timeout内检查 max_fails 次数,失败则剔除均衡。

 upstream study_www {
    server 127.0.0.1:8080 weight=1 max_fails=2 fail_timeout=30s;
    server 127.0.0.1:8081 weight=1 max_fails=2 fail_timeout=30s;
 }

 nginx 常用配置:

#虚拟主机配置
server {
  #侦听 80 端口
  listen 80;
  #定义使用 www.studey.net 访问
  server_name www.studey.net;   #设定本虚拟主机的访问日志
  access_log logs/access.log main;
  root /data/webapps/www;   #定义服务器的默认网站根目录位置
  index index.php index.html index.htm; #定义首页索引文件的名称   #默认请求
  location ~ /{
    root /data/webapps/www;  #定义服务器的默认网站根目录位置
    index index.php index.html index.htm;    #定义首页索引文件的名称
    #以下是一些代理的配置
    #如果后端的服务器返回 502、504、执行超时等错误,自动将请求转发到 upstream 负载均衡池中的另一台服务器,实现故障转移。.
    proxy_next_upstream http_502 http_504 error timeout invalid_header;
    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;
    proxy_pass http://study_www; #请求转向后端定义的均衡模块
  }   # 定义错误提示页面
  error_page 500 502 503 504 /50x.html;
  location = /50x.html {
    root html;
  }   #配置 Nginx 动静分离,定义的静态页面直接从 Nginx 发布目录读取。
  location ~ .*.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {
    root /data/webapps/www;
    #expires 定义用户浏览器缓存的时间为 3 天,如果静态页面不常更新,可以 设置更长,这样可以节省带宽和缓解服务器的压力,在浏览器保存该类型文件的天数。
    expires 3d;
    }
  }
}

    通过 Expires 参数设置,可以使浏览器缓存过期时间,减少与服务器之前的请求和流量。具体 Expires 定义是给一个资源设定一个过期时间,

  也就是说无需去服务端验证,直接通过 浏览器自身确认是否过期即可,所以不会产生额外的流量。

    如果静态文件不常更新,Expires 可以设置为 30d,表示在这 30 天之内再次访问该静态 文件,浏览器会发送一个 HTTP 请求,会比对服务器

  该文件最后更新时间是否有变化,如果 没有变化,则不会从服务器抓取,返回 HTTP 状态码 304,如果有修改,则直接从服务器重 新下载,返回

   HTTP 状态码 200

    也可以在同一个nginx 上配置多个server,并开启不同的端口:

worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on; keepalive_timeout 65;
server {
listen 80;
server_name www.test1.com;
access_log logs/test1.access.log;
location / {
root html/test1;
index index.html index.htm;
}
}
server {
listen 81;
server_name www.test2.com;
access_log logs/test2.access.log;
location / {
root html/test2; index in
dex.html index.htm;
}
}
}

通过 Windows 客户端配置 hosts 绑定 IP 与两个域名的 对应关系,在 IE 浏览器访问测试效果。

  3.nginx 还可以设置ip黑名单,限流,防盗链以及请求头,请求方法,https 等配置。很多需要依赖引用第三方模块进行配置。

nginx.conf 配置解析及常用配置的更多相关文章

  1. nginx基本运维及常用配置

    nginx基本运维及常用配置 ========================================================== 基本运维 nginx 的启动 nginx -c /p ...

  2. nginx.conf 配置解析之 server配置

    server{} 包含在http{}内部,每一个server{}都是一个虚拟主机(站点) 以下为nginx.conf配置文件中server{  }部分的内容. server { listen ; // ...

  3. nginx.conf 完整的集群配置

    ###############################nginx.conf 整配置############################### #user nobody; # user 主模 ...

  4. Nginx的配置文件(nginx.conf)解析和领读官网

    步骤一:vi nginx.conf配置文件,参考本博文的最下面总结,自行去设置 最后nginx.conf内容为 步骤二:每次修改了nginx.conf配置文件后,都要reload下. index.ht ...

  5. MngoDb MongoClientOptions 配置信息及常用配置信息

    MongoClientOptions.Builder addClusterListener(ClusterListener clusterListener)Adds the given cluster ...

  6. nginx.conf 配置解析之 http配置

    官方文档 http://nginx.org/en/docs/参考链接: https://segmentfault.com/a/1190000012672431参考链接: https://segment ...

  7. nginx.conf 配置解析之 全局配置

    user nobody; 定义运行nginx服务的用户,还可以加上组,如 user nobody nobody; worker_processes 1; 定义nginx子进程数量,即提供服务的进程数量 ...

  8. nginx.conf 配置解析之 events配置

    worker_connections 1024; 定义每个work_process同时开启的最大连接数,即允许最多只能有这么多连接. accept_mutex on; 当某一个时刻只有一个网络连接请求 ...

  9. VS2012 常用web.config配置解析之自定义配置节点

    在web.config文件中拥有一个用户自定义配置节点configSections,这个节点可以方便用户在web.config中随意的添加配置节点,让程序更加灵活(主要用于第三方插件的配置使用) 自定 ...

  10. 各个nginx conf的虚拟主机的配置

    server { listen 80; server_name t-cl.orangevip.com; rewrite ^(.*)$ https://$host$1 permanent;} serve ...

随机推荐

  1. RabbitMQ入门到进阶

    1.MQ简介 MQ 全称为 Message Queue,是在消息的传输过程中保存消息的容器.多用于分布式系统 之间进行通信. 2.为什么要用 MQ 1.流量消峰 没使用MQ 使用了MQ 2.应用解耦 ...

  2. 冲刺秋招之牛客刷Java记录第二天

    第一题 下列代码输入什么? public class Test { public static Test t1 = new Test(); { System.out.println("blo ...

  3. Golang标准库 container/list(双向链表) 的图文解说

    Golang标准库 container/list(双向链表) 的图文解说 提到单向链表,大家应该是比较熟悉的了.今天介绍的是 golang 官方库提供的 双向链表. 1.基础介绍 单向链表中的每个节点 ...

  4. 微信现金红包开发 PHP

    第一次在cnblogs发文章 微信商家后台-现金红包开发 sdk <?php class wxPay { //配置参数信息 const SHANGHUHAO = "1430998xxx ...

  5. [Luogu 4912 帕秋莉的魔法] 题解报告

    算法:DP, 背包,动态规划 简化版题目: 给定 \(n\) 个物品,物品的价值为 \(v_1 - v_n\),物品的体积为 \(w_1 - w_n\).需要选择一些物品,使它们的体积和为 \(V\) ...

  6. uniapp中实现H5录音和上传、实时语音识别(兼容App小程序)和波形可视化

    目录 Recorder-UniCore插件特性 集成到项目中 调用录音 上传录音 ASR语音识别 在uniapp中使用Recorder-UniCore插件可以实现跨平台录音功能,uniapp自带的re ...

  7. 斯坦福 UE4 C++ ActionRoguelike游戏实例教程 12.认识GamePlayTag, 实现技能的互斥

    斯坦福课程 UE4 C++ ActionRoguelike游戏实例教程 0.绪论 概述 本篇文章对应Lecture 17 - GameplayTags, 67.67节.本文将会讲述UE4中Gamepl ...

  8. LiteAI 四大杀手锏,解锁物联网智能设备AI开发难关

    [摘要] IoT设备中嵌入AI能力实现产品的智能升级,已经是AIoT行业发展的重要通道,那怎样才能实现AIoT = AI + IoT呢?如何将AI模型塞到小小的IoT设备里,让它可以轻松运行起来呢?成 ...

  9. CANN开发实践:4个DVPP内存问题的典型案例解读

    摘要:由于DVPP媒体数据处理功能对存放输入.输出数据的内存有更高的要求(例如,内存首地址128字节对齐),因此需调用专用的内存申请接口,那么本期就分享几个关于DVPP内存问题的典型案例,并给出原因分 ...

  10. JavaScript回调函数的高手指南

    摘要:本文将会解释回调函数的概念,同时帮你区分两种回调:同步和异步. 回调函数是每个前端程序员都应该知道的概念之一.回调可用于数组.计时器函数.promise.事件处理中. 本文将会解释回调函数的概念 ...