3、Nginx关于server段的配置

前面第2篇文章中列出了全局段、events段、http段的一些指令的意义和用法,这篇文章将介绍server段的相关指令。

listen:

listen指令有三种配置方法:

1、listen address[:port] [ default_server ]  [ ssl ];

2、listen port [ default_server ]  [ ssl ];

3、listen unix:path [ default_server ]  [ ssl ];

使用示例:

listen *:80 | *:8000;   ###监听所有80和8000端口

listen 192.168.1.10;###监听具体IP的所有端口上的连接

listen 8000;###监听具体端口上的所有IP连接,等同于listen  *:8000;

server_name:

语法:server_name  name...;

设置虚拟主机名称。可以设置多个name,例如:

server_name  myserver.com www.myserver.com;

name中可以使用通配符*,但是通配符只能用在由三段字符串组成的名称的首段或尾段,或者由两段字符串组成的名称的尾段。例如:

server_name   *.myserver.com  www.myserver.*;

name中还可以使用正则表达式,并使用波浪号“~”作为正则表达式字符串的开始标记。例如:

server_name   ~^www\d+\.myserver\.com$;

表示以匹配www开头,后面紧跟一个或者多个数字,后面是myserver,并且以com结尾的name

由于server_name指令支持通配符和正则表达式两种配置名称的方式,因此在包含有多个虚拟主机的配置文件中,可能会出现一个名称被多个虚拟主机的server_name匹配成功,那么来自这个名称的请求到底被哪个虚拟主机处理呢?Nginx会根据以下优先级来选择虚拟主机响应用户端的请求:

1、准确匹配server_name

2、通配符开开始时匹配server_name成功

3、通配符在结尾时匹配server_name成功

4、正则表达式匹配server_name成功

5、如果server_name被同一优先级的匹配方式匹配到,则谁先匹配到谁负责响应。

root:

语法:root  path;

指定根目录路径。

示例:

location  /data/ {

root  /wwwroot/html;

}

当location接收到“/data/index.html”的访问请求时,会在/wwwroot/html/data/目录下找到index.html来响应用户请求。

index

设置默认首页,一般有两个作用,一是,用户在发出请求访问网站时,请求地址可以不写首页名称,二是,可以对一个请求,根据其请求的内容而设置不用的首页,该指令的语法结构为:

index  file ...;

示例:

server {
    listen 80;
    server_name test;
    error_log /etc/nginx/conf.d/error.log;
    root /wwwroot/html;
    index c.html;
    location /t/ {
    root /wwwroot/html;
    index a.html;
    }
}

error_page:

设置网站的错误页面,语法为:

error_page  code ... [=[response]]uri;

code:要处理的HTTP错误代码

response:将code指定的错误代码转换为新的错误代码

uri:错误页面的路径或者网站地址,这个uri是相对于root设置的根路径而言的。

示例:

error_page  404  /404.html;

基于IP的访问控制

allow  address | CIDR | unix |all;

设置允许访问的IP范围

deny  address | CIDR | unix:| all;

设置拒绝访问的IP范围

示例:

location /t/ {
          root /data/www/vhost2/;
          allow 172.16.100.120;   
          deny all;
}

仅允许172.16.100.120这个IP地址访问

基于账户密码访问Nginx服务器

auth_basic string | off;

是否启用密码认证

auth_basic_user_file  file;

指定密码认证的配置文件路径,只有在auth_basic启用时有效。

示例:创建一个server.conf的配置文件,并设置基于账号密码访问该server中配置的虚拟主机

1、先创建server.conf的配置文件

#cd /etc/nginx/conf.d/

#vim server.conf

server {
      listen 8888;
      server_name test;
      root /wwwroot/html;
      location /t/ {
           auth_basic "Admin Area";
           auth_basic_user_file  /etc/nginx/.ngxpasswd;
      }
}

2、创建账号密码文件,需要安装httpd

#htpasswd -c -m /etc/nginx/.ngxpasswd tom

创建密码文件,路径为/etc/nginx/.ngxpasswd  并创建一个tom的账号,命令会提示输入密码

#htpasswd  -m /etc/nginx/.ngxpasswd jerry

再创建一个名为Jerry的账号,创建第二个账号时不用-c选项

3、测试访问网站

http://test:8888/t/a.html   提示输入账号密码

stub_status:

通过制定的uri输出stub_status,只能定义在server和location中。

示例:

server {
       listen 8889;
       server_name test;
       root /wwwroot/html;
       location /t/ {
              stub_status;
        }              
}

当前活动客户端连接数包括waiting状态的客户端

accepts:已接受的客户端连接总数量

handled : 已处理的客户端连接数量

requests: 客户端总请求数量

reading:当前nginx正在读取客户端请求报文的连接数量数量

writing:正在响应客户端请求报文的连接数量

waiting:等待其发出请求的空闲连接数量

时间: 2024-10-14 05:54:50

3、Nginx关于server段的配置的相关文章

Nginx系列--03HTTP段基本配置及虚拟主机

HTTP协议配置格式 http { ... ...:各server的公共配置 server { ... }:每个server用于定义一个虚拟主机: server { ... server_name root alias location [OPERATOR] URL { ... if CONDITION { ... } } } } 不同于HTTPD有一个默认的主机,Nginx必须使用server指令定义一个虚拟主机. HTTP协议配置 所有的配置如果不加说明的话,都是配置在/etc/nginx/

五、Nginx多Server反向代理配置

Nginx强大的正则表达式支持,可以使server_name的配置变得很灵活,如果你要做多用户博客,那么每个用户拥有自己的二级域名也就很容易实现了. server_name的匹配顺序 Nginx中的server_name指令主要用于配置基于名称虚拟主机,server_name指令在接到请求后的匹配顺序分别为: 1.准确的server_name匹配,例如: 1 server { 2 listen 80; 3 server_name www.ooxx.com; 4 ... 5 } 2.以*通配符开始

Nginx多Server反向代理配置

Nginx强大的正则表达式支持,可以使server_name的配置变得很灵活,如果你要做多用户博客,那么每个用户拥有自己的二级域名也就很容易实现了. 下面我就来说说server_name的使用吧: server_name的匹配顺序 Nginx中的server_name指令主要用于配置基于名称虚拟主机,server_name指令在接到请求后的匹配顺序分别为: 1.准确的server_name匹配,例如: server { listen 80; server_name ssdr.info www.s

Nginx作为WEB服务相关配置(性能优化,网络连接,访问控制,虚拟主机,https等等)

编译安装nginx yum -y install pcre-devel groupadd -r nginx useradd -g nginx -r nginx tar xf nginx-1.6.2.tar.gz cd nginx-1.6.2 ./configure --prefix=/usr/local/nginx --conf-path=/etc/nginx/nginx.conf--user=nginx --group=nginx --error-log-path=/var/log/nginx

nginx多server配置记录

直接在配置文件(/etc/nginx/nginx.conf)中添加如下代码: server { listen 8080; server_name 192.168.100.174:8080; root /usr/share/nginx/html8080; } server { listen 8000; server_name 192.168.100.174:8000; root /usr/share/nginx/html8000; } listen 为监听端口 sever_name为ip加端口(也

Nginx学习笔记二基本配置

1.Nginx的配置文件默认在Nginx程序安装目录的conf二级目录下,主配置文件为nginx.conf.假设您的Nginx安装 在/usr/local/webserver/nginx/目录下,那么默认的主配置文件则为/usr/local/webserver/nginx/nginx.conf.2.Nginx配置参数:(1)user www www 指定使用的用户和用户所在的组(2)worker_processes 8 指定工作衍生进程数(一般等于CPU的总核数或总核数的两倍,如两个四核CPU,

实战Nginx(1)-虚拟主机基础配置

Nginx 是一个轻量级高性能的 Web 服务器, 并发处理能力强, 对资源消耗小, 无论是静态服务器还是小网站, Nginx 表现更加出色, 作为 Apache 的补充和替代使用率越来越高. 增加 Nginx 虚拟主机 这里假设大家的 Nginx 服务器已经安装好.我们可以参照apache的关于虚拟主机的配置,直接在主配置文件中引用虚拟主机配置文件,而虚拟主机的配置文件另外存放到特定的虚拟主机存放目录: 1.我们先创建网站资源存放目录: [[email protected] /]# mkdir

HappyAA服务器部署笔记1(nginx+tomcat的安装与配置)

这是本人的服务器部署笔记.文章名称叫"部署笔记1"的原因是之后我对这个进行了改进之后,会有"部署笔记2","部署笔记3"...循序渐进,估计应该是这样的:) 概述与设计 nginx安装 nginx基本使用 nginx的配置 tomcat的安装与配置 部署程序 待续 概述与设计 主机使用阿里云主机,配置不高,但前期应该够用,以后有需要的话再升级. 主要的业务逻辑是用java实现,并用tomcat承载,但大家知道tomcat并不适合作为大量的静态资源

Nginx的工作原理和配置详解

一.Nginx简介 Nginx (pronounced engine-x) is a free, open-source, high-performance HTTP server and reverse proxy, as well as an IMAP/POP3 proxy server. Igor Sysoev started development of Nginx in 2002, with the first public release in 2004. Nginx now hos