# Nginx

# 配置虚拟域名

  1. nginx.conf 中添加:
include vhost/*.conf;
  1. 创建 vhost 文件夹及虚拟域名conf文件

# 基础命令

nginx // 启动

nginx -s stop // 停止

nginx -s reload // 重启

nginx -t // 检查配置状态

/opt/local/var/log/nginx  // 日志

# Nginx特性

  • IO多路复用epoll,并行的方式来完成IO流请求

什么是IO多路复用? 多个描述符的I/O操作都能在一个县城内并发交替地顺序完成,这就叫I/O多路复用,这里的“复用”指的是复用同一个线程。 什么是epoll模型? 1.每当FD就绪,采用系统的回调函数之间将fd放入,效率更高。(类似事件驱动) 2.最大连接无限制。

  • 轻量级web服务,功能模块少,代码模块化

  • CPU亲和(affinity)

  • sendfile

什么是CPU亲和? 是一种把CPU核心和Nginx工作进程绑定方式,把每个worker进行固定在一个cpu上执行,减少切换cpu的cache miss,获得更好的性能。

# 什么是反向代理与负载均衡 (opens new window)

什么是反向代理

当我们有一个服务器集群,并且服务器集群中的每台服务器的内容一样的时候,同样我们要直接从个人电脑访问到服务器集群服务器的时候无法访问,必须通过第三方服务器才能访问集群

这个时候,我们通过第三方服务器访问服务器集群的内容,但是我们并不知道是哪一台服务器提供的内容,此种代理方式称为反向代理

什么是负载均衡

公司会建立很多的服务器,这些服务器组成了服务器集群,然后,当用户访问网站的时候,先访问一个中间服务器,再让这个中间服务器在服务器集群中选择一个压力较小的服务器,然后将该访问请求引入选择的服务器

所以,用户每次访问,都会保证服务器集群中的每个服务器压力趋于平衡,分担了服务器压力,避免了服务器崩溃的情况

一句话:nginx会给你分配服务器压力小的去访问

用户访问网站的时候首先会访问nginx服务器,然后nginx服务器再从服务器集群中选择压力较小的服务器,将该访问请求引向该服务器