首先了解一下两个概念:正向代理、反向代理
正向代理:你的电脑访问的时候,你要去哪台服务器,FQ的时候,vpn(就是正向代理的过程)去告诉你应该访问那台服务器。
反向代理:你访问到服务器之后,这个服务器再分发,分发到不同的服务器或者端口,这个就是反向代理
Nginx 现在用的最多的就是反向代理。
Nginx 是什么?
ngnix 就是处于缓存、负载均衡、代理的中间服务。可以做静态服务器,也可以做代理分发功能。
附上一张apache和ngnix对比图:
使用Nginx,其实Nginx就是个配置生成服务器的,Nginx就是个静态语音,是一个包,通过编译,编译完生成一个应用程序,就可以跑起来啦,
Nginx版本在<=1.9.11的时候,·完全是一个静态语言,每改一些东西的时候,就需要重新编译,重新运行,担当>1.9.11就可以动态加载,如果你有新模块,就不需要重新编译,直接通过语法,新增一些包。
新功能:线程池(预先生成线程池来处理任务),Nginx模块丰富可以支持http2(通过配置文件)等。
Nginx的生态系统:
附图:
推荐使用tengine,很快
Nginx入门:
linux环境下编译命令:
make命令就是编译;
make install 安装;
Nginx启动之后,可以使用的以下命令控制:
Nginx -S
-s 意思是向主进程发送信号,signal可以为以下四个钟的一个:
quit::优雅关闭
reload:重新加载配置文件
reopen:重新打开日志文件
Nginx 及其模块的工作方式由配置文件决定。默认情况下,配置文件名为Nginx.conf,放在/usr/local/Nginx/conf、/etc/Nginx或者/usr/local/etc/Nginx文件夹中。
常规站点配置:
注释:
注释以#开头
指令:
eg:
worker_processes 1; 指令名 指令值
还可以是指令块:以"{"和"}"组成的区块,
eg:
http{ server{ } }
组织和包含:
include file|mask
eg:
include mime.types
Nginx内置很多变量,可以去Nginx官网搜索,不需要特意记。
Nginx命令:
daemon on|off //启用或者禁用守护进程模式
error_log file|stderr 等等 //配置错误日志位置及级别 很有用的,可以多了解一下。
user user [group] //设置运行ngnix进程的用户和组,如果不指定组,则其与user同名
log_not_found on|off //开启或者禁用404记录
worker_processes number|auto //定义worker进程的数量
worker_connections number //定义一个worker进程的最大连接数
区块结构:
http:为HTTP服务器提供配置上下文
server:表示开始设置的虚拟主机的配置
location:为某个请求URL(路径)建立配置
server 命令:
listen 设置web服务监听套接字的IP地址或者端口号
listen address[:port] [other]
server_name name ... //设置虚拟机的名称
location 为某个请求URI建立配置
location [ = | ~ | ~* | ^~ ] url { ... }
location @name { ... }
=修饰符 url定位必须与指定的模式精准匹配(不能使用正则表达式) 相当于写死了
无修饰符:uri必须以指定模式开始,不可以使用正则表达式
~修饰符:客户端请求的url与指定的正则表达式匹配必须区分大小写
~*修饰符:客户端请求的url与指定的正则表达式匹配,不区分大小写
^~修饰符:如果最大的前缀匹配的路径以^~开始,那么Nginx不再校验检查正则表达式
@修饰符:定义命名location区段,这些区段客户端不能访问,只能又内部产生的请求访问
优先级:修饰符的优先级
eg:
学完以上命令看一下一个测试例子
Nginx模块部分:
rewtite模块 :
index模块 :
Upstream模块 :
Proxy模块 :
Rwallp模块 :
Gzip模块 :
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。