保障班4-0516任务打卡

 

12.7默认虚拟主机

1新建虚拟主机的配置文件

1.3 创建网站数据目录

1.4 测试虚拟主机配置是否成功

12.8Nginx用户认证

1编辑虚拟主机配置文件

2 生成密码文件

3测试用户认证是否配置成功

12.9Nginx域名重定向

1 编辑配置文件

12.10Nginx访问日志

1配置访问日志格式

2测试日志配置是否成功

12.11Nginx日志切割

1 nginx日志按每分钟自动切割脚本如下

2 配置任务计划

12.12静态文件不记录日志和过期时间

1 编辑配置文件

2测试静态配置文件是否成功

12.13Nginx防盗链

1 编辑配置文件

2测试配置文件是否成功

12.14Nginx访问控制

1 编辑配置文件根据IP访问控制

2 根据user_agent限制

12.15Nginx解析php相关配置

1编辑配置文件

2 测试nginx解析php是否成功

12.16 Nginx代理

10.1 编辑配置文件

10.2 测试代理是否配置成功

12.7默认虚拟主机

1 nginx的默认虚拟主机在用户通过IP访问,或者通过未设置的域名访问(比如有人把他自己的域名指向了你的ip)的时候生效。

2 新建虚拟主机的配置文件

//创建一个虚拟配置文件的目录

# mkdir /usr/local/nginx/conf/vhost

//编辑nginx配置文件加入include vhost/*.conf;

# vim nginx.conf

//创建一个虚拟主机配置文件

# vim test.com.conf

server

{  

 // 指定监听80端口,并将该虚拟主机设置为默认虚拟主机

   listen 80 default_server;  

 // 设置服务器的名称  

 server_name aaa.com;

   // 设置服务器默认网页  

 index index.html index.htm index.php;  

 // 设置服务器的根目录  

 root /data/www/default;}

1.3 创建网站数据目录

//创建网站数据目录

# mkdir -p /data/wwwroot/test.com

//创建网站首页

# vim /data/wwwroot/test.com/index.html

This is a nginx default page!

1.4 测试虚拟主机配置是否成功

//检测配置语法是否有问题,并重载配置文件

# /usr/local/nginx/sbin/nginx -t

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successfu

# curl -x127.0.0.1:80 test.com

This is a nginx default page!

# curl -x127.0.0.1:80 www.111.com

This is a nginx default page! 

12.8Nginx用户认证

1编辑虚拟主机配置文件

# vim /usr/local/nginx/conf/vhost/test.com.conf

location  /1.php                         //定义需要认证的目录或者页面  

 {    

   auth_basic              "Auth";  定义用户名      

 auth_basic_user_file   /usr/local/nginx/conf/htpasswd;  用户名密码文件  

 }

1.这里其实可以配置一个目录进行认证 location  /upload 表示对upload进行认证2.location  ~ admin.php  匹配php的访问路径

2 生成密码文件

//生成密码文件,可以使用Apache自带的htpasswd工具,如果没有就用Yum安装httpd

# yum install -y httpd

/新建一个aminglinux用户用来等一下进行用户认证

# htpasswd -c /usr/local/nginx/conf/htpasswd aminglinux

3测试用户认证是否配置成功

//新建一个1.php页面用来进行测试

# vim /data/wwwroot/test.com/1.php

//测试语法,并重置配置文件

# /usr/local/nginx/sbin/nginx -t

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successfu

# /usr/local/nginx/sbin/nginx -s reload

//这里测试出现401出现了需要用户认证

# curl -x127.0.0.1:80 test.com/1.php -I

12.9Nginx域名重定向

1 编辑配置文件

# vim /usr/local/nginx/conf/vhost/test.com.conf

server

{  

 listen 80 default_server;  

 server_name test.com 111.com ;

   index index.html index.htm index.php;    root /data/wwwroot/test.com;

   if ($host != 'test.com' ) {  

     rewrite  ^/(.*)$  http://test.com/$1  permanent;    

   //表示不是test.com的域名来访问,都重定向到test.com

       //permanent为永久重定向,状态码为301,如果写redirect则为302

 

 

2 测试配置文件是否成功

# /usr/local/nginx/sbin/nginx -t

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok

nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

# /usr/local/nginx/sbin/nginx -s reload

12.10.Nginx访问日志

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

2 配置访问日志格式

# vim /usr/local/nginx/conf/nginx.conf

log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local]'    ' $host "$request_uri" $status'    ' "$http_referer" "$http_user_agent"';

$remote_addr, $http_x_forwarded_for(反向) 记录客户端IP地址

$remote_user 记录客户端用户名称

$request 记录请求的URL和HTTP协议

$status 记录请求状态

$body_bytes_sent 发送给客户端的字节数,不包括响应头的大小; 该变量与Apache模块mod_log_config里的“%B”参数兼容。$bytes_sent 发送给客户端的总字节数。

$connection 连接的序列号。

$connection_requests 当前通过一个连接获得的请求数量。

$msec 日志写入时间。单位为秒,精度是毫秒。

 

$pipe 如果请求是通过HTTP流水线(pipelined)发送,pipe值为“p”,否则为“.”。

$http_referer 记录从哪个页面链接访问过来的

$http_user_agent 记录客户端浏览器相关信息

$request_length 请求的长度(包括请求行,请求头和请求正文)。

$request_time 请求处理时间,单位为秒,精度毫秒; 从读入客户端的第一个字节开始,直到把最后一个字符发送给客户端后进行日志写入为止。

$time_iso8601 ISO8601标准格式下的本地时间。

$time_local 通用日志格式下的本地时间。

 

12.11 .Nginx日志切割

1nginx日志默认情况下统统写入到一个文件中,文件会变的越来越大,非常不方便查看分析。以日期来作为日志的切割是比较好的,通常我们是以每日来做统计的。

2 nginx日志按每分钟自动切割脚本如下:

# vim /usr/local/sbin/nginx_log.sh

# /bin/bash

# 日志保存位置

logdir='/usr/local/nginx/logs'

# 获取当前年信息和月信息

log_path=$(date -d yesterday +"%Y%m")

# 获取昨天的日信息day=$(date -d yesterday +"%d")

# 按年月创建文件夹mkdir -p $base_path/$log_path

# 备份昨天的日志到当月的文件夹

mv $base_path/access.log $base_path/$log_path/access_$day.log

# 输出备份日志文件名

# echo $base_path/$log_path/access_$day.log

# 通过Nginx信号量控制重读日志

kill -HUP `cat /usr/local/nginx/logs/nginx.pid`

5.3 配置任务计划

crontab –e 59 23 * * * bash /usr/local/sbin/nginx_log.sh   #每天23:59分开始执行;

12.12静态文件不记录日志和过期时间

1在Apache配置的时候介绍了静态文件可以设置不记录日志的,那么在Nginx里面同样也可以把一些静态文件忽略掉,不记录日志。

2 编辑配置文件

#vim /usr/local/nginx/conf/vhost/test.com.conf

12.13Nginx防盗链

1 首先,为什么需要防盗链,因为有些资源存在竞争对手的关系,比如淘宝的商品图片,不会轻易的让工具来爬虫爬走收集。但是如果使用防盗链,需要知道上一个访问的资源,然后放入名单中进行判断。那么如何获取上一个访问的资源呢,可以通过valid_referers模块来实现.

2 编辑配置文件


[root@knightlai logs]# vim /usr/local/nginx/conf/vhost/test.com.conf 

location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$

valid_referers none blocke server_names *.test.com;

    if ($invalid_referer) {

    return 404;

}

 

//valid_referers none blocked *.test.com;

 

就是白名单,允许文件链出的域名白名单,自行修改成您的域名!*.test.com这个指的是子域名,域名与域名之间使用空格隔开!

12.14Nginx访问控制

1 编辑配置文件根据IP访问控制


//编辑配置文件

# vim /usr/local/nginx/conf/vhost/test.com.conf

location /admin/

    {

          allow 192.168.139.168;

          allow 127.0.0.1;

          deny all;

     }

 

# mkdir /data/wwwroot/test.com/admin

# vim /data/wwwroot/test.com/admin/1.html

 

12.15:nginx解析PHP

在LAMP中,PHP是作为httpd的一个模块出现的,只要PHP模块被加载,那么就能解析PHP脚本了。而在LNMP中,PHP是一个服务(php-fpm)的形式存在的,首先要启动php-fpm服务,然后Nginx再和php-fpm通信。

1.编辑配置文件


# vim /usr/local/nginx/conf/vhost/test.com.conf 

location ~ \.php$   {     

include fastcgi_params;     

fastcgi_pass unix:/tmp/php-fcgi.sock;     

fastcgi_index index.php;     

fastcgi_param SCRIPT_FILENAME /data/wwwroot/test.com$fastcgi_script_name;  

 } 

 

 

fastcgi_pass 用来指定php-fpm监听的地址或者socket

12.16 Nginx代理

1 编辑配置文件

//新建一个代理配置文件并写入参数

# cd /usr/local/nginx/conf/vhost/

]# vim proxy.conf

server

{

   listen  80;

   server_name  www.linuxidc.com;  

  location / {        

proxy_pass        http://www.linuxidc.com;    

   proxy_set_header   Host             $host;  

     proxy_set_header   X-Real-IP        $remote_addr;  

     proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;

   }

}

2.测试Nginx代理是否配置成功。

# /usr/local/nginx/sbin/nginx -t

#/usr/local/nginx/sbin/nginx -s reload 
 

扩展
nginx.conf 配置详解  
https://coding.net/u/aminglinux/p/nginx/git/tree/master/3z
nginx rewrite四种flag  
http://unixman.blog.51cto.com/10163040/1711943
https://coding.net/u/aminglinux/p/nginx/git/blob/master/rewrite/break.md
502问题汇总  http://ask.apelearn.com/question/9109
location优先级 https://coding.net/u/aminglinux/p/nginx/git/blob/master/location/priority.md

 

 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
 

 


 

 

 


 

 

 

 

 

 

 

 

 

  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

           
                  
  

 

  
      
 


 

 

 


 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

           
                  
  

 

  

 


 

 

 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值