24H免费课程咨询  TEL:13401595960   QQ:1870218756  微信:13401595960(李老师)

东方博宜

网站首页 > 软件开发资讯 > 安卓开发

【常州安卓开发培训班】培育优秀的你为己任

2018-04-16 19:00:31 东方博宜 阅读

什么是 Nginx?


Nginx 最初是作为一个 Web 服务器创建的,用于解决 C10k 的问题。作为一个 Web 服务器,它可以以惊人的速度为您的数据服务。但 Nginx 不仅仅是一个 Web 服务器,你还可以将其用作反向代理,与较慢的上游服务器(如:Unicorn 或 Puma)轻松集成。你可以适当地分配流量(负载均衡器)、流媒体、动态调整图像大小、缓存内容等等。


基本的 nginx 体系结构由 master 进程和其 worker 进程组成。master 读取配置文件,并维护 worker 进程,而 worker 则会对请求进行实际处理。


基本命令


要启动 nginx,只需输入:


[sudo] nginx


当你的 nginx 实例运行时,你可以通过发送相应的信号来管理它:


[sudo] nginx -s signal


可用的信号:


stop – 快速关闭

quit – 优雅关闭 (等待 worker 线程完成处理)

reload – 重载配置文件

reopen – 重新打开日志文件


指令和上下文


nginx 的配置文件,默认的位置包括:


/etc/nginx/nginx.conf,

/usr/local/etc/nginx/nginx.conf,或

/usr/local/nginx/conf/nginx.conf


配置文件的由下面的部分构成:


指令 – 可选项,包含名称和参数,以分号结尾


gzip on;


上下文 – 分块,你可以声明指令 – 类似于编程语言中的作用域


worker_processes 2; # 全局上下文指令

 

http {              # http 上下文

    gzip on;        # http 上下文中的指令

 

  server {          # server 上下文

    listen 80;      # server 上下文中的指令

  }

}


指令类型


在多个上下文中使用相同的指令时,必须要小心,因为继承模型不同时有着不同的指令。有三种类型的指令,每种都有自己的继承模型。


普通指令


在每个上下文仅有唯一值。而且,它只能在当前上下文中定义一次。子级上下文可以覆盖父级中的值,并且这个覆盖值只在当前的子级上下文中有效。


gzip on;

gzip off; # 非法,不能在同一个上下文中指定同一普通指令2次

 

server {

  location /downloads {

    gzip off;

  }

 

  location /assets {

    # gzip is on here

  }

}


数组指令


在同一上下文中添加多条指令,将添加多个值,而不是完全覆盖。在子级上下文中定义指令将覆盖给父级上下文中的值。


error_log /var/log/nginx/error.log;

error_log /var/log/nginx/error_notive.log notice;

error_log /var/log/nginx/error_debug.log debug;

 

server {

  location /downloads {

    # 下面的配置会覆盖父级上下文中的指令

    error_log /var/log/nginx/error_downloads.log;

  }

}


行动指令


行动是改变事情的指令。根据模块的需要,它继承的行为可能会有所不同。


例如 rewrite 指令,只要是匹配的都会执行:


server {

  rewrite ^ /foobar;

 

  location /foobar {

    rewrite ^ /foo;

    rewrite ^ /bar;

  }

}


如果用户想尝试获取 /sample:


server的rewrite将会执行,从 /sample rewrite 到 /foobar

location /foobar 会被匹配

location的第一个rewrite执行,从/foobar rewrite到/foo

location的第二个rewrite执行,从/foo rewrite到/bar


return 指令提供的是不同的行为:


server {

  location / {

    return 200;

    return 404;

  }

}


在上述的情况下,立即返回200。


处理请求


在 Nginx 内部,你可以指定多个虚拟服务器,每个虚拟服务器用 server{} 上下文描述。


server {

  listen      *:80 default_server;

  server_name netguru.co;

 

  return 200 "Hello from netguru.co";

}

 

server {

  listen      *:80;

  server_name foo.co;

 

  return 200 "Hello from foo.co";

}

 

server {

  listen      *:81;

  server_name bar.co;

 

  return 200 "Hello from bar.co";

}


这将告诉 Nginx 如何处理到来的请求。Nginx 将会首先通过检查 listen 指令来测试哪一个虚拟主机在监听给定的 IP 端口组合。


然后,server_name 指令的值将检测 Host 头(存储着主机域名)。


Nginx 将会按照下列顺序选择虚拟主机:


匹配sever_name指令的IP-端口主机

拥有default_server标记的IP-端口主机

首先定义的IP-端口主机

如果没有匹配,拒绝连接。

常州东方博宜是一家专注IT,互联网,电脑方面的顶尖培训机构,欢迎社会及院校有志互联网营销,搜索引擎营销的人士,来东方博宜报名学习,互相交流。

常州东方博宜地址:常州天宁区延陵西路2号工人文化宫5号楼

 2.新北区太湖东路9-4号常州创意园E12

 


Powered by 东方博宜教育咨询江苏有限公司  ©2008-2018 www.czos.cn