码迷,mamicode.com
首页 > 其他好文 > 详细

第八章 Nginx常用模块

时间:2020-09-12 21:27:25      阅读:42      评论:0      收藏:0      [点我收藏+]

标签:apr   场景   windows   配置   区分   reading   Stub   ring   规则   

一、虚拟主机

#虚拟主机配置方式:
1.基于多IP的方式
2.基于多端口的方式
3.基于多域名的方式

1.基于多IP的方式

1)第一个配置文件

[root@web02 /etc/nginx/conf.d]# vim mali.conf 
server {
    listen 10.0.0.8:80;
    server_name localhost;
    location / {
        root /code/zhiwu;
        index index.html;
    }
}

2)第二个配置文件

[root@web02 /etc/nginx/conf.d]# vim tank.conf 
server {
    listen 172.16.1.8:80;
    server_name localhost;
    location / {
        root /code/tank;
        index index.html;
    }
}

3)检查配置重启

[root@web02 /etc/nginx/conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

[root@web02 /etc/nginx/conf.d]# systemctl restart nginx

2.基于多端口的方式

1)第一个配置

[root@web02 /etc/nginx/conf.d]# cat mali.conf 
server {
    listen 80;
    server_name localhost;
    location / {
        root /code/zhiwu;
        index index.html;
    }
}

2)第二个配置

[root@web02 /etc/nginx/conf.d]# cat tank.conf 
server {
    listen 81;
    server_name localhost;
    location / {
        root /code/tank;
        index index.html;
    }
}

3)检查配置并重启

[root@web02 /etc/nginx/conf.d]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

[root@web02 /etc/nginx/conf.d]# systemctl restart nginx

4)访问测试

1.访问 http://10.0.0.8:80
2.访问 http://10.0.0.8:81

3.基于多域名的方式

1)第一个配置

[root@web02 /etc/nginx/conf.d]# vim mali.conf 
server {
    listen 80;
    server_name www.mali.com;
    location / {
        root /code/zhiwu;
        index index.html;
    }
}

2)第二个配置

[root@web02 /etc/nginx/conf.d]# vim tank.conf 
server {
    listen 80;
    server_name www.tank.com;
    location / {
        root /code/tank;
        index index.html;
    }
}

3)检查并重启

4)配置本地hosts

C:\Windows\System32\drivers\etc\hosts
10.0.0.8 www.mali.com
10.0.0.8 www.tank.com

5)访问测试

4.日志配置

1)第一个配置

[root@web02 /etc/nginx/conf.d]# vim mali.conf 
server {
    listen 80;
    server_name www.mali.com;
    access_log /var/log/nginx/www.mali.com.log main;
    location / {
        root /code/zhiwu;
        index index.html;
    }
}

2)第二个配置

[root@web02 /etc/nginx/conf.d]# vim tank.conf 
server {
    listen 80;
    server_name www.tank.com;
    access_log /var/log/nginx/www.tank.com.log main;
    location / {
        root /code/tank;
        index index.html;
    }
}

3)访问页面,查看日志

二、日志

Nginx有非常灵活的日志记录模式,每个级别的配置可以有各自独立的访问日志。日志格式通过log_format命令定义格式。

0.日志语法

#配置语法: 包括: error.log access.log
		#指定格式  日志格式名称   日志格式      日志内容
Syntax: log_format name [escape=default|json] string ...;
Default: log_format combined "...";
Context: http

1.log_format日志格式

log_format  main  ‘$remote_addr - $remote_user [$time_local] "$request" ‘
                  ‘$status $body_bytes_sent "$http_referer" ‘
                  ‘"$http_user_agent" "$http_x_forwarded_for"‘;

2.log_format日志参数

$remote_addr          # 记录客户端IP地址
$remote_user          # 记录客户端用户名
$time_local           # 记录通用的本地时间
$time_iso8601         # 记录ISO8601标准格式下的本地时间
$request              # 记录请求的方法以及请求的http协议
$status               # 记录请求状态码(用于定位错误信息)
$body_bytes_sent      # 发送给客户端的资源字节数,不包括响应头的大小
$bytes_sent           # 发送给客户端的总字节数
$msec                 # 日志写入时间。单位为秒,精度是毫秒。
$http_referer         # 记录从哪个页面链接访问过来的
$http_user_agent      # 记录客户端浏览器相关信息
$http_x_forwarded_for #记录客户端IP地址
$request_length       # 请求的长度(包括请求行, 请求头和请求正文)。
$request_time         # 请求花费的时间,单位为秒,精度毫秒
# 注:如果Nginx位于负载均衡器,nginx反向代理之后, web服务器无法直接获取到客户端真实的IP地址。
# $remote_addr获取的是反向代理的IP地址。 反向代理服务器在转发请求的http头信息中,
# 增加X-Forwarded-For信息,用来记录客户端IP地址和客户端请求的服务器地址。

3.日志切割

1)脚本

[root@web02 ~]# vim /etc/logrotate.d/nginx
#指定切割的日志
/var/log/nginx/*.log {
		#每天切割一次
        daily
        #忽略丢失的日志
        missingok
        #日志的保留时间
        rotate 52
        #日志文件压缩
        compress
        #延时压缩
        delaycompress
        #忽略空文件
        not if empty
        #指定日志文件权限
        create 640 nginx adm
        #开启脚本
        shared scripts
        #脚本内容
        postrotate
        		#判断nginx是否启动
                if [ -f /var/run/nginx.pid ]; then
                		#生成新的nginx访问日志
                        kill -USR1 `cat /var/run/nginx.pid`
                fi
        #结束脚本
        endscript
}

三、nginx常用模块

1.目录索引模块 ngx_http_autoindex_module

该ngx_http_autoindex_module模块处理以斜杠字符(‘ /‘)结尾的请求,生成目录列表。通常,ngx_http_autoindex_module当ngx_http_index_module模块找不到索引文件时,会将请求传递给模块 。

1)语法

Syntax:	autoindex on | off;
Default:	autoindex off;
Context:	http, server, location

2)配置

[root@web02 /etc/nginx/conf.d]# vim mali.conf 
server {
    listen 80;
    server_name www.mali.com;
    access_log /var/log/nginx/www.mali.com.log json;
    location / {
        root /code/zhiwu;
        index index.html;
    }
    location /download {
        root /code;
        autoindex on;
        index index.html;
    }
}

3)常用优化参数

#显示文件字节大小  配置 on 显示字节 配置 off 显示方便读取的大小 K/M/G
Syntax:	autoindex_exact_size on | off;
Default:	autoindex_exact_size on;
Context:	http, server, location

#显示时间,如果是off,时间与真实时间相差8小时,如果是on,是真实时间
Syntax:	autoindex_localtime on | off;
Default:	autoindex_localtime off;
Context:	http, server, location

#字符集问题
charset utf-8;

4)完整配置

[root@web02 /etc/nginx/conf.d]# vim mali.conf 
server {
    listen 80;
    server_name www.mali.com;
    charset utf-8;
    access_log /var/log/nginx/www.mali.com.log json;
    location / {
        root /code/zhiwu;
        index index.html;
    }
    location /download {
        root /code;
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;
        index index.html;
    }
}

2.访问控制模块 ngx_http_access_module

1)语法

#允许访问的语法
Syntax:	allow address | all;
Default:	—
Context:	http, server, location, limit_except

#拒绝访问的语法
Syntax:	deny address | all;
Default:	—
Context:	http, server, location, limit_except

2)配置访问控制

1>案例一:
#要求允许10.0.0.1可以访问我的/download页面,其他网站不允许
[root@web02 /etc/nginx/conf.d]# cat mali.conf 
server {
    listen 80;
    server_name www.mali.com;
    charset utf-8;
    access_log /var/log/nginx/www.mali.com.log json;
    location / {
        root /code/zhiwu;
        index index.html;
    }
    location /download {
        root /code;
	    autoindex on;
	    autoindex_exact_size off;
	    autoindex_localtime on;
		index index.html;
		allow 10.0.0.1;
		deny all;
    }
}
2>案例二:
#要求:10.0.0.1不能访问我的/download,其他网站都可以访问
[root@web02 /etc/nginx/conf.d]# cat mali.conf 
server {
    listen 80;
    server_name www.mali.com;
    charset utf-8;
    access_log /var/log/nginx/www.mali.com.log json;
    location / {
        root /code/zhiwu;
        index index.html;
    }
    location /download {
    	root /code;
		autoindex on;
		autoindex_exact_size off;
		autoindex_localtime on;
		index index.html;
		deny 10.0.0.1;
		allow all;
    }
}

#all的配置不管是允许还是拒绝,都一定配置在最后
3>案例三:
#要求:允许10.0.0.0网段访问我的/download,拒绝其他网段
[root@web02 /etc/nginx/conf.d]# cat mali.conf 
server {
    listen 80;
    server_name www.mali.com;
    charset utf-8;
    access_log /var/log/nginx/www.mali.com.log json;
    location / {
        root /code/zhiwu;
        index index.html;
    }
    location /download {
        root /code;
	autoindex on;
	autoindex_exact_size off;
	autoindex_localtime on;
        index index.html;
	allow 10.0.0.0/24;
	deny all;
    }
}
4>案例四:
#要求:访问www.mali.com,出现游戏界面,访问www.mali.com/download,出现目录页面,且download页面只允许10.0.0.3访问
[root@web02 /etc/nginx/conf.d]# cat mali.conf 
server {
    listen 80;
    server_name www.mali.com;
    charset utf-8;
    access_log /var/log/nginx/www.mali.com.log json;
    location / {
        root /code/zhiwu;
        index index.html;
    }
    location /download {
		root /code;
		autoindex on;
		autoindex_exact_size off;
		autoindex_localtime on;
		index index.html;
		allow 10.0.0.3;
		deny all;
    }
}

四、Nginx常用模块

Syntax:	autoindex_exact_size off;
Syntax:	autoindex_localtime on;
Syntax:	auth_basic string | off;
Syntax:	auth_basic_user_file file;
Syntax:	stub_status;
Syntax:	limit_conn_zone key zone=name:size;
# limit_conn_zone $remote_addr zone=conn_zone:1m;
Syntax:	limit_req_zone key zone=name:size rate=rate [sync];
# limit_conn_zone $remote_addr zone=conn_zone:1m;
Syntax:	limit_req zone=name [burst=number] [nodelay | delay=number];
# limit_req_zone $remote_addr zone=req_zone:1m rate=1r/s;

1.目录索引模块

1)配置

# ngx_http_autoindex_module
[root@web02 /etc/nginx/conf.d]# vim test.conf 
server {
    listen 80;
    server_name www.test.com;

    location / {
        root /code;
        index index.html;
    }
    location /download {
        root /code;
        index index.html;
        autoindex on;
    }
}

2)优化参数

# 显示文件大小,使用off
autoindex_exact_size off;

# 显示确切文件修改时间
autoindex_localtime on;

2.访问限制模块

# ngx_http_access_module
[root@web02 /etc/nginx/conf.d]# vim test.conf 

server {
    listen 80;
    server_name www.test.com;

    location / {
        root /code;
        index index.html;
    }
    location /download {
        root /code;
        index index.html;
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;
        #allow 10.0.0.0/24;
        allow 10.0.0.1;
        deny all;
    }
}

3.访问控制模块

1)语法

# 开启认证控制,没有任何作用就是为了开启
Syntax:	auth_basic string | off;
Default:	auth_basic off;
Context:	http, server, location, limit_except

# 指定用户认证的文件
Syntax:	auth_basic_user_file file;
Default:	—
Context:	http, server, location, limit_except

2)配置密码文件

htpasswd
#建立和更新存储用户名、密码的文本文件, 用于对HTTP用户的basic认证。
参数:
	-c 创建passwdfile.如果passwdfile 已经存在,那么它会重新写入并删去原有内容.
	-n 不更新passwordfile,直接显示密码
	-m 使用MD5加密(默认)
	-d 使用CRYPT加密(默认)
	-p 使用普通文本格式的密码
	-s 使用SHA加密
	-b 命令行中一并输入用户名和密码而不是根据提示输入密码,可以看见明文,不需要交互
	-D 删除指定的用户
	
	htpasswd -bc .access username password  
#在当前目录生成.access文件,用户名username,密码:password,默认采用MD5加密方式。 

	htpasswd -b .access test 123456   
#在原有密码文件中增加下一个用户

	htpasswd -nb test 123456  
#不更新.access文件,只在屏幕上输出用户名和经过加密后的密码。 

 	htpasswd -D .access test  
#利用htpasswd命令删除用户名和密码 

# 生成密码文件
[root@web02 /etc/nginx/conf.d]# htpasswd -c /etc/nginx/auth_basic lhd
New password: 
Re-type new password: 
Adding password for user lhd

# 生成密码,在命令行输入密码
[root@web02 /etc/nginx/conf.d]# htpasswd -bc /etc/nginx/auth_basic lhd linux
Adding password for user lhd

# 查看
[root@web02 /etc/nginx/conf.d]# vim /etc/nginx/auth_basic
lhd:$apr1$JmblF9to$jDnvQn1w7oETPYyvaL2OG.

# 不添加-c参数可以添加多个用户
[root@web02 /etc/nginx/conf.d]# htpasswd /etc/nginx/auth_basic lhd

3)配置nginx

[root@web02 /etc/nginx/conf.d]# cat test.conf 
server {
	listen 80;
	server_name www.test.com;

	location / {
		root /code;
		index index.html;
	}
	location /download {
		root /code;
		index index.html;
		autoindex on;
		autoindex_exact_size off;
		autoindex_localtime on;
		allow 10.0.0.1;
		deny all;
		auth_basic "输入用户名和密码";
		auth_basic_user_file /etc/nginx/auth_basic;
    }
}

4.nginx状态模块

1)语法

Syntax:	stub_status;
Default:	—
Context:	server, location

2)配置

[root@web02 /etc/nginx/conf.d]# cat test.conf 
server {
	listen 80;
	server_name www.test.com;

	location / {
		root /code;
		index index.html;
	}
	location /download {
		root /code;
		index index.html;
		autoindex on;
		autoindex_exact_size off;
		autoindex_localtime on;
		allow 10.0.0.1;
		deny all;
		auth_basic "输入用户名和密码";
		auth_basic_user_file /etc/nginx/auth_basic;
    }
	location /status {
		stub_status;
    }
}

3)状态页

# 访问 http://www.test.com/status

# 返回内容
Active connections: 2 
server accepts handled requests
 		  2 	 2 	   	 1 
Reading: 0 Writing: 1 Waiting: 1 

# nginx七种状态
Active connections		#活跃的连接数
accepts				   #接受的TCP连接数
handled				   #已处理的TCP连接数
requests			   #请求数
Reading				   #读取的请求头的数量
Writing				   #响应的请求头的数量
Waiting				   #等待的请求数量

# 可以用作监控日PV
[root@web02 /etc/nginx/conf.d]# curl -s http://www.test.com/status | awk ‘NR==3 {print $3}‘

5.连接限制模块

1)语法

# ngx_http_limit_conn_module
# 设置限制的空间
Syntax:	limit_conn_zone key zone=name:size;
Default:	—
Context:	http

limit_conn_zone 	#调用限制模块
key 			   #存储的内容
zone=			   #空间
name:			   #空间的名字
size;			   #空间的大小

# 调用空间
Syntax:	limit_conn zone number;
Default:	—
Context:	http, server, location

limit_conn 			#调用空间
zone 				#空间名字
number;				#同一个信息可以保存的次数

2)配置

[root@web02 /etc/nginx/conf.d]# cat test.conf 

# limit_conn_zone $remote_addr zone=conn_zone:1m;
server {
	listen 80;
	server_name www.test.com;
	# limit_conn conn_zone 1;

	location / {
		root /code;
		index index.html;
	}
	location /download {
		root /code;
		index index.html;
		autoindex on;
		autoindex_exact_size off;
		autoindex_localtime on;
		allow 10.0.0.1;
		deny all;
		auth_basic "输入用户名和密码";
		auth_basic_user_file /etc/nginx/auth_basic;
    }
	location /status {
		stub_status;
    }
}

6.请求限制模块

1)语法

# 设置请求限制的空间
Syntax:	limit_req_zone key zone=name:size rate=rate [sync];
Default:	—
Context:	http

limit_req_zone 		 #调用模块
key 				#空间存储的内容
zone=				#指定空间
name:				#空间的名字
size				#空间的大小
rate=rate;			#读写速率

# 调用空间
Syntax:	limit_req zone=name [burst=number] [nodelay | delay=number];
Default:	—
Context:	http, server, location

limit_req 					#调用空间
zone=name 					#指定空间名字
[burst=number] 				#扩展
[nodelay | delay=number];	 #延时

2)配置

[root@web02 /etc/nginx/conf.d]# cat test.conf 
# limit_conn_zone $remote_addr zone=conn_zone:1m;
# limit_req_zone $remote_addr zone=req_zone:1m rate=1r/s;

server {
	listen 80;
	server_name www.test.com;
	limit_conn conn_zone 1;
	limit_req zone=req_zone;
	location / {
		root /code;
		index index.html;
	}
	location /download {
		root /code;
		index index.html;
		autoindex on;
		autoindex_exact_size off;
		autoindex_localtime on;
		allow 10.0.0.1;
		deny all;
		auth_basic "输入用户名和密码";
		auth_basic_user_file /etc/nginx/auth_basic;
    }
	location /status {
		stub_status;
    }
}

3)测试请求限制

[root@web02 /etc/nginx/conf.d]# ab -n 200 -c 2 http://www.test.com/
This is ApacheBench, Version 2.3 <$Revision: 1430300 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking www.test.com (be patient)
Completed 100 requests
Completed 200 requests
Finished 200 requests


Server Software:        nginx/1.18.0
Server Hostname:        www.test.com
Server Port:            80

Document Path:          /
Document Length:        13 bytes

Concurrency Level:      2
Time taken for tests:   0.036 seconds
Complete requests:      200
Failed requests:        199
   (Connect: 0, Receive: 0, Length: 199, Exceptions: 0)
Write errors:           0
Non-2xx responses:      199
Total transferred:      73674 bytes
HTML transferred:       39216 bytes
Requests per second:    5492.24 [#/sec] (mean)
Time per request:       0.364 [ms] (mean)
Time per request:       0.182 [ms] (mean, across all concurrent requests)
Transfer rate:          1975.76 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    0   0.8      0      12
Processing:     0    0   0.6      0       4
Waiting:        0    0   0.5      0       4
Total:          0    0   1.0      0      12

Percentage of the requests served within a certain time (ms)
  50%      0
  66%      0
  75%      0
  80%      0
  90%      0
  95%      0
  98%      4
  99%      4
 100%     12 (longest request)
[root@web02 /etc/nginx/conf.d]#

五、nginx的location配置

使用Nginx Location可以控制访问网站的路径,但一个server可以有多个location配置, 多个location的优先级该如何区分

1.location语法

Syntax:	location [ = | ~ | ~* | ^~ ] uri { ... }
location @name { ... }
Default:	—
Context:	server, location

2.location匹配符

匹配符 匹配规则 优先级
= 精确匹配 1
^~ 以某个字符串开头 2
~ 区分大小写的正则匹配 3
~* 不区分大小写的正则匹配 3
/ 通用匹配,任何请求都会匹配到 4

3.优先级验证

[root@web02 /etc/nginx/conf.d]# cat location.conf 
server {
    listen 80;
    server_name www.location.com;
    #location / {
    #    default_type text/html;
    #    return 200 "location /";
    #}
 
    location =/ {
        default_type text/html;
        return 200 "location =/";
    }
 
    location ~* / {
        default_type text/html;
        return 200 "location ~* /";
    }
 
    location ^~ / {
      default_type text/html;
      return 200 "location ^~";
    }
}

4.location应用场景

# 通用匹配,任何请求都会匹配到
location / {
    ...
}
 
# 严格区分大小写,匹配以.php结尾的都走这个location    
location ~ \.php$ {
    ...
}
 
# 严格区分大小写,匹配以.jsp结尾的都走这个location 
location ~ \.jsp$ {
    ...
}
 
# 不区分大小写匹配,只要用户访问.jpg,gif,png,js,css结尾的都走这条location
location ~* .*\.(jpg|gif|png|js|css)$ {
    ...
}
 
# 不区分大小写匹配
location ~* "\.(sql|bak|tgz|tar.gz|.git)$" {
    ...
}

六、LNMP架构

1.简介

LNMP是一套技术的组合,L=Linux、N=Nginx、M~=MySQL、P~=PHP
不仅仅包含这些,还有redis/ELK/zabbix/git/jenkins/kafka

2.LNMP工作方式

首先Nginx服务是不能处理动态请求,那么当用户发起动态请求时, Nginx又是如何进行处理的。
	1.静态请求:请求静态文件的请求
		静态文件:
		1)上传时什么样子,查看时就是什么样子
		2)html的页面都是静态的
	2.动态请求:请求动态内容,带参数的请求
		1)服务器上并不是真实存在的,需要都数据库等服务上去获取数据,组成的页面
	
当用户发起http请求,请求会被Nginx处理,如果是静态资源请求Nginx则直接返回,如果是动态请求Nginx则通过fastcgi协议转交给后端的PHP程序处理,具体如下图所示

技术图片

1.访问流程

1.浏览器输入域名,浏览器拿着域名取DNS服务器解析
2.DNS服务器解析域名为IP
3.浏览器去请求该IP对应的服务器
4.浏览器请求nginx
5.nginx判断请求是动态请求还是静态请求
	# 静态请求
	location / {
    	root /code;
    	index index.html;
	}
	# 动态请求
	location ~* \.php$ {
    	fastcgi_pass 127.0.0.1:9000;
    	... ...
	}
6.如果是静态请求,nginx直接返回内容
7.如果是动态内容,nginx会通过fastcgi协议找php-fpm管理进程
8.php-fpm管理进程会去下发工作给wrapper工作进程
9.wrapper工作进程判断是不是php文件
10.如果只是php文件,可以直接解析然后返回结果
11.如果还需要读取数据库,wrapper进程会去读取数据库数据,然后返回数据 
[root@web01 /package]# tar xf php.tar.gz
[root@web01 /package]# yum localinstall -y  *.rpm

作业:

1.恢复快照
2.三台机器使用官方源安装
3.搭建小游戏
4.使用模块搭建目录索引页面,可以下载文件

1、官方源安装Nginx

# 配置官方源
[root@web01 ~]# vim /etc/yum.repos.d/nginx.repo
[root@web02 ~]# vim /etc/yum.repos.d/nginx.repo
[root@web03 ~]# vim /etc/yum.repos.d/nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

# 安装Nginx
[root@web01 ~]# yum install -y nginx
[root@web02 ~]# yum install -y nginx
[root@web03 ~]# yum install -y nginx

# 修改Nginx用户
[root@web01 ~]# groupadd www -g 666 && useradd www -u 666 -g 666
[root@web02 ~]# groupadd www -g 666 && useradd www -u 666 -g 666
[root@web03 ~]# groupadd www -g 666 && useradd www -u 666 -g 666

[root@web01 ~]# vim /etc/nginx/nginx.conf
[root@web02 ~]# vim /etc/nginx/nginx.conf
[root@web03 ~]# vim /etc/nginx/nginx.conf 
user  www;

# 创建游戏目录并授权
[root@web01 ~]# mkdir /code/{games,download}
[root@web01 ~]# chown -R www.www /code

2、搭建小游戏

# 上传小游戏代码
[root@web01 /code/download]# rz html5-mario.zip tank.zip tuixiangzi.zip

# 解压代码包
[root@web01 /code]# unzip -d ./games/ html5-mario.zip
[root@web01 /code]# unzip -d ./games/ tank.zip
[root@web01 /code]# unzip -d ./games/ tuixiangzi.zip

# 自选小游戏
[root@web01 ~]# vim /etc/nginx/conf.d/games.conf 
server {
    listen 80;
    server_name localhost;
    charset utf-8;
    access_log /var/log/nginx/access.log main;
    location / {
        root /code/games;
        autoindex on;
        index index.html;
    }
}

3、模块索引页面

# 配置games的server模块
[root@web01 ~]# vim /etc/nginx/conf.d/games.conf 
server {
    listen 80;
    server_name localhost;
    charset utf-8;
    access_log /var/log/nginx/access.log main;
    location / {
        root /code;
        autoindex on;
        index index.html;
    }
    location /download {
        root /code;
        autoindex on;
        autoindex_exact_size off;
        autoindex_localtime on;
        index index.html;
    }
}

4、进入查看

#浏览器查看
http://10.0.0.7/games/
http://10.0.0.7/download/

第八章 Nginx常用模块

标签:apr   场景   windows   配置   区分   reading   Stub   ring   规则   

原文地址:https://www.cnblogs.com/xuexiaosong/p/13589942.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!