一、Nginx简介
什么是Nginx?
Nginx是一个http服务器。是一款使用c语言开发高性能的http 服务器/反向代理服务器及电子邮件代理服务器。官方测试nginx能够支撑5万并发链接,并且cpu、内存等资源消耗却非常低,运行非常稳定。它的特点是占有内存少,并发能力强。
Nginx的应用场景
- http服务器。Nginx是一个http服务可以独立提供http服务。可以做网页静态服务器。
- 虚拟主机。可以实现在一台服务器虚拟出多个网站。例如个人网站使用的虚拟主机。
- 反向代理,负载均衡。当网站的访问量达到一定程度后,单台服务器不能满足用户的请求时,需要用多台服务器集群可以使用nginx做反向代理。并且多台服务器可以平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。
代理
说到代理,首先我们要明确一个概念,所谓代理就是一个代表、一个渠道。
正向代理
正向代理最大的特点是客户端非常明确要访问的服务器地址,服务器只清楚请求来自哪个代理服务器,而不清楚来自哪个具体的客户端。正向代理模式屏蔽或者隐藏了真实客户端信息。
正向代理的用途:
- 访问原来无法访问的资源,如Google
- 可以做缓存,加速访问资源
- 对客户端访问授权,上网进行认证
- 代理可以记录用户访问记录,对外隐藏用户信息
反向代理
多个客户端给服务器发送的请求,Nginx服务器接收到之后,按照一定的规则分发给了后端的业务处理服务器进行处理了。此时,请求的来源也就是客户端是明确的,但是请求具体由哪台服务器处理的并不明确了,Nginx扮演的就是一个反向代理角色。客户端是无感知代理的存在的,反向代理对外都是透明的,访问者并不知道自己访问的是一个代理。因为客户端不需要任何配置就可以访问。
反向代理的作用
(1)保证内网的安全,通常将反向代理作为公网访问地址,Web服务器是内网
(2)负载均衡,通过反向代理服务器来优化网站的负载
二、Nginx安装
使用docker安装Nginx在docker的使用中有举例子
安装Homebrew
安装Homebrew:打开终端,输入如下一行代码即可:
ruby -e "$(curl --insecure -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
但是我这里安装的时候出现报错:curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused
*******解决办法:使用国内的镜像地址:
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
使用 Homebrew 安装 Nginx
- 在终端输入如下命令:
brew install nginx
- 查看Nginx 是否安装成功:
brew search Nginx
- 查看Nginx的版本号:
nginx -v
- 启动nginx:
brew services start nginx
- 启动成功后,使用浏览器打开http://localhost:8080 。出现以下页面,就说明启动成功了!(8080是nginx设置网站自带的默认端口)
三、Nginx的配置
Nginx配置文件
如果你下载好了Nginx,就可以打开conf文件夹的nginx.conf文件,Nginx服务器的基础配置,默认的配置也存放在此。
nginx文件目录
- nginx安装文件目录 :
/usr/local/Cellar/nginx
- nginx配置文件目录 :
/usr/local/etc/nginx
- config文件目录 :
/usr/local/etc/nginx/nginx.conf
- 系统hosts位置 :
/private/etc/hosts
配置文件 nginx.conf :
- 全局块:配置影响nginx全局的指令。一般有运行nginx服务器的用户组,nginx进程pid存放路径,日志存放路径,配置文件引入,允许生成worker process数等。
- events块:配置影响nginx服务器或与用户的网络连接。有每个进程的最大连接数,选取哪种事件驱动模型处理连接请求,是否允许同时接受多个网路连接,开启多个网络连接序列化等。
- http块:可以嵌套多个server,配置代理,缓存,日志定义等绝大多数功能和第三方模块的配置。如文件引入,mime-type定义,日志自定义,是否使用sendfile传输文件,连接超时时间,单连接请求数等。
- server块:配置虚拟主机的相关参数,一个http中可以有多个server。
- location块:配置请求的路由,以及各种页面的处理情况。
配置网站
- 进入配置文件 默认路径在 :
/usr/local/etc/nginx/nginx.conf
,可以打开文件夹,使用com+shift+g
,复制路径即可到达该文件。 - 修改配置文件:
本地网站路径就是自己要存放html的路径,我这里写的路径是:
/Users/buyifan/document/www
- 在自己设置的目录下放置要访问的文件。
- 修改配置文件之后需要重启Nginx :
nginx -s reload
。 - 打开浏览器输入自己设置的端口号进行访问网页。
- 在该端口号后面加上自己的文件名称,就可以访问自己要看的网页
nginx的常用命令
nginx -s quit
: 优雅停止nginx,有连接时会等连接请求完成再杀死worker进程nginx -s reload
: 优雅重启,并重新载入配置文件nginx.confnginx -s reopen
: 重新打开日志文件,一般用于切割日志nginx -v
: 查看版本nginx -t
: 检查nginx的配置文件nginx -V
: 详细版本信息,包括编译参数nginx -c filename
: 指定配置文件brew services stop Nginx
: 关闭nginx