Nginx Configuration file

本贴最后更新于 2121 天前,其中的信息可能已经斗转星移

Install Nginx

yum -y install gcc* pcre-devel zlib-devel openssl-devel
useradd -M -s /sbin/nologin nginx   # nginx 运行用户
tar -zxf nginx*
./configure --prefix=/usr/local/nginx 
    --user=nginx  --group=nginx --with-http_stub_status_module --with-http_realip_module --with-http_addition_module 
    --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module 
    --with-http_gunzip_module --with-http_gzip_static_module --with-http_random_index_module --with-http_secure_link_module 
    --with-http_stub_status_module --with-http_auth_request_module --with-pcre --with-mail --with-mail_ssl_module --with-http_spdy_module

    make
    make  install
    chkconfig nginx on

Start Scripts Path:/etc/init.d/

Document Descripton
user    nginx    nginx   #指定 Nginx 运行时的用户与组
worker_cpu_affinity 0001 0010 0100 1000;
#亲和力配置,让不同的进程使用不同的 CPU 核心,4核心4线程时可以使用以上的配置。
2核心使用01  10;2核心4线程为 01 10 01 10;
8核心8线程使用  00000001 00000010 00000100 00001000 00010000  00100000   01000000 10000000;
worker_processes  4;   #进程数,即处理器请求的进程,可设置为 CPU 的核心数或者  CPU 核心数的2倍 
error_log  logs/error.log  warn;
#全局错误日志定义类型,格式有[ debug|info|notice|warn|error|crit],一定要设置在warn以上的级别
pid      logs/nginx.pid;
#把进程号记录到文件之中
worker_rlimit_nofile 51200;
#系统打开文件的最大数,可用 cat /proc/sys/fs/file-max 查看,基本使用百分之60左右
events {
    use epoll; 
#采用网络 IO 模型,有select 与 epoll 可选,在大并发的情况下最优使用 epoll
    worker_connections  12800;
# #nginx最大连接数=worker连接数*worker进程数
}
http {
    server_tokens off;  
    #隐藏 Nginx 的版本号信息
    include       mime.types;
    #文件扩展名与文件类型映射表
    default_type  application/octet-stream;
    #默认文件类型
    server_names_hash_bucket_size 128;
    #服务器域名 hash 表大小
    server_names_hash_max_size 512;     
    #域名服务器的最大 hash 表大小
    client_header_buffer_size 4k;
    #客户端请求头部的缓冲区大小,这个可以根据你的系统分页大小来设置,一般一个请求的头部大小不会超过1k,不过由于一般系统分页都要大于1k,所以这里设置为分页大小。分页大小可以用命令getconf PAGESIZE取得。
    large_client_header_buffers 8 128k;
    #设定客户请求头缓存
    client_max_body_size 8m;
    #设定通过nginx上传文件的大小
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    #设定日志 main 的格式
    access_log  logs/access.log  main;
    #全局访问日志
    sendfile        on;
    #开启高效文件传输模式,sendfile指令指定nginx是否调用sendfile函数来输出文件,对于普通应     用设为 on,如果用来进行下载等应用磁盘IO重负载应用,可设置为off,以平衡磁盘与网络I/O处理速度,降低系统的负载。注意:如果图片显示不正常把这个改成off
    autoindex   off;
    #开启目录列表访问,适合下载服务器,默认关闭
    tcp_nopush     on;
    #防止网络阻塞
    tcp_nodelay    on;
    #防止网络阻塞
    keepalive_timeout  120;
    #长连接超时时间,单位是秒

    fastcgi_connect_timeout 300;
    fastcgi_send_timeout 300;
    fastcgi_read_timeout 300;
    fastcgi_buffer_size 64k;
    fastcgi_buffers 4 64k;
    fastcgi_busy_buffers_size 128k;
    fastcgi_temp_file_write_size 128k;
   # Fasecgi相关参数是为了改善网站的性能,减少资源占用,提高访问速度

#gzip模块设置
    #开启 gzip 压缩输出
    gzip  on;
    #最小压缩文件大小
    gzip_min_length 1k;
    #压缩缓存区
    gzip_buffers 4 16k;
    #压缩版本(默认为1.1,如果前端是squid 2.5 采用1.0)
    gzip_http_version 1.1;
    #压缩等级
    gzip_comp_level 2;
    #压缩类型,默认包含textml,所以下面就不用再写了,写上去也不有问题,但是会有一个warn
    gzip_types  text/plain application/x-javascript text/css application/xml;   # 安装目录下minme.types 里定义了压缩类型 
    #vary header支持。该选项可以让前端的缓存服务器缓存经过GZIP压缩的页面,例如用Squid缓存      经过Nginx压缩的数据。
    gzip_vary on;

Example

# 反向代理
location / {
  proxy_pass http://192.168.1.3:80;   # 通过proxy_pass将client的数据请求转发给后端 
}

# 负载调度
upstream qxfell_server {
         ip_hash;      #调度算法,默认 rr 轮训,hash常用语解决session共享的问题
         server 192.168.1.240:80    weight  1;
         server 192.168.1.241:80    weight  1;
         server 192.168.1.242:80    weight  1 backup;    
         #backup 表示机器处于热备状态,weight代表权重,权重越高代表使用越多
     }

# 在生产环境中需要设置一些信息,这样日志中能获取到真正的访问IP
proxy_redirect off;
proxy_set_header X-Real-IP $remote_addr;    #后端的Web服务器可以通过X-Forwarded-For获取用户真实IP
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

#以下是一些反向代理的配置,可选。
proxy_set_header Host $host;
client_max_body_size 10m; #允许客户端请求的最大单文件字节数
client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数,
proxy_connect_timeout 90; #nginx跟后端服务器连接超时时间(代理连接超时)
proxy_send_timeout 90; #后端服务器数据回传时间(代理发送超时)
proxy_read_timeout 90; #连接成功后,后端服务器响应时间(代理接收超时)
proxy_buffer_size 4k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
proxy_buffers 4 32k; #proxy_buffers缓冲区,网页平均在32k以下的设置
proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)
proxy_temp_file_write_size 64k;
#设定缓存文件夹大小,大于这个值,将从upstream服务器传s

# 自带状态统计(监控会用到)
htpasswd  -c /usr/local/nginx/conf/confpasswd username #利用apache自带的htpasswd生成密码进行登录验证    
location /NginxStatus {
       stub_status on;
       access_log on;
       auth_basic "NginxStatus";
       auth_basic_user_file confpasswd;
}

# 虚拟主机
# 在 nginx 配置文件中的 http{} 中间的每一个 server{} 区域都相当于一个虚拟主机,
# 即创建多个虚拟主机即添加多个 server{} 区域即可。
# 注意的是每台虚拟主机之间如果使用相同端口必须通过不同域名区分,如果使用相同域名必须通过不同端口区分,也就是说必须保持独立性
# 例:
    server {
        listen       80;
        server_name  www.qxfell.com;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
       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://qxfell.com; 
                expires 1d;  
        }
        error_page   500 502 503 504  /50x.html;
        l。0ocation = /50x.html {
            root   html;
        }
    }

# https配置
server { 
    listen 80; 
    server_name   www.qxfell.com; 
    rewrite ^(.*)$ https://$host$1 permanent;   # 用户访问网址http重定向到https  还有另外几种方式 整理好一起更新
}  

server
  {
      listen 443; 
      server_name www.qxfell.com qxfell.com;
      ssl                  on; 
      ssl_certificate      /etc/nginx/cert/214234223453245.pem;  # 证书文件
      ssl_certificate_key  /etc/nginx/cert/346456456645663.key;
      ssl_session_timeout  5m; 
      ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
      ssl_ciphers  HIGH:!RC4:!MD5:!aNULL:!eNULL:!NULL:!DH:!EDH:!EXP:+MEDIUM; 
      ssl_prefer_server_ciphers   on; 
      access_log /var/log/nginx/www.qxfell.log main;

     location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
     }

Cut Logfile Scripts

  • NGINX

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    311 引用 • 546 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • bdFK3000

    我是在 angular 使 nginx
    nginx 好用..
    可以用在 component 間,交換 資訊..
    GOOD!!

  • someone

    😋 yep

推荐标签 标签

  • 机器学习

    机器学习(Machine Learning)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。

    83 引用 • 37 回帖
  • 运维

    互联网运维工作,以服务为中心,以稳定、安全、高效为三个基本点,确保公司的互联网业务能够 7×24 小时为用户提供高质量的服务。

    149 引用 • 257 回帖
  • 持续集成

    持续集成(Continuous Integration)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

    15 引用 • 7 回帖 • 1 关注
  • 开源中国

    开源中国是目前中国最大的开源技术社区。传播开源的理念,推广开源项目,为 IT 开发者提供了一个发现、使用、并交流开源技术的平台。目前开源中国社区已收录超过两万款开源软件。

    7 引用 • 86 回帖
  • 工具

    子曰:“工欲善其事,必先利其器。”

    286 引用 • 729 回帖
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3187 引用 • 8213 回帖
  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 672 关注
  • 博客

    记录并分享人生的经历。

    273 引用 • 2388 回帖
  • Logseq

    Logseq 是一个隐私优先、开源的知识库工具。

    Logseq is a joyful, open-source outliner that works on top of local plain-text Markdown and Org-mode files. Use it to write, organize and share your thoughts, keep your to-do list, and build your own digital garden.

    6 引用 • 63 回帖 • 1 关注
  • 微软

    微软是一家美国跨国科技公司,也是世界 PC 软件开发的先导,由比尔·盖茨与保罗·艾伦创办于 1975 年,公司总部设立在华盛顿州的雷德蒙德(Redmond,邻近西雅图)。以研发、制造、授权和提供广泛的电脑软件服务业务为主。

    8 引用 • 44 回帖
  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    90 引用 • 59 回帖 • 1 关注
  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖 • 1 关注
  • Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。

    11 引用 • 19 回帖 • 354 关注
  • Maven

    Maven 是基于项目对象模型(POM)、通过一小段描述信息来管理项目的构建、报告和文档的软件项目管理工具。

    186 引用 • 318 回帖 • 304 关注
  • SMTP

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。

    4 引用 • 18 回帖 • 614 关注
  • 一些有用的避坑指南。

    69 引用 • 93 回帖
  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1063 引用 • 3453 回帖 • 203 关注
  • 心情

    心是产生任何想法的源泉,心本体会陷入到对自己本体不能理解的状态中,因为心能产生任何想法,不能分出对错,不能分出自己。

    59 引用 • 369 回帖
  • Python

    Python 是一种面向对象、直译式电脑编程语言,具有近二十年的发展历史,成熟且稳定。它包含了一组完善而且容易理解的标准库,能够轻松完成很多常见的任务。它的语法简捷和清晰,尽量使用无异义的英语单词,与其它大多数程序设计语言使用大括号不一样,它使用缩进来定义语句块。

    543 引用 • 672 回帖
  • InfluxDB

    InfluxDB 是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及实时分析。

    2 引用 • 72 关注
  • 以太坊

    以太坊(Ethereum)并不是一个机构,而是一款能够在区块链上实现智能合约、开源的底层系统。以太坊是一个平台和一种编程语言 Solidity,使开发人员能够建立和发布下一代去中心化应用。 以太坊可以用来编程、分散、担保和交易任何事物:投票、域名、金融交易所、众筹、公司管理、合同和知识产权等等。

    34 引用 • 367 回帖
  • PostgreSQL

    PostgreSQL 是一款功能强大的企业级数据库系统,在 BSD 开源许可证下发布。

    22 引用 • 22 回帖
  • WebClipper

    Web Clipper 是一款浏览器剪藏扩展,它可以帮助你把网页内容剪藏到本地。

    3 引用 • 9 回帖
  • 知乎

    知乎是网络问答社区,连接各行各业的用户。用户分享着彼此的知识、经验和见解,为中文互联网源源不断地提供多种多样的信息。

    10 引用 • 66 回帖
  • SQLServer

    SQL Server 是由 [微软] 开发和推广的关系数据库管理系统(DBMS),它最初是由 微软、Sybase 和 Ashton-Tate 三家公司共同开发的,并于 1988 年推出了第一个 OS/2 版本。

    21 引用 • 31 回帖
  • Sandbox

    如果帖子标签含有 Sandbox ,则该帖子会被视为“测试帖”,主要用于测试社区功能,排查 bug 等,该标签下内容不定期进行清理。

    407 引用 • 1246 回帖 • 582 关注
  • 域名

    域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的 Internet 上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

    43 引用 • 208 回帖