LNMP(二)

4.默认虚拟主机

(1)编辑配置文件

[root@lnmp nginx]# vim conf/nginx.conf

将选中部分全部删除

在application下面添加代码

Include vhost/*.conf;

(2)创建vhost文件

[root@lnmp nginx]# cd conf/

[root@lnmp conf]# mkdir vhost

编辑一个.com.conf文件

添加以下内容

[root@lnmp vhost]# vim  qjq.com.conf

·  server

· {

·   listen 80 default_server;   //有这个标记的就是默认虚拟主机

·   server_name wyc.com;

·   index index.html index.htm index.php;

·   root /data/nginx/default;

·  } 

(3)创建目录

[root@lnmp vhost]# mkdir -p /data/nginx/default

在这个目录下写一段话

[root@lnmp vhost]# echo "this is a default site." >> /data/nginx/default/index.html

(4)检查一下文件是否出错

[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -t

(5)用一个新的命令重新加载配置文件,可以不需要重启

[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -s reload

(6)curl命令运行一下

[root@lnmp vhost]# curl localhost

 

5.Nginx用户认证

(1)创建一个虚拟主机

添加以下代码

server

{

    listen 80;

    server_name test.com;

    index index.html index.htm index.php;

    root /data/wwwroot/test.com;

location  /

    {

        auth_basic              "Auth";

        auth_basic_user_file   /usr/local/nginx/conf/htpasswd;

}

}

(2)生成密码

[root@lnmp vhost]# htpasswd -c /usr/local/nginx/conf/htpasswd test

如果没有htpasswd命令

安装htpp插件

[root@lnmp vhost]# yum install -y httpd

(3)重新加载配置,检查文件是否出错

[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -t

[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -s reload

(4)curl命令测试一下

[root@lnmp vhost]# curl -x127.0.0.1:80 test.com

提示401,需要指定用户

[root@lnmp vhost]# curl -utest:123 -x127.0.0.1:80 test.com

提示404,缺少主目录,需要创建主目录

[root@lnmp vhost]# mkdir -p /data/wwwroot/test.com

在这个目录下写一个index.com文件

[root@lnmp vhost]# echo "test.com" > /data/wwwroot/test.com/index.html

(5)curl命令运行一下

[root@lnmp vhost]# curl -utest:123 -x127.0.0.1:80 test.com

6.Nginx域名重定向

(1)修改配置文件

[root@lnmp vhost]# vi test.com.conf

将配置文件改成下面这样

(2)检查配置文件是否正确并重新加载一下

[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -t

[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -s reload

(3)curl命令运行一下

[root@lnmp vhost]# curl -x127.0.0.1:80 test2.com

可以看到提示301,查看一下跳转到哪了

[root@lnmp vhost]# curl -x127.0.0.1:80 test2.com -I

 

7.访问日志

(1)主配置文件内容

·  $remote_addr         //客户端IP(公网IP)

·  $http_x_forwarded_for         //代理服务器的IP

·  $time_local         //服务器本地时间

·  $host         //访问主机名(域名)

·  $request_uri         //访问的url地址

·  $status         //状态码

·  $http_referer         //referer

·  $http_user_agent         //user_agent  

(2)修改配置文件

[root@lnmp vhost]# vim /usr/local/nginx/conf/nginx.conf

查找log_format,将comdine_realip改成test。

(3)虚拟主机配置里定义

[root@lnmp vhost]# vim test.com.conf

添加代码access_log /tmp/test.com.log test;

(4)检查配置文件是否正确并重新加载一下

[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -t

[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -s reload

(5)curl命令运行一下

[root@lnmp vhost]# curl -x127.0.0.1:80 test3.com

[root@lnmp vhost]# curl -x127.0.0.1:80 test2.com

(6)查看一下日志

[root@lnmp vhost]# cat /tmp/test.com.log 

 

8.日志分割

(1)创建一个日志切割脚本

[root@lnmp ~]# vim /usr/local/sbin/nginx_Logrotate.sh

添加下面代码

·  #! /bin/bash

·  ## 假设nginx的日志存放路径为/data/logs/

·  d=`date -d "-1 day" +%Y%m%d`

·  logdir="/tmp/"

·  nginx_pid="/usr/local/nginx/logs/nginx.pid"

·  cd $logdir

·  for log in `ls *.log`

·  do

·      mv $log $log-$d

·  done

·  /bin/kill -HUP `cat $nginx_pid`

(2)针对这两个conf文件进行操作

 

[root@lnmp vhost]# for f in `ls` ; do ls -l $f ;done

(3)-x  //执行脚本的过程

(4)每天都会生成一个日志,我们需要每过段时间都需要做一个清理

[root@lnmp vhost]# find /tmp/ -name *.log-* -type f -mtime +7 |xargs rm

操作失败是因为没有符合要求的文件的

(5)加一个任务计划

[root@lnmp vhost]# crontab -e

写入代码

0 0 * * * /bin/bash /usr/local/sbin/nginx_logrotate.sh

 

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

(1)修改配置文件

[root@lnmp vhost]# vi test.com.conf

将下面代码添加进去

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

             {

             expires 7d;

             access_log off;

        }   

             location ~ .*\.(js|css)$

        {     

              expires 12h;

              access_log off;                       

        }

(2)检查配置问价那时候正确并重新加载一下

[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -t

[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -s reload

(3)模拟一个图片

[root@lnmp vhost]# vim /data/wwwroot/test.com/1.jpg

[root@lnmp vhost]# vim /data/wwwroot/test.com/2.js 

随便写点东西,curl命令运行一下

[root@lnmp vhost]# curl -x127.0.0.1:80 test.com/1.jpg

[root@lnmp vhost]# curl -x127.0.0.1:80 test.com/2.js

[root@lnmp vhost]# curl -x127.0.0.1:80 test.com/indx.html

[root@lnmp vhost]# curl -x127.0.0.1:80 test.com/index.html

(4)通过查看日志可以发现添加了我们刚才的访问记录

[root@lnmp vhost]# cat /tmp/test.com.log

(5)curl命令加上-I,就可以看到有expires

[root@lnmp vhost]# curl -x127.0.0.1:80 test.com/2.js -I

 

10.Nginx防盗链

(1)修改配置文件

[root@lnmp vhost]# vi test.com.conf

将下面内容添加进去

location ~* ^.+\.(gif|jpg|png|swf|flv|rar|zip|doc|pdf|gz|bz2|jpeg|bmp|xls)$

{

expires 7d;

valid_referers none blocked server_names *.test.com ;

if ($invalid_referer) {

return 403;

}

access_log off;

}

 

(2)检查配置文件是否正确并重新加载一下

[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -t

[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -s reload

(3)使用curl命令访问一下

[root@lnmp vhost]# curl -e "http://www.baidu.com/1.txt" -x127.0.0.1:80 test.com/1.jpg -I

提示403,访问失败

用test访问一下

[root@lnmp vhost]# curl -e "http://www.test.com/1.txt" -x127.0.0.1:80 test.com/1.jpg -I

访问成功,说明我们的防盗链配置成功了

 

11.Nginx访问控制

(1)修改配置文件

[root@lnmp vhost]# vi test.com.conf 

添加以下代码

location /admin/

   {    

       allow 127.0.0.1;

       allow 192.168.200.20;

       deny all;

    }   

(2)检查配置文件是否正确并重新加载一下

[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -t

[root@lnmp vhost]# /usr/local/nginx/sbin/nginx -s reload

(3)curl命令访问一下

[root@lnmp vhost]# curl -x127.0.0.1:80 test.com/admin/ -I

[root@lnmp vhost]# curl -x192.168.200.20:80 test.com/admin/ -I

状态码为200

(4)针对正则匹配进行配置

修改配置文件

(5)创建一个目录

[root@lnmp vhost]# mkdir /data/wwwroot/test.com/upload

在这里创建一个php文件

[root@lnmp vhost]# echo "111" > /data/wwwroot/test.com/upload/1.php

进行访问。状态码提示403不允许访问。

将php文件改成txt文件就可以访问了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值