Nginx怎么配置Web服务器

本篇内容主要讲解“Nginx怎么配置Web服务器”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Nginx怎么配置Web服务器”吧!

创新互联建站于2013年创立,先为海伦等服务建站,海伦等地企业,进行企业商务咨询服务。为海伦企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

1. 设置虚拟服务器

NGINX配置文件必须至少包含一个服务器指令来定义虚拟服务器。 当NGINX处理请求时,它首先选择提供请求的虚拟服务器。

虚拟服务器由http上下文中的服务器指令定义,例如:

http {  server {  # Server configuration  } }

可以将多个server指令添加到http上下文中以定义多个虚拟服务器。

server配置块通常包括一个listen指令,用于指定服务器侦听请求的IP地址和端口(或Unix域套接字和路径)。IPv4和IPv6地址均被接受;  将方括号(。

下面的示例显示了监听IP地址127.0.0.1和端口8080的服务器的配置:

server {  listen 127.0.0.1:8080;  # The rest of server configuration }

如果省略端口,则使用标准端口。 同样地,如果省略一个地址,服务器将侦听所有地址。  如果没有包含listen指令,则“标准”端口为80/tcp,“default”端口为8000/tcp,具体取决于超级用户权限。

如果有多个服务器与请求的IP地址和端口相匹配,则NGINX将根据服务器块中的server_name指令测试请求的主机头域。  server_name的参数可以是完整(精确)名称,通配符或正则表达式。 通配符是一个字符串,其开头,结尾或两者都包含星号(*); 星号匹配任何字符序列。  NGINX将Perl语法用于正则表达式; 在它们之前使用波浪号()。 此示例说明了一个确切的名称。

server {  listen 80;  server_name example.org www.example.org;  ... }

2. 配置位置

NGINX可以根据请求URI向不同的代理发送流量或提供不同的文件。 这些块是使用放置在server指令中的location指令来定义的。

例如,您可以定义三个location块,以指示虚拟服务器向一个代理服务器发送一些请求,将其他请求发送到不同的代理服务器,并通过从本地文件系统传递文件来提供其余请求。

NGINX测试根据所有location指令的参数请求URI,并应用匹配location中定义的指令。  在每个location块内,通常可能(除了一些例外)放置更多的location指令以进一步细化特定组请求的处理。

注意:在本教程文章中,单词location是指单个location上下文。

location指令有两种类型的参数:前缀字符串(路径名)和正则表达式。 对于要匹配前缀字符串的请求URI,必须以前缀字符串开头。

具有pathname参数的以下示例位置匹配以/some/path/开头的请求URI,例如/some/path/document.html,它不匹配/my-site/some/path,因为/some/path不在该URI的开头出现。

location /some/path/ {  ... }

正则表达式之前是区分大小写匹配的波形符号(~),或者不区分大小写匹配的波形符号(~*)。  以下示例将包含字符串.html或.html的URI与任何位置相匹配。

location ~ \.html? {  ... }

要找到最符合URI的位置,NGINX首先将URI与前缀字符串的位置进行比较。然后用正则表达式搜索位置。

location上下文可以包含定义如何解析请求的指令 - 提供静态文件或将请求传递给代理的服务器。  在以下示例中,匹配第一个location上下文的请求将从/data/images目录中提供文件,并将匹配第二个位置的请求传递给承载  www.example.com 域内容的代理服务器。

server {  location /images/ {  root /data;  }  location / {  proxy_pass http://www.example.com;  } }

root指令指定要在其中搜索要提供的静态文件的文件系统路径。 与该位置相关联的请求URI将附加到路径,以获取要提供的静态文件的全名。  在上面的示例中,要响应/images/logo.png的请求,NGINX提供服务器本地实际对应文件是:/data/images/logo.png。

proxy_pass指令将请求传递给使用配置的URL访问代理服务器。然后将代理服务器的响应传回客户端。在上面的示例中,所有不以/images/开头的URI的请求都将被传递给代理的服务器(也就是:www.example.com)。

3. 使用变量

可以使用配置文件中的变量,使NGINX进程的请求根据定义的情况而有所不同。 变量是在运行时计算的命名值,用作指令的参数。  一个变量由它的名字开头的$(美元)符号表示。 变量根据NGINX的状态定义信息,例如正在处理的请求的属性。

有许多预定义的变量,如核心HTTP变量,您可以使用set,map和geo指令定义自定义变量。 大多数变量在运行时计算的,并包含与特定请求相关的信息。  例如,$remote_addr包含客户端IP地址,$uri保存当前的URI值。

4. 返回特定状态码

一些网站URI需要立即返回具有特定错误或重定向代码的响应,例如当页面被暂时移动或永久移动时。 最简单的方法是使用return指令。  例如返回未找到的404状态码:

location /wrong/url {  return 404; }

返回的第一个参数是响应代码。可选的第二个参数可以是重定向的URL(代码301,302,303和307)或在响应体中返回文本。 例如:

location /permanently/moved/url {  return 301 http://www.example.com/moved/here; }

返回指令可以包含在 location 和 server 上下文中。

5. 重写HTTP响应

有时需要重写或更改HTTP响应中的内容,将一个字符串替换为另一个字符串。 可以使用sub_filter指令来定义要应用的重写。  该指令支持变量和替代链,使更复杂的更改成为可能。

例如,可以更改引用除代理服务器之外的绝对链接:

location / {  sub_filter /blog/ /blog-staging/;  sub_filter_once off; }

另一个示例将方法从http://更改为http://,并从请求头域替换本地主机地址到主机名。  sub_filter_once指令告诉NGINX在一个位置(location)内连续应用sub_filter伪指令:

location / {  sub_filter 'href="http://127.0.0.1:8080/' 'href="http://$host/';  sub_filter 'img src="http://127.0.0.1:8080/' 'img src="http://$host/';  sub_filter_once on; }

请注意,如果发生另一个sub_filter匹配,则使用sub_filter修改的响应部分将不再被替换。

到此,相信大家对“Nginx怎么配置Web服务器”有了更深的了解,不妨来实际操作一番吧!这里是创新互联网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

网站名称:Nginx怎么配置Web服务器
本文路径:https://www.cdcxhl.com/article14/gpiige.html

成都网站建设公司_创新互联,为您提供企业网站制作品牌网站设计网站收录手机网站建设网站改版做网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网页设计公司