概念
反向代理:在服务器端的而代理,为了实现安全和负载均衡等。
每个 url 请求都会对应的一个服务,nginx 进行处理转发或者是本地的一个文件路径,或者是其他服务器的一个服务路径。而这个路径的匹配是通过 location 来进行的。我们可以将 server 当做对应一个域名进行的配置,而 location 是在一个域名下对更精细的路径进行配置。
当我们配置 upstream 时是对 upstream 模块,而 server 和 location 是在 http core 模块,其他的还有流控的 limt 模块,邮件的 mail 模块,https 的 ssl 模块。他们的配置都是类似的可以再 nginx 的模块文档中找到详细的配置说明。
Poll模型(epoll and kqueue )
配置
server:虚拟主机的概念
root:是指将本地的一个文件夹作为所有 url 请求的根路径。
要让配置生效,我们不必重启 nginx 只需要 reload 配置即可。
upstream:Nginx可以配置代理多台服务器,当一台服务器宕机之后,仍能保持系统可用。
upstream store {
ip_hash;
server 10.0.6.108:7080;
server 10.0.0.85:8980;
}
可以配置负载分配策略。
将server节点下的location节点中的proxy_pass配置为:http:// + upstream名称,即可使用这个负载。
location的匹配:其中“~ ”和“~* ”前缀表示正则location ,“~ ”区分大小写,“~* ”不区分大小写;其他前缀(包括:“=”,“^~ ”和“@ ”)和无任何前缀的都属于普通location 。
^~ 开头表示uri以某个常规字符串开头
接口代理
项目改造,需要本地测试新接口
1.配置将请求转移到真正提供服务的机器上:
location / {
proxy_pass 123.34.56.67:8080;
}
proxy_set_header:允许重新定义或添加发往后端服务器的请求头。
命令
1.window下:
启动:start nginx
停止:nginx -s stop 或 nginx -s quit quit是有序退出
重新载入: nginx -s reload
查看命令: nginx -h
疑问
nginx和hosts文件的关系
hosts请求是正向的,优先在本地查找域名解析。
nginx解析是反向,接收请求,根据配置分发到upstream策略中去