加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (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 的选择

假如 Host 头部不匹配任何一个 server_name ,Nginx 将哀求路由到默认假造处事器。默认假造处事器是指:nginx.conf 文件中第一个 server 可能 显式用 default_server 声明:

  1. server {    
  2.     listen      80 default_server;    
  3.     ...    

设置 location

URI 与 location 参数的匹配

当选择好 server 之后,Nginx 会按照 URIs 选择吻合的 location 来抉择署理哀求可能返回文件。

location 指令接管两种范例的参数:

1、前缀字符串(路径名称)

2、正则表达式

对付前缀字符串参数, URIs 必需严酷的以它开头。譬喻对付 /some/path/ 参数,可以匹配/some/path/document.html ,可是不匹配 /my-site/some/path,由于 /my-site/some/path 不以/some/path/ 开头。

  1. server {    
  2.     listen      80 default_server;    
  3.     ...    

对付正则表达式,以 ~ 开头暗示巨细写敏感,以 ~* 开头暗示巨细写不敏感。留意路径中的 . 要写成 . 。譬喻一个匹配以 .html 可能 .htm 末了的 URI 的 location:

  1. location ~ .html? {    
  2.     ...    

正则表达式的优先级大于前缀字符串。假如找到匹配的前缀字符串,仍继承搜刮正则表达式,但假如前缀字符串以 ^~ 开头,则不再搜查正则表达式。

详细的搜刮匹配流程如下:

1、将 URI 与全部的前缀字符串举办较量。

2、= 修饰符表白 URI 必需与前缀字符串相称(不是开始,而是相称),假如找到,则搜刮遏制。

3、假如找到的最长前缀匹配字符串以 ^~ 开头,则不再搜刮正则表达式是否匹配。

4、存储匹配的最长前缀字符串。

5、测试比拟 URI 与正则表达式。

6、找到第一个匹配的正则表达式后遏制。

7、假如没有正则表达式匹配,行使 4 存储的前缀字符串对应的 location。

= 修饰符拥有最高的优先级。如网站首页会见频仍,我们可以专门界说一个 location 来镌汰搜刮匹配次数(由于搜刮到 = 修饰的匹配的 location 将遏制搜刮),进步速率:

  1. location = / {    
  2.     ...    

静态文件和署理

location 也界说了如那里理赏罚匹配的哀求:返回静态文件 可能 交给署理处事器处理赏罚。下面的例子中,第一个 location 返回 /data 目次中的静态文件,第二个 location 则将哀求转达给https://lufficc.com 域名的处事器处理赏罚:

  1. server {    
  2.     location /images/ {    
  3.         root /data;    
  4.     }    
  5.  
  6.     location / {    
  7.         proxy_pass https://lufficc.com;    
  8.     }    

root 指令界说了静态文件的根目次,而且和 URI 拼接形成最终的当地文件路径。如哀求/images/example.png,则拼接后返回当地处事器文件 /data/images/example.png 。

proxy_pass 指令将哀求转达到 URL 指向的署理处事器。让后未来自署理处事器的相应转发给客户端。 在上面的示例中,全部不以 /images / 开头的 URI 的哀求都将转达给署理处事器处理赏罚。

好比我把 proxy_pass 配置为 https://www.baidu.com/,那么会见 http://search.lufficc.com/ 将获得百度首页一样的相应(页面)(感乐趣的童鞋可以本身试一试搜刮成果,和百度没不同呢):

  1. server{    
  2.       listen 80;    
  3.       server_name search.lufficc.com;    
  4.       location / {    
  5.               proxy_pass https://www.baidu.com;    
  6.       }    

行使变量(Variables)

你可以行使变量来使 Nginx 在差异的哀求下回收差异的处理赏罚方法。变量是在运行时计较的,用作指令的参数。 变量由 $ 开头的标记暗示。 变量基于 Nginx 的状态界说信息,譬喻当前处理赏罚的哀求的属性。

(编辑:河北网)

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

热点阅读