Nginx:

目录

Nginx:... 1

NGINX简介和安装... 1

网站... 1

全称... 2

二次开发版... 2

Nginx的特性... 2

基本功能... 2

web服务相关的功能... 2

Nginx的基本架构:... 3

模块类型... 3

nginx主要用途... 3

nginx安装配置... 3

编译安装... 3

前期准备... 3

从官网获取源码包... 4

查看编译帮助文档... 4

安装... 4

启动NGINX. 5

NGINX配置文件... 5

配置文件组成... 5

配置文件配置指令... 6

配置文件结构... 6

全局配置网段:main block. 6

事件驱动配置... 6

http配置段... 6

配置文件简介... 7

main配置段... 7

NGINX简介和安装

网站

http://nginx.org/, C10k;

http://www.nginx.com

全称

完整写法engine X:简写为nginx

二次开发版

二次开发版tengine(淘宝), OpenResty

Nginx的特性

  1. 模块化设计,所以较好扩展性;
  2. 高可靠性

master/worker两级架构,master主控进程,worker为子进程,每个worker都有自己的 核心模块例如为了实现http功能有ht_core,和非核心模块例如ht_proxy,ht_fastcgi

  1. 支持热部署

不停机更新配置文件、更换日志、更新服务器程序版本;

  1. 低内存消耗

10000个keep-alive连接模式下的非活动连接(保持连接,但是没有数传输)仅消耗2.5M内存;

  1. 支持 event-driven, aio, mmap;
  2. 静态资源的web服务器;
  3. http协议的反向代理服务器;
  4. pop3, smpt, imap4等邮件协议的反向代理;
  5. 能缓存打开的文件(元数据)、
  6. 支持FastCGI(php-fpm), uWSGI(Python Web Framwork)等协议
  7. 模块化(非DSO机制),著名模块有:过滤器zip,SSI,SSL;
  8. 虚拟主机(server)
  9. keepalive
  10. 访问日志(支持基于日志缓冲提高其性能)
  11. url rewirte
  12. 路径别名
  13. 基于IP及用户的访问控制
  14. 支持速率限制及并发数限制;
  15. master/worker

基本功能

web服务相关的功能

Nginx的基本架构:

a)         一个master进程,可生成一个或多个worker进程;

b)         master: 加载配置文件、管理worker进程、平滑升级,...

c)         worker:http服务,http代理,fastcgi代理,...

模块类型

  1. 核心模块:core module
  2. 标准模块:

a)         Standard HTTP modules

b)         Optional HTTP modules

c)         Mail modules

  1. 第三方模块:3rd party modules
  2. 静态资源的web服务器
  3. http服务器反向代理

nginx主要用途

nginx安装配置

使用yum info nginx查看相关信息,显示没有匹配的软件包可以列出,说明nginx并没有被收录至centos发行光盘中。所以可以使用epel源来安装nginx。

编译安装

前期准备

安装开发组件

yum -y groupinstall "Development Tools"  "Server Platform Development"

安装PCRE,zlib,openssl

yum -y install pcre zlib openssl pcre-devel pcre-devel openssl-devel

PCRE – Supports regular expressions. Required by the NGINX Core and Rewrite modules.

zlib – Supports header compression. Required by the NGINX Gzip module.

OpenSSL – Supports the HTTPS protocol. Required by the NGINX SSL module and others.

从官网获取源码包

$ wget https://nginx.org/download/nginx-1.14.2.tar.gz

$ tar zxf nginx-1.14.2.tar.gz   #解压

$ cd nginx-1.14.2

查看编译帮助文档

./config --help  #返回如下图结果

注意有些模块前带有--without,这代表此模块默认加载。有些模块前带有--with这代表此模块默认不被加载需要在编译的时候使用--with-*_module编译。

安装

./configure

--prefix=/usr/local/nginx

--conf-path=/etc/nginx/nginx.conf

--user=nginx

--group=nginx

--error-log-path=/var/log/nginx/error.log

--http-log-path=/var/log/nginx/access.log

--pid-path=/var/run/nginx/nginx.pid

--lock-path=/var/lock/nginx.lock

--with-http_ssl_module

--with-http_stub_status_module

--with-http_gzip_static_module

--with-debug

make &&make install

启动NGINX

/usr/local/nginx/sbin/nginx

这个报错是因为我在编译安装时指定运行worker的用户为nginx。然而我没有在系统中创建这个用户。

NGINX配置文件

配置文件组成

  1. 主配置文件:nginx.conf
  2. 注意:

a)         除去上图所有文件外,nginx配置文件还包括在nginx.conf中使用include指令指定的配置文件。

b)         上图中有类似A.conf和A.conf.default的配置文件。其中A.conf.default,是默认的配置文件

配置文件配置指令

  1. 切记:配置指令必须以分号结尾
  2. 格式:Directive  value1 [value2...];
  3. 变量:支持使用变量

a)              内置变量:由模块引入;

b)              自定义变量:

l    set  variable  value;

c)         引用变量:$variable

配置文件结构

全局配置网段:main block

事件驱动配置

event {

...

}

http配置段

http {

...

server {

...

server_name

root

alias

location /uri/ {

}

...

}

server {

...

}

}

配置文件简介

main配置段

正常运行必备的配置

优化性能相关的配置

用于调试、定位问题的配置

  1. 正常运行必备的配置:由核心模块引入的配置

a)         user USERNAME  [GROUPNAME];

指定用于运行worker进程的用户和组;

eg:user  nginx  nginx;

b)         pid  /PATH/TO/PID_FILE;

指定nginx进程的pid文件路径;

eg:pid  /var/run/nginx.pid;

c)         worker_rlimit_nofile number;

指定一个worker进程所能够打开的最大文件数量;

  1. 性能优化相关的配置:

a)         worker_processes  auto|number;

worker进程的个数;通常应该为物理CPU核心数量减1;

可以为"auto",实现自动设定;

b)         worker_cpu_affinity  auto|CPUMASK CPUMASK ...;

设置worker与CPU的亲和力。通过该指令可以将一个worker进程绑定到指定CPU。

c)         worker_priority  number;

通过nice值,设置worker进程的优先级,从-20(最高)到19(最低),默认为0。                  注意内核的有优先级为-5,因此不建议设值<=-5

  1. 调试、定位问题的配置:

a)         daemon  off|on;

是否以守护进程方式启动nignx;

eg :daemon off

b)         master_process  on|off;

是否以master/worker模型运行nginx,设置为off将不启动worker进程;

c)         error_log  file [level];

l  file:其值可以是如下几种

PATH/TO/LOG:记录日志文件的位置。s

Stderr:将日志处处到标准输出

syslog:server=adderess:将日志发往指定的日志服务器

memory:size:将日志输出到内存中

l  level:设定日志级别

debug, info, notice, warn, error, crit, alert, or emerg

注意:错误日志文件及其级别;出于调试的需要,可以设定为debug;但debug仅在编译时使用了“--with-debug”选项时才有效;

nginx一:安装和基本应用的更多相关文章

  1. Nginx服务安装配置

    1.Nginx介绍 Nginx是一个高性能的HTTP和反向代理服务器,由俄罗斯人开发的,第一个版本发布于2004年10月4日.Nginx由于出色的性能,在世界范围内受到了越来越多人的关注,其特点是占有 ...

  2. Django Nginx+uwsgi 安装配置

    使用 python manage.py runserver 来运行服务器.这只适用测试环境中使用. 正式发布的服务,我们需要一个可以稳定而持续的服务器,比如apache, Nginx, lighttp ...

  3. mysql 自动备份和nginx自动安装脚本

    一.自动备份Mysql脚本: 如下脚本为mysql自动备份脚本,仅供参考,可以根据实际情况修改. #!/bin/sh #auto backup mysql #wugk #Define PATH定义变量 ...

  4. nginx的安装

    1,,nginx的安装 为什么使用nginx我就不多说了,很优秀的,请再行google 在安装前,先安装pcre,安装zlib,安装openssl,以及一些其他包 yum install -y gcc ...

  5. nginx编译安装

    Nginx编译安装 1.nginx官网:http://wiki.nginx.org/Install下载:http://nginx.org/en/download.html 2.编译安装# wget h ...

  6. nginx 的安装

    一.必要软件准备1.安装pcre 为了支持rewrite功能,我们需要安装pcre 复制代码代码如下: # yum install pcre* //如过你已经装了,请跳过这一步 2.安装openssl ...

  7. linux/centos下安装nginx(rpm安装和源码安装)详细步骤

    Centos下安装nginx rpm包                                                                                 ...

  8. nginx的安装与配置

    1.nginx的安装与配置 编译安装nginx需要实现安装开发包组“Development tools”和“Server Platform Development”.“Desktop Platform ...

  9. nginx笔记----安装

    nginx的安装 ./configure make && make install (一)准备条件: 1.GCC---gun编译器集合 Nginx是一个由C语言编写的程序,因此首先需要 ...

  10. Linux下Nginx的安装、升级及动态添加模块

    系统基于ubuntu server 14.04.4 amd64 安装 第一步 下载并解压Nginx压缩包 从Nginx官网下载Nginx,或者在Linux上执行wget http://nginx.or ...

随机推荐

  1. 设计模式(十八)Memento模式

    在使用面向对象编程的方式实现撤销功能时,需要事先保存实例的相关状态信息.然后,在撤销时,还需要根据所保存的信息将实例恢复至原来的状态. 要想恢复实例,需要一个可以自由访问实例内部结构的权限.但是,如果 ...

  2. Java基础(十)接口(interface)

    1.接口的概念 在Java中,接口不是类,而是对类的一组需求描述,这些类要遵从接口描述. 例如:Array类中的sort方法可以对对象数组进行排序,但要求满足下列前提:对象所属的类必须实现了Compa ...

  3. 在k8s上安装Jenkins及常见问题

    持续集成和部署是DevOps的重要组成部分,Jenkins是一款非常流行的持续集成和部署工具,最近试验了一下Jenkins,发现它是我一段时间以来用过的工具中最复杂的.一个可能的原因是它需要与各种其它 ...

  4. 重新认识MySQL中的COUNT语句

    在数据库的增删改查操作中,使用最频繁的就是查询操作. 而在所有查询操作中,统计数量操作更是经常被用到. 关于数据库中行数统计,无论是MySQL还是Oracle亦或者是SqlServer,都有一个函数可 ...

  5. Java自动化测试框架-08 - TestNG之并行性和超时篇 (详细教程)

    一.并行性和超时 您可以指示TestNG以各种方式在单独的线程中运行测试. 可以通过在suite标签中使用 parallel 属性来让测试方法运行在不同的线程中.这个属性可以带有如下这样的值: 二.并 ...

  6. H5 + WebGL 实现的地铁站 3D 可视化系统

    前言 工业互联网,物联网,可视化等名词在我们现在信息化的大背景下已经是耳熟能详,日常生活的交通,出行,吃穿等可能都可以用信息化的方式来为我们表达,在传统的可视化监控领域,一般都是基于 Web SCAD ...

  7. Kong07-自定义 Kong 插件

    在进一步讨论之前,有必要简要说明 Kong 是如何构建的,特别是它是如何与 Nginx 集成的,以及 Lua 与它有什么关系. 在 Nginx 中,lua-nginx-module 模块支持 Lua ...

  8. js基础总结03 --操作数组

    修改于 2019-11-10 1 length:长度 <script> var arr = [1,2,3,4,5,6,7,8]; console.log(arr.length);//arr ...

  9. EFK教程 - ElasticSearch高性能高可用架构

    通过将elasticsearch的data.ingest.master角色进行分离,搭建起高性能+高可用的ES架构 作者:"发颠的小狼",欢迎转载与投稿 目录 ▪ 用途 ▪ 架构 ...

  10. php mkdir不能创建文件夹的原因

    php mkdir不能创建文件夹的原因 1 权限问题2 open_basedir设置问题 参考方法http://newmiracle.cn/?p=2896