小Q:把委屈和泪水都咽下去,输不起就不要输,死不了就站起来,告诉所有看不
起你的人:我很好。
LNMP架构和LAMP架构一样,其实都是配置web服务的nginx或Apache中的虚拟主机配置文件;因为配置Apache的时候用了很长时间去理解,所以在nginx时,感觉轻松好多,配置的内容都一样;现在介绍第一部配置。
nginx用户认证:
【后有截图】
同Apache的认证类似;比如我们要在后台管理界面进行双重加密(即在www.test.com/admin.php界面加一个用户认证)。
cd /usr/local/nginx/conf/vhosts vim test.com
location ~ .*/admin\.php$ 匹配后台管理的网址
{ auth_basic "teng auth";
auth_basic_user_file /usr/local/nginx/conf/.htpasswd;
include fastcgi_params; 以下四段只要是认证的界面有php要解析,就要加上,
否则打开界面会自动下载
fastcgi_pass unix:/tmp/www.sock; 监听的方式,有时要改为IP+port的格式
#fastcgi_pass 127.0.0.1;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;
}
检测 : /usr/local/nginx/sbin/nginx -t
重加载:/etc/init.d/nginx reload
添加认证的用户: htpasswd -c /usr/local/nginx/conf/.htpasswd 用户名
回车输入密码即可;另外再添加用户时压要去掉 -c(创建)
验证php可以解析:进入后台管理界面(如果还是会下载清理一下缓存)
或curl -x127.0.0.1:80 www.test.com/admin.php 是源码的话表示配置错误
我们也可以把重要的目录进行用户认证加密,保护我们的数据,另加 location /目录名/ { 如果有要解析的php文件,则要加上那四行 } ;
而 location 后面的匹配方式见下衔接;
http://blog.sina.com.cn/s/blog_97688f8e0100zws5.html
nginx域名跳转:
【后有截图】
前面Apache的时候我们详细提到过,其实就是设置一个主域名,让其他的域名都跳转到这来。
进入虚拟主机配置文件:
vim /usr/local/nginx/conf/vhosts/test.conf
添加配置:
server_name www.test.com www.aaa.com www.bbb.com; 主域名后添加次域名
if ($host != 'www.test.com' )
{
rewrite ^/(.*)$ http://www.test.com/$1 permanent; $1=前面的正则 ;permanent见下面详述
}
检测 : /usr/local/nginx/sbin/ngiinx -t
重加载: /etc/init.d/nginx reload
检验:用次域名进入网站 ; 或者 curl -x127.0.0.1:80 www.aaa.com/dsfjfddgid 查看
http://www.apelearn.com/bbs/thread-4840-1-1.html
日志不记录指定文件类型:
【后有截图】
有时查看网站访问日志时,有太多不用看的信息都出来扰乱视线,所以我们要把他们过滤掉,不让日志记录。
进入nginx主配置文件:
vim /usr/local/nginx/conf/nginx.conf
找到http模块下的 log_format 自定义格式的名字 日志格式
进入主机配置文件:
vim /usr/local/nginx/conf/vhosts/test.conf
添加模块:
如下图所示; 另外模块添加的位置也是有讲究的 ,可以多去尝试一下;
日志切割:
【后有截图】
当我们访问量太多的时候,日志会占用太多的磁盘,so要定时切割并删除;Apache采用的命令工具,而nginx需要脚本实现。
我们通常把脚本放在默认的文件下
vim /usr/local/sbin/nginx_logrotate.sh
写入内容:
#!/bin/bash 脚本文件开头语
d='date -d "-1 day" +%F' d表示date;今天切割昨天的(-1 day)
[-d /usr/local/nginx/nginx_log ] || mkdir /usr/local/nginx/nginc_log
先判断切割后日志存放路径存在吗,或者新建
mv /usr/local/nginx/access_log /usr/local/nginx/nginx_log/$d.log
移动切割后的日志 ,$d.log 切割后名字
/etc/init.d/nginx reload > /dev/null 重新加载的输出到dev
cd /usr/local/nginx/nginx_log/
gzip -f $d.log 压缩切割后文件,-f 强制覆盖
执行脚本:
sh -x /usr/local/sbin/nginx_logrotate.sh -x 是可以看到详细的过程
之后我们只需把脚本放到计划任务了,就好了;