ngin_nginx - CSDN
精华内容
参与话题
  • Nginx(三)之Ngin配置

    千次阅读 2017-06-11 14:06:57
    configure 是对Nginx的静态配置,确定Nginx的基本运行环境和功能模块,使用简单的命令行参数就可以完成。但Nginx配置绝不只有configure 这么简单,决定了Nginx的进程数量、运行日志、虚拟主机、方向代理和邮件代理、...

    configure 是对Nginx的静态配置,确定Nginx的基本运行环境和功能模块,使用简单的命令行参数就可以完成。但Nginx配置绝不只有configure 这么简单,决定了Nginx的进程数量、运行日志、虚拟主机、方向代理和邮件代理、各种请求逻辑处理、优化调整等方方面面,众多的模块都要依赖配置文件里的指令才能正常工作。Nginx在启动的时将会读取配置文件,根据配置指令调用不同的模块处理,设置他们的运行参数。

    配置文件格式
    Nginx 配置文件是一个普通的纯文本文件,使用Nginx自定义的配置语法,更接近脚本语言,混合Shell,Perl和C的特性:

    • 与Shell/Perl相同,使用#开始一个注释行;
    • 配置指令以分号结束,可以接受多个参数,使用空白符分割
    • 可以使用单引号或者双引号来定义字符串允许用“\”转义字符
    • 配置指令和 参数也可以用引号来指定,特别是当它含有空格的时候
    • 配置块是特殊的配置指令,它有一个{…} 参数且无须分号结束,{…} 里面可以包含多个配置指令,相当于C语言的复合语句
    • 有的配置指令只能出现在特定的配置块里(即语境Context)
    • 配置块里可以再包含配置块,嵌套层次没有限制,但需符合配置块的语义
    • 可以使用include指令包含其他的配置文件,支持*通配符,类似C语言
    • 使用$var 可以引用预定义的一些变量,增加配置的灵活性
    • 不能识别或错误的配置指令会导致Nginx 解析失败,无法启动

    下面列出Ngin 自带的配置文件片段

    worker_processes  1;      #设置worker进程为1
    
    events{                   #events 配置模块
        worker_connections 1024;   #worker 最大连接数
    }
    
    http{                    #配置HTTP服务,是Nginx的重点
        include    mime.types;    #包含mime.types文件
        default_type   application/octet-stream; #指定默认的MIME类型
    }
    
    server{            #server配置块,虚拟主机
       listen 80;      #监听80端口
       server_name localhost;    #主机名称
    
        location / {                     #location 配置块
                root html;               #设置http请求的根目录
            index index.html index.htm;  #设置默认的index 文件
        }
    
        errot_page  500 502 503 504 /50x.html;  #配置错误返回页面
    
        location = /50x.html{      #错误返回页location 配置块
            root html;             #设置http请求的根目录
        }
    }

    这个配置文件片段在全局域出现了一个配置指令worker_processes ,然后两个大配置块:events和http,分别配置了event模块和http 模块的行为。
    events 配置块很简单,里面只有一个worker_connections指令,确定每个worker进程可以处理最大连接数,
    http配置块比较复杂,他先用include包含了另一个配置文件mime.type,设置了MIME了类型,然后使用流量server块定义了一个端口为80虚拟主机。server快里又有两个location块,定义了访问虚拟主机上不同路径的具体行为,在这里只指定了文档根目录和设置index文件。

    进程配置
    以下三个进程配置指令不属于任何配置块,只能在全局域(mian) 里配置。

    1. worker_processes number | auto;
      设置Ngin 能够启动的worker进程的数,它直接影响Nginx的性能。通常worker数与服务器的CPU核心数相等时候,可以获得最大的性能,这时每一个worker都会功能在一个独立的CPU核心上,完全消除CPU调度的成本
      worker_processes 的默认值是1,如果不请求服务器的CPU核心的数量,那么可以设置为auto参数,Nginx 会尝试探测数量并设置。
    2. masrer_processes on | off;
      决定是否启用Nginx的进程池机制,默认是on。如果设置off,那么Nginx不会建立master进程,只会使用worker进程处理请求,worker_processes指令会失效,并发处理能力大大下降。
    3. daemon on | off;
      决定是否守护进程方式运行Nginx,默认值是on,大多数情况下Nginx应该是一个守护进程,进行再后台,不与终端有任何交互,也减少了无谓的资源消耗。

    运行日志配置
    日志是web服务器非常重要的数字资产,它记录了服务器子啊运行期间的各种信息,可以用来排查故障或者数据分析。
    在Nginx 里运行日志分为两种:记录HTTP访问请求的access_log和记录服务器错误信息error_log。

    error_log file | stderr level;
    指定Ngin 的运行错误日志,默认是安装在目录下的logs/error.log。我们也可以设置其他路基,或者使用标准的错误输出stderr, level是日志允许输出的级别取值 debug|info|notice|warn |error|crit|alert|emerg,只有高于这个级别的日志才会记录下来,默认值是error/

    如果配置为最低的debug 日志级别,那么在configure 时必使用 –with-debug 选项。

    http配置
    Nginx 近90%的功能都是提供HTTP服务,所以HTTP的配置也是最复杂的,
    Nginx 使用http块配置HTTP相关所有的功能,包括cache,fastcgi,gzip,server/location,proxy,upstream等,通常的形式是:

    http{
        upstream{
            ...
        }
        server{
            listen 80;
    
            location /{
                ...
            }
        }
    
        server{
            ...
        }
    
    }

    由于http快内容太多,如果我们都在一个配置文件会造成配置文件过度庞大,难以维护。我们在实际工作中通常把server,location等配置分离到单独的文件,用include指令包含进来,

    
    http{
        include common.conf
        include upstream.conf
        include vhost/*.conf    #包汉vhost下所有的虚拟主机配置文件
    }

    Server配置
    在http块使用server指令定义一个虚拟主机,它必须是一个配置块,在块内部再使用其他用指令来确定主机的端口,域名等参数,然后使用Nginx 就可以对外提供Web服务。

    1. listen port
      listen 指令设置虚拟机主机监听端口,默认是80。实际上 listen 指令还有很多参数,可以设置ip 地址,UNIX Domian、Socket 、SSL、backlog、rcvbuf/sndbuf等,
      server_name name …;
      server_name 指令设置虚拟机主机对外提供服务主机名称,允许使用* 通配符和“~”开头的正则表达式,例如,www.nginx.org 、 *.image.nginx.org,。当Nginx 处理请求的时候将会检查http头部的Host域,选择与server_name匹配的server快服务,从而达到在一个Nginx里实现多个主机的目的。

    keepalive_timeout timout;
    设置keepalive的超时时间,默认是75s,他通常有利于客户端复用HTTP长链接,提高服务器的性能。如果希望服务器发送完数据后能够主动断连,就可以把他设置为0。

    Location配置
    localation 配置相当于虚拟机主机上的虚拟目录,Nginx 在成功配置虚拟主机进入server块后,会继续查找陪陪URI的location 快,他是Nginx处理的终点,决定了请求应该锄禾处理。

    location 是一个配置块,,但是语法稍多一点,除了{…}外还有其他参数:

    location [ = | ~ | ~* | ^~ | @ ] uri{...}

    location 使用配置文件里的uri 参数匹配HTTP请求行里的uri,默认是前缀匹配,也支持正则表达式,例如 “localtion /image / {…}” 会匹配“/image/001.jpg”.

    location 使用几个前缀来做进一步的匹配限定:

    • = : URI必须完全匹配
    • ~ : 大小写敏感匹配
    • ~* : 大小写不敏感匹配
    • ^~ : 匹配前半部分即可
    • @ : 用于内部子请求,外部无法访问

    在server 块里可以配置任意数量的location 快,location 也可以嵌套。Nginx 对location的顺序没有特殊要求,并不是按照配置文件的顺序逐个查找匹配,而是对所有可能的匹配顺序进行排序,查找最佳匹配的location。

    不同location里可以有不同的处理方式,灵活的设置location能够让Nginx配置清晰明了,易于维护。比如,我们可以在一个location里面存放静态的html文件,在另外一个location 里存放图片文件,还有一个则调用fastcgi处理PHP请求。这些location 互不干扰,,修改其中一个不会影响其他的正常运行。
    例如:

    location   /doc/    {...}              #匹配/doc/*.*
    location  ~ \.(php)$    {...}          #大小写敏感处理php请求
    location  ~* \.(png)$   {...}          #忽略大小写,匹配所有的png文件
    location  ~^ /image/    {...}          #匹配/image/*.*,优先级比上一个低
    location =  /50x.html   {...}          #只是处理/50x.html这一个文件
    location   /        {...}              #匹配任意的URI

    需要注意的最后一个 location ,根据Nginx的前缀匹配规则,它能够匹配任意的uri,所以可以吧它作为一个 “黑洞”,处理所有其他的location 不能处理的请求。

    文件访问配置

    如果把Nginx 用作静态Web服务器,那么文件访问配置就很简单,只需要指定存放路径和文件名即可,这里仅介绍三个最基本的指令,他们可以出现在http快里的任意位置。

    1. root path
      设置请求文档的跟目录,将以path 作为路径查找文件,如果有:
    location /image/{              #匹配 /image/*.*
        root /vat/data/;           #文档根目录实际上是/var/data/
    }

    那么请求 /image/001.jpg 将会返回文件 /var/data/image/001.jpg;
    2. alias path
    alias 指令同样设置文档的访问目录,但与root 略有不同,它会把location的路径替换成path ,既location 是path 的别名。
    把刚才的location配置改为alias

    location /image/{              #匹配 /image/*.*
        alias/vat/data/;           #文档根目录实际上是/var/data/
    }

    那么请求 /image/001.jpg 将会返回文件 /var/data/001.jpg;

    3.index file
    设置index 文件,即没有指定明确的文件时的默认文件。

    upstream 配置

    upstream 块不属于虚拟主机,只能在http块配置,它定义了在方向代理时Nginx需要访问的上游服务器集群和负载均衡策略

    upstream的基本形式是:

    upstream back_end{
        ip_hash;                    #负载均衡策略
        server 127.0.0.1:80;        #一台上游服务器
        server ...  weight=3;       #可以指定多台上游服务器
        server ...  backup;         #备份用的上游服务器
    }

    upstream块的配置非常简单,server指令指定上游服务器域名或者iP地址,还可以用weight/max_fails/down/backup 等附加参数进赖进一步描述服务器状态。ip_hash指令确定了这些服务器的负载均衡策略,如果不给出明确的策略,Nginx 就使用简单的加权轮询 (round robin)。

    upstream 快通常配合proxy_pass、 fastcgi_pass 等反向代理指令使用,把客户的请求转发道后端服务器集群处理,例如:

    location /passto{                      #一个转发的location 
        proxy_set_header Host $host;       #转发原始请求头部
        proxy_pass http://back_end;        #转发到upstream块定义的服务器
    }

    Nginx开发从入门到精通

    展开全文
  • ngin如何实现负载均衡

    2018-05-03 20:07:55
    大家好,我是IT修真院北京分院第31期的学员,一枚正直纯洁善良的JAVA程序员。今天给大家分享一下,修真院官网JAVA任务6的深度思考——nginx如何实现负载均衡.1....Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的...

    大家好,我是IT修真院北京分院第31期的学员,一枚正直纯洁善良的JAVA程序员。今天给大家分享一下,修真院官网JAVA任务6的深度思考——nginx如何实现负载均衡.

    1.背景介绍

    什么是NGINX

    Nginx (engine x) 是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔·赛索耶夫为俄罗斯访问量第二的Rambler.ru站点(俄文:Рамблер)开发的,第一个公开版本0.1.0发布于2004年10月4日。其将源代码以类BSD许可证的形式发布,因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。

    2011年6月1日,nginx 1.0.4发布。Nginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等

    负载均衡的目的

    负载均衡的目的是为了解决单个节点压力过大,造成Web服务响应过慢,严重的情况下导致服务瘫痪,无法正常提供服务。春节期间在12306网站上买过火车票的朋友应该深有体会,有时查询一张火车票都会很慢,甚至整个网页都卡住不动了。通常一个访问量非常大的Web网站(比如:淘宝、京东、12306等),由于一个Web服务同时能处理的用户并发请求的数量有限,同时还有机器故障的情况,所以一个Web站点通常会在N台机器上各部署一套同样的程序。当某一个服务挂掉的时候,还有第二个、第三个、第N个服务。。。继续为用户提供服务,给用户的感觉,你的服务还在正常的运行!

    在这些提供同样服务的机器当中,在硬件配置方面也各不一样,这样就会存在部份机器性能非常好,能快速计算并响应用户的请求,另外一部份机器可能配置差点,响应用户的请求的时间会长一些。这就需要我们思考一个问题?如果有一个服务正在同时处理1000个用户的请求,这个服务的上限可能最多能同时处理1000个用户的请求,这时它已经很忙了,如果此时又有一个新请求过来,我们仍然把这个请求分配给这台机器,这时候这个请求就只能在干等着,等这个服务处理完那些请求后,再继续处理它。

    这样在浏览器中的反应就像12306我们在春节买票一样,卡在那不动了,让用户眼巴巴的干着急。而能提供同样服务的其它机器,这时确很空闲。这样不仅是对服务器资源的浪费,也充分发挥不出弄多台服务器装同一个服务的最高价值。我们通常称对某一台机器的访问量称为负载量,如何将一个用户的请求,合理的分配到一台能快速响应用户请求的服务器上,我们就需要用到一些负载策略。

    负载均衡,将用户的所有HTTP请求均衡的分配到每一台机器上,充分发挥所有机器的性能,提高服务的质量和用户体验。负载均衡可以通过负载均衡网络硬件设备和Web服务器软件来实现,前者设备成本较高,小公司通常负担不起,所以后者一般是我们的首选。实现负载均衡常用的Web服务器软件有Nginx、LVS、Apache等,本文主要介绍Nginx的如何实现负载均衡.

    2.知识剖析

    NGINX的UPSTREAM模块

    Nginx负载均衡是通过upstream模块来实现的.upstream模块,使nginx跨越单机的限制,完成网络数据的接收、处理和转发。

    数据转发功能,为nginx提供了跨越单机的横向处理能力,使nginx摆脱只能为终端节点提供单一功能的限制,而使它具备了网路应用级别的拆分、封装和整合的战略功能。

    从本质上说,upstream属于handler,只是他不产生自己的内容,而是通过请求后端服务器得到内容,所以才称为upstream(上游)。请求并取得响应内容的整个过程已经被封装到nginx内部,所以upstream模块只需要开发若干回调函数,完成构造请求和解析响应等具体的工作。

    NGINX负载均衡模块

    负载均衡模块用于从”upstream”指令定义的后端主机列表中选取一台主机。nginx先使用负载均衡模块找到一台主机,再使用upstream模块实现与这台主机的交互。

    负载均衡模块的配置区集中在upstream{}块中。负载均衡模块的回调函数体系是以init_upstream为起点,经历init_peer,最终到达peer.get和peer.free。其中init_peer负责建立每个请求使用的server列表,peer.get负责从server列表中选择某个server(一般是不重复选择),而peer.free负责server释放前的资源释放工作。

    NGINX的负载均衡策略

    一,内置负载策略:

    轮循(默认):Nginx根据请求次数,将每个请求均匀分配到每台服务器

    最少连接:将请求分配给连接数最少的服务器。Nginx会统计哪些服务器的连接数最少。

    IP Hash :绑定处理请求的服务器。第一次请求时,根据该客户端的IP算出一个HASH值,将请求分配到集群中的某一台服务器上。后面该客户端的所有请求,都将通过HASH算法,找到之前处理这台客户端请求的服务器,然后将请求交给它来处理。

    二,第三方负载策略

    1>fair:

    根据服务器的响应时间来分配请求,响应时间短的优先分配,即负载压力小的优先会分配。 由于fair模块是第三方提供的,所以在编译nginx源码的时候,需要将fair添加到nginx模块中。

    2>url_hash

    按请求url的hash结果来分配请求,使每个url定向到同一个后端服务器,服务器做缓存时比较有效。 1.7.2版本以后,url_hash模块已经集成到了nginx源码当中,不需要单独安装。之前的版本仍需要单独安装.

    NGINX加权轮询算法

    Nginx的加权轮询算法将保持选择的平滑性,即尽可能均匀的分摊节点,节点分配不再是连续的。

    1、概念解释,每个节点有三个权重变量,分别是: (1) weight: 约定权重,即在配置文件或初始化时约定好的每个节点的权重。 (2) effectiveWeight: 有效权重,初始化为weight。 在通讯过程中发现节点异常,则-1; 之后再次选取本节点,调用成功一次则+1,直达恢复到weight; 此变量的作用主要是节点异常,降低其权重。 (3) currentWeight: 节点当前权重,初始化为0。

    2、算法逻辑: (1) 轮询所有节点,计算当前状态下所有节点的effectiveWeight之和totalWeight; (2) currentWeight = currentWeight + effectiveWeight; 选出所有节点中currentWeight中最大的一个节点作为选中节点; (3) 选中节点的currentWeight = currentWeight - totalWeight; 基于以上算法,我们看一个例子: 这时有三个节点{a, b, c},权重分别是{a=4, b=2, c=1},共7次请求,初始currentWeight值为{0, 0, 0},每次分配后的结果如下:

    3.编码实战

    4.常见问题

    一,压力过大

    压力过大的例子:有一次,某技术哥为某金融机构部署负载均衡。在没部署之前,调试没有任何问题,也通过了压力测试,而且能达到3000/秒的用户数。但是就在技术哥上了负载产品后,一开始还能达到 4000/秒左右,转眼却如洪水倾泻,用户数急速降低,甚至还不如没上负载前。 “本来我们网络没有这么慢,现在加了负载均衡却变慢了,是不是你们负载产品有问题啊?”用户提出了尖锐的质 疑。经过仔细观察发现:压力下,负载工作很正常,CPU也很低。但没上负载前,后台数据库的CPU工作在85%左 右,加了负载均衡之后,数据库反而瞬间达到了百分之九十多,然后就居高不下了…… 问题原因究竟在哪儿?

    细究之下发现,原来这个机构的数据库平台在设计之初,没有考虑到以后需要在负载的情况下应用,现在经过负载,给数据库的压力增加了,数据库中某个表查询过慢,反而导致了整个数据库查询效率降低,进而影响了整个系统。所以,综上案例可以发现,负载设备和客户的应用业务是息息相关的,要想成功的部署负载均衡,并使其发挥预期的效果,除了要了解客户需求,更要应地制宜,知己知彼才能让负载均衡产品发挥出它该有的作用。

    5.参考文献

    http://network.51cto.com/art/201507/485289.htm

    https://blog.csdn.net/xyang81/article/details/51702900

    https://blog.csdn.net/u014513883/article/details/48550709

    http://tengine.taobao.org/book/chapter_05.html

    6.更多讨论

    鸣谢

    感谢观看,如有出错,恳请指正


    今天的分享就到这里啦,欢迎大家点赞、转发、留言、拍砖~

            技能树.IT修真院

            “我们相信人人都可以成为一个工程师,现在开始,找个师兄,带你入门,掌控自己学习的节奏,学习的路上不再迷茫”。

            这里是技能树.IT修真院,成千上万的师兄在这里找到了自己的学习路线,学习透明化,成长可见化,师兄1对1免费指导。快来与我一起学习吧~

    我的邀请码:17742750,或者你可以直接点击此链接:http://www.jnshu.com/login/1/17742750

    展开全文
  • 添加pcre库依赖 PCRE(Perl Compatible Regular Expressions中文含义:perl语言兼容正则表达式)是一个用C语言编写的正则表达式函数库,由菲利普.海泽(Philip Hazel)编写。PCRE是一个轻量级的函数库,比Boost之类的...
    1. 添加pcre库依赖

      PCRE(Perl Compatible Regular Expressions中文含义:perl语言兼容正则表达式)是一个用C语言编写的正则表达式函数库,由菲利普.海泽(Philip Hazel)编写。PCRE是一个轻量级的函数库,比Boost之类的正则表达式库小得多。PCRE十分易用,同时功能也很强大,性能超过了POSIX正则表达式库和一些经典的正则表达式库

    wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz 下载
    tar -zxvf pcre-8.37.tar.gz 解压
    ./configure 生成Makefile 文件,Makefile 文件描述了整个工程的编译、连接等规则。其中包括:工程中的哪些源文件需要编译以及如何编译、需要创建哪些库文件以及如何创建这些库文件、如何最后产生我们想要的可执行文件。尽管看起来可能是很复杂的事情,但是为工程编写Makefile 的好处是能够使用一行命令来完成“自动化编译”,一旦提供一个(通常对于一个工程来说会是多个)正确的 Makefile。编译整个工程你所要做的事就是在shell 提示符下输入make命令。整个工程完全自动编译,极大提高了效率。
    make 编译c语言代码
    make install 安装程序

    1. 安装其他依赖
      opneSSL :在计算机网络上,OpenSSL是一个开放源代码的软件库包,应用程序可以使用这个包来进行安全通信,避免窃听,同时确认另一端连接者的身份。这个包广泛被应用在互联网的网页服务器上
      zlib : zlib是一个压缩库,类似于zip。你在linux下看到的*.gz文件,就是用zlib压缩的。
      gcc : GCC原本作为GNU操作系统的官方编译器 编译c/c++语言

    2. 安装nginx
      下载安装包 解压 make && make install 默认安装到 在linux中文件与软件一般都是安装在到/usr/share和/usr/local中了
      在/usr/local/nginx/sbin 目录下 使用 ./nginx
      nginx使用的是80端口 所以开发防火墙
      firewall-cmd --list-all 查看所有开发端口
      firewall-cmd --permanent --add-port=80/tcp 添加防火墙端口
      firewall-cmd --reload 重启防火墙使配置生效

    3. nginx的常见命令
      ./nginx 启动
      ./nginx -v 查看版本
      ./nginx -s stop 停止
      ./nginx -s reload 重新加载

    展开全文
  • ngin专题-nginx介绍

    2020-08-03 22:00:26
    什么是nginx? ...其它常见的web服务器有apache,tomcat,iis等。 nginx的特点 nginx具有非常多的优点,博主暂时列举了一下几个优点,并且由于时间的限制,并没有深入研究,得到一些确切的数据。等有时间了,会回过头来...

    什么是nginx?

    nginx是一个高性能的Http和反向代理web服务器。其它常见的web服务器有apache,tomcat,iis等。

    nginx的特点

    nginx具有非常多的优点,博主暂时列举了一下几个优点,并且由于时间的限制,并没有深入研究,得到一些确切的数据。等有时间了,会回过头来试验。

    支持高并发连接

    nginx可以轻松支持几万的高并发。

    内存消耗小

    内存消耗

    成本低廉

    首先nginx是免费开源的web服务器,并且它的性能比较优越,也就相当于节省了服务器资源。

    负载均衡

    nginx可以实现负载均衡,就是通过一定的路由算法,将请求均衡的分配到多个服务器应用上。

    反向代理

    nginx可以实现反向代理的功能。举个例子,比如说一台服务器上部署了多个应用程序(这个应用程序的端口并不一致),我们可以借助于nginx的转发功能,将不同的url规则路由到不同的应用程序上。常见于前后端分离的应用。

    支持热部署

    nginx可以支持配置文件的热加载,可以支持nginx版本的热升级

    nginx文件目录

    nginx文件目录

    目录介绍

    • conf,配置文件
    • docs,文档
    • logs,日志文件
    • nginx.exe nginx

    nginx常用命令

    这里介绍一下windows环境下nginx的常用命令,并且命令需要在nginx.exe所在目录下执行。

    启动

    #也可以直接运行nginx.exe文件
    start nginx 
    

    正常停止

    nginx.exe -s quit
    

    快速停止

    nginx.exe -s stop
    

    重新加载

    nginx -s reload
    

    常见错误

    windows下nginx启动报错

    在windows上安装nginx的时候,nginx会启动错误。错误信息如下:

     bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)
    

    这是因为windows系统自带了iis web服务器,iis已经占用了80端口,小伙伴们可以自行百度一下解除占用教程。

    windows下nginx进程无法彻底杀死

    在使用nginx停止命令时,nginx不会出现无法彻底杀死的情况。图中的nginx.pid记录了nginx的进程pid。

    pid配置

    此时如果使用程序管理器 或者 taskkill /pid /F 端口号杀死nginx,无法正常停止。

    解决方法

    taskkill /f /t /im nginx.exe
    

    nginx的基本配置介绍

    #使用的用户
    #user  nobody;
    
    #指定的工作进程树
    worker_processes  1;
    
    #指定错误日志存放的路径
    #error_log  logs/error.log;
    #error_log  logs/error.log  notice;
    #error_log  logs/error.log  info;
    
    #指定pid的存放路径
    #pid        logs/nginx.pid;
    
    events {
    	#允许的连接数
        worker_connections  1024;
    }
    
    #http服务器配置
    http {
    
    	#导入支持的mime文件类型
        include       mime.types;
    	
    	#默认mime类型 二进制流
        default_type  application/octet-stream;
    
    	#日志的输出格式
        #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
        #                  '$status $body_bytes_sent "$http_referer" '
        #                  '"$http_user_agent" "$http_x_forwarded_for"';
    
    	#日志的存放路径
        #access_log  logs/access.log  main;
    
        sendfile        on;
        #tcp_nopush     on;
    
    	#一个连接请求完之后还需要保持多长时间
        #keepalive_timeout  0;
        keepalive_timeout  65;
    
    	#是否开启gzip压缩,需要服务器和浏览器同时支持
        #gzip  on;
    
    	#虚拟主机配置
        server {
    		
    		#监听端口
            listen       80;
    		
    		#监听域名
            server_name  www.test.com;
    
    		#字符集
            #charset koi8-r;
    
    		#日志存放路径
            #access_log  logs/host.access.log  main;
    
    		#路径定位
            location / {
    			
    			#转发配置
                 proxy_pass http://localhost:8080/;    
            }
    
    		#错误状态码 页面配置
            #error_page  404              /404.html;
    
            # redirect server error pages to the static page /50x.html
    		#
            error_page   500 502 503 504  /50x.html;
            location = /50x.html {
    		
    			#根目录配置
                root   html;
            }
        }
    }
    
    

    推荐书籍

    <<实战Nginx.取代Apache的高性能Web服务器.2010.pdf>>

    博主微信公众号

    展开全文
  • ngin的简单使用

    2017-12-21 10:06:06
    1.在ubuntu上安装nginx: apt-get install nginx 默认位置:/etc/nginx   2.配置测试环境  配置hosts 127.0.0.1 lfseniro.me     3.配置反向代理 增加server节点,配置...Nginx 
  • 华为后台系统架构发展趋势研究

    千次阅读 2010-05-15 17:15:00
    一直在跟进华为后台系统软件(比如网管)的发展趋势,但苦于资料欠缺,一直没有很好的进展。只能从零零散散的网上资料中窥得一鳞半爪,今天又搜到一 点信息,觉得有用,就把它们记录下来。 1 华为的一则招聘启示...
  • 在集成Ngin PHP环境时出现了 File not found 错误,找了好久,终于把这个问题解决了,这里简单的记录一下 出现的原因:php-fpm服务器fastcgi_param SCRIPT_FILENAME路径为nginx的访问路径,原因1、可能是因为这里...
  • Centos启动nginx

    2017-06-06 11:09:08
    /usr/local/nginx/sbin/ngin 配置文件存放地址是 /usr/local/nginx/conf/nginx.config 完整的命令 /usr/local/nginx/sbin/ngin -c /usr/local/nginx/conf/nginx.config 此时nginx服务器就正常启动了打开浏览器输
  • ngin高性能配置

    2018-06-28 11:26:41
  • 这里记录一下使用Ngin X作为反向代理连接TOMCAT集群,并配置通过...1.安装Ngin X 使用如下命令安装NginX sudo apt-get install nginx 2.配置SSL访问Ngin X 2.1 生成证书和密钥文件 我们使用openssl工具来生成密钥
  • Linux 学习笔记 20190214Nginx负载均衡Ngin SSLPHP-FPM配置1/2 Nginx负载均衡 Ngin SSL PHP-FPM配置1/2
  • 1、第一种方法 格式为: ngin地址 -c nginx配置文件位置 a.命令 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf 2、nginx停止命令(3种方法 2种方式)  a、从容停止 需要知道进程号 ...
  • nginx启动命令和停止命令

    万次阅读 2019-11-18 09:16:41
    cd /usr/local/nginx/sbin/ ./nginx ./nginx -s stop ./nginx -s quit ./nginx -s reload ./nginx -s quit:此方式停止步骤是待nginx进程处理任务完毕进行停止。 ./nginx -s stop:此方式相当于先查出nginx进程id再...
  • 解压完 fastdfs-nginx-module_v1.16.tar.gz后 make ,makeInstall都执行过了但是启动Nginx的时候依然包错,为什么呢? 笔者经过一下午的研究发现有工具没安装 直接执行   yum groupinstall'Development Tools' ...
  • replicationController 使用

    2019-08-11 09:41:08
    [root@lab2 nginx-harbor]# cat http-test.yaml apiVersion: v1 kind: ReplicationController metadata: name: ngin2 namespace: development spec: replicas: 1 template: metadata: ...
  • nginx 修改配置重新加载命令

    万次阅读 2017-08-05 13:55:28
    nginx -s reload
  • Nginx web服务器默认目录

    千次阅读 2018-03-27 11:05:01
    安装配置好nginx服务器后默认目录是/usr/share/nginx/html默认的目录和我自定义的目录不匹配,因此就需要修改掉ngin目录的位置;修改它默认的配置文件就OK,位置为/etc/nginx/conf.d/default.confamh控制面板路径为...
  • nginx服务器的根目录位置

    万次阅读 2019-06-09 16:37:43
    今天第一次安装好Nginx服务器之后,一时找不到Nginx服务器存放网页的根目录在哪里,于是上网查了查,总结一下。...打开ngin.conf文件之后找到server处,如图 其中listen 80 表示监听端口默认为80 root表示默...
  • 瞎聊 这段时间一直在忙着学习前端三大框架中的vue.js框架,大约花费了恩·····8天的时间,从小白到现在可以磕磕绊绊的开发,可以发现vue.js有多容易上手。 买了服务器,买了域名,着手搭建自己的一个写日记...
  • GSM智能网培训\NGIN知识体系.CHM )
1 2 3 4 5 ... 20
收藏数 5,126
精华内容 2,050
关键字:

ngin