加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 业界 > 正文

你真的相识怎样将Nginx设置为Web处事器吗

发布时间:2018-12-13 23:13:06 所属栏目:业界 来源:lufficc.com
导读:抽象来说,将 Nginx 设置为 Web 处事器就是界说处理赏罚哪些 URLS 和如那里理赏罚这些URLS 对应的哀求。详细来说,就是界说一些假造处事器(Virtual Servers),节制具有特定 IP 和域名的哀求。 更详细的来说, Nginx 通过界说一系列 locations 来节制对 URIS 的选择
副问题[/!--empirenews.page--]

抽象来说,将 Nginx 设置为 Web 处事器就是界说处理赏罚哪些 URLS 和如那里理赏罚这些URLS 对应的哀求。详细来说,就是界说一些假造处事器(Virtual Servers),节制具有特定 IP 和域名的哀求。

更详细的来说, Nginx 通过界说一系列 locations 来节制对 URIS 的选择。每一个 location 界说了对映射到本身的哀求的处理赏罚场景:返回一个文件可能署理哀求,可能按照差异的错误代码返回差异的错误页面。其它,按照 URI 的差异,哀求也可以被重定向到其余 server 可能 location 。

你真的相识怎样将Nginx设置为Web处事器吗

配置假造处事器

listen:

Nginx 设置文件至少包括一个 server 呼吁 ,用来界说假造处事器。当哀求到来时, Nginx 会起首选择一个假造处事器来处理赏罚该哀求。

假造处事器界说在 http 上下文中的 server 中:

  1. http {    
  2.     server {    
  3.         # Server configuration    
  4.     }    

留意: http 中可以界说多个 server

server 设置块行使 listen 呼吁监听本机 IP 和端标语(包罗 Unix domain socket and path),支持 IPv4、IPv6,IPv6地点必要用方括号括起来:

  1. server {    
  2.     listen 127.0.0.1:8080;  # IPv4地点,8080端口    
  3.     # listen [2001:3CA1:10F:1A:121B:0:0:10]:80;   # IPv6地点,80端口    
  4.     # listen [::]:80;  # 听本机的全部IPv4与IPv6地点,80端口    
  5.     # The rest of server configuration    

上述设置,假如不写端标语,默认行使80端口,假如不写 IP ,则监听本机全部 IP。

server_name:

假如多个 server 的 listen IP 和端标语千篇一律, Nginx 通过哀求头中的 Host

你真的相识怎样将Nginx设置为Web处事器吗

与 server_name 界说的主机名举办较量,来选择吻合的假造处事器处理赏罚哀求:

  1. server {    
  2.     listen      80;    
  3.     server_name lufficc.com  www.lufficc.com;    
  4.     ...    

server_name 的参数可觉得:

1、完备的主机名,如:api.lufficc.com 。

2、含有通配符(含有 *),如:*.lufficc.com 或 api.* 。

3、正则表达式,以 ~ 开头。

通配符只能在开头或末了,并且只能与一个 . 相邻。www.*.example.org 和 w*.example.org均无效。 可是,可以行使正则表达式匹配这些名称,譬喻 ~^www..+.example.org$ 和~^w.*.example.org$ 。 并且 * 可以匹配多个部门。 名称 * .example.org 不只匹配www.example.org,还匹配www.sub.example.org。

对付正则表达式:Nginx 行使的正则表达式与 Perl 编程说话(PCRE)行使的正则表达式兼容。 要行使正则表达式,且必需以 ~ 开头。

定名的正则表达式可以捕捉变量,,然后行使:

  1. server {    
  2.     server_name   ~^(www.)?(?<domain>.+)$;    
  3.  
  4.     location / {    
  5.         root   /sites/$domain;    
  6.     }    

小括号 () 之间匹配的内容,也可以在后头通过 $1 来引用,$2 暗示的是前面第二个 () 里的内容。因此上述内容也可写为:

  1. server {    
  2.     server_name   ~^(www.)?(.+)$;    
  3.  
  4.     location / {    
  5.         root   /sites/$2;    
  6.     }    

一个 server_name 示例:

  1. server {    
  2.     listen      80;    
  3.     server_name api.lufficc.com  *.lufficc.com;    
  4.     ...    

同样,假如多个名称匹配 Host 头部, Nginx 回收下列次序选择:

1、完备的主机名,如 api.lufficc.com。

2、最长的,且以 * 开头的通配名,如:*.lufficc.com。

3、最长的,且以 * 末了的通配名,如:api.* 。

4、第一个匹配的正则表达式。(凭证设置文件中的次序)

即优先级:api.lufficc.com > *.lufficc.com > api.* > 正则。

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读