详解Nginx如何配置Web服务器的示例代码_nginx

来源:脚本之家  责任编辑:小易  

安装护卫神.nginx大师就可以了。一键安装nginx+php+mysql+ftpwww.zgxue.com防采集请勿采集本网。

概述

今天主要分享怎么将NGINX配置作为Web服务器,并包括以下部分: 设置虚拟服务器 配置位置 使用变量 返回特定状态码 重写HTTP响应

你只需要在Linux系统上安装Nginx即可,Nginx的安装包可以去官网下载,很多面板也支持一键安装。一键在Linux上安装宝塔面板:网页链接

在高层次上,将NGINX配置作为Web服务器有一些问题需要了解,定义它处理哪些URL以及如何处理这些URL上的资源的HTTP请求。 在较低层次上,配置定义了一组控制对特定域或IP地址的请求的处理的虚拟服务器。

Nginx 配置文件至少包含一个 server 命令,用来定义虚拟服务器。当请求到来时,Nginx 会首先选择一个虚拟服务器来处理该请求。虚拟服务器定义在 http 上下文中的 server 中: 1 2 3 4 5 http {

用于HTTP流量的每个虚拟服务器定义了称为位置的特殊配置实例,它们控制特定URI集合的处理。 每个位置定义了自己的映射到此位置的请求发生的情况。 NGINX可以完全控制这个过程。 每个位置都可以代理请求或返回一个文件。 此外,可以修改URI,以便将请求重定向到另一个位置或虚拟服务器。 此外,可以返回特定的错误代码,也可以配置特定的页面以对应于每个错误代码。

首先自然是操作系统的安装了,服务器的操作系统又分为了windows操作系统和linux操作系统 首先我们来你看下windows服务器操作系统,比较常用的就是windows server 2003了,当然还有2008和2012,

1. 设置虚拟服务器

安装护卫神.nginx大师,一键配置nginx+php+mysql+ftp

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

ngnix多站点 mkdir/etc/nginx/vhosts 每个站点一个配置文件放在/etc/nginx/vhosts vi/etc/nginix.conf include etc/nginx/vhosts/*;etc/init.d/nginx restart

虚拟服务器由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服务器内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网!

基于各种原因,有时想隐藏nginx的显示版本号,也为服务器更安全有如下几个方法1 修改主配置文件nginx.conf在http {段加入server_tokens off;保存退出就可以了2 也可以在编译前修改源代码,文件是src/core/nginx.h如果是已经安装的,就可以再编译安装一次就可以内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • nginx 隐藏版本号与web服务器信息的解决方法
  • 如何将 nginx 配置为web服务器的方法
  • 采用软件负载均衡器实现web服务器集群(iis+nginx)
  • nginx防止直接用ip访问web服务器的设置方法
  • nginx+php(fastcgi)搭建高并发web服务器(自动安装脚本)第二版
  • nginx0.5.33+php5.2.5(fastcgi)搭建胜过apache10倍的web服务器
  • linux+nginx+php架设高性能web服务器
  • 基于域名、端口和ip搭建nginx虚拟主机
  • nginx服务器作反向代理时的缓存配置要点解析
  • 解读nginx中limit配置参数
  • 淘宝web服务器tengine在centos下的安装教程
  • nginx和geoip模块读取ip所在的地域信息方法
  • nginx 内置变量详解及隔离进行简单的拦截
  • 详解nginx配置文件
  • nginx利用ctx实现数据共享、修改上下文功能
  • nginx上部署react项目的实例方法
  • nginx缓存及错误页面配置
  • 如何将 Nginx 配置为Web服务器的方法
  • 如何将 Nginx 配置为Web服务器的方法
  • 如何将 Nginx 配置为Web服务器的方法
  • 如何将 Nginx 配置为Web服务器的方法
  • 如何将 Nginx 配置为Web服务器的方法
  • 如何将 Nginx 配置为Web服务器
  • 如何将 Nginx 配置为Web服务器
  • 如何将 Nginx 配置为Web服务器
  • 如何使用nginx给服务器配置多个web
  • nginx 配置,web端
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全星外虚拟主机华众虚拟主机linuxwin服务器ftp服务器dns服务器tomcat nginxzabbix云和虚拟化服务器其它首页服务器nginxnginx 隐藏版本号与web服务器信息的解决方法如何将 nginx 配置为web服务器的方法采用软件负载均衡器实现web服务器集群(iis+nginx)nginx防止直接用ip访问web服务器的设置方法nginx+php(fastcgi)搭建高并发web服务器(自动安装脚本)第二版nginx0.5.33+php5.2.5(fastcgi)搭建胜过apache10倍的web服务器linux+nginx+php架设高性能web服务器基于域名、端口和ip搭建nginx虚拟主机nginx服务器作反向代理时的缓存配置要点解析解读nginx中limit配置参数淘宝web服务器tengine在centos下的安装教程nginx和geoip模块读取ip所在的地域信息方法nginx 内置变量详解及隔离进行简单的拦截详解nginx配置文件nginx利用ctx实现数据共享、修改上下文功能nginx上部署react项目的实例方法nginx缓存及错误页面配置nginx提示:500 internal servernginx 多站点配置方法集合权限问题导致nginx 403 forbiddenginx fastcgi错误primary scripnginx服务器的反向代理proxy_pasnginx 403 forbidden的解决办法nginx伪静态配置和常用rewrite伪nginx下301重定向域名的方法小结详解nginx服务器中配置超时时间的windows下nginx+php5的安装与配置nginx 与后台端口冲突的解决nginx服务器配置404错误页面转向的方法使用nginx配置基于域名的虚拟主机实现详解nginx静态资源服务器简单配置在nginx服务器下配置startssl和ssl的教程nginx配置basic auth登录认证的实现方法国内一些常用php的cms的nginx服务器的伪静在ubuntu下为nginx配置支持cgi脚本的方案详解nginx配置location总结及rewrite规则详解nginx服务器中http headers相关的模块
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved