小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 是可以看到详细的过程
之后我们只需把脚本放到计划任务了,就好了;
--------------------------------------------------------------------------------------------------
配置静态缓存文件:
【后有截图】
第一加快响应速度;第二节省我们带宽。
进入虚拟主机配置文件:
vim /usr/local/nginx/conf/vhosts/test.conf
在先前配置的不记录图片等类型日志模块内,添加
expires 15d; # 缓存15天 #另外增加模块,缓存js 和 css 样式文件 #(都是做web编程的。css是定义网页的样式的,js是一些特效,就是java script.) location ~ \.(js|css) { access_log off; # 不记录日志 expires 2h; # 缓存两小时 }
检测: /usr/local/nginx/sbin/nginx -t
重加载: /etc/init.d/nginx reload
/usr/local/nginx/sbin/nginx -s reload
检验:curl -x127.0.0.1:80 ‘任意缓存文件的衔接’ -I
防盗链:
【后有截图】
构建LAMP章节有细述,主要为了防止我们的图片等文件被别人盗用
进入主配置文件·············
因为我们主要是防止图片视频等盗用,所以直接在location 模块下添加配置
valid_referers none blocked .*test.com .*aaa.com .*bbb.com; if ($invalid_referer) { # 只要是以上面三个开头的都返回403 return 403; }
配制方法比Apache简单得多
检测: 重加载:
检验:curl -e "http://www.baidu.com" -I -x127.0.0.1:80 "我们图片的衔接"
输出403 ,去掉 -e则显示200
curl -e "http://www.aaa.com" -I -x127.0.0.1:80 "我们图片的衔接" (可以)
nginx访问控制:
【后有截图】
有时我们会发现有IP一直***我们,我们要把他加入黑名单,保护网站;
或者比如我们的管理后台需要重点保护,我们可以设置白名单的方式,只允许我们自己访问,更安全。
进入虚拟主机配置文件:
vim /usr/local/nginx/conf/vhosts/test.conf
#将原本设置的后台管理的用户认证两行去掉,设置白名单 allow 127..0.0.1;
这属于局部的,我们也可以设置全局的;
他不像Apache一样用order控制先访问谁,它会从上到下全部执行一遍;
检测: /usr/local/nginx/sbin/nginx -t
重加载:/etc/init.d/nginx reload
/usr/local/nginx/sbin/nginx -s reload
同时我们也可以针对目录添加 location 进行设置黑白名单。
禁止指定的user_agent:
【后有截图】
主要是为了防止各个网站的爬虫占用网站的资源。
进入虚拟主机配置文件············
配置文件中添加:
if ($http_user_agent ~* 'curl|baidu|1111') { return 403; }
检测: /usr/local/nginx/sbin/nginx -t
重加载: /usr/local/nginx/sbin/nginx -s reload
检验: curl -A "jgdjdd1111gbf.fgbf" -x127.0.0.1:80 www.test.com
curl -A "jgdjdd11gbf.fgbf" -x127.0.0.1:80 www.test.com
nginx代理详解:
有时我们需要指定一个代理服务器(IP)去访问一个我们不能访问的网站;比如说现在香港和外国都可以访问谷歌,而我们不行,我们就可以指定一个香港的代理去访问谷歌;或者西藏方面无法访问百度,我们可以设置一下。
进入虚拟主机目录(即vhosts下):
新建代理配置文件
touch proxy.conf
#写入: server { listen 80; server_name www.baidu.com; location / { proxy_pass http://61.135.169.121/; #proxy_set_header Host $host; # 指定多个IP时添加 }
检测 : /usr/local/nginx/sbin/nginx -t
重加载: /usr/local/nginx/sbin/nginx -s reload
/etc/init.d/nginx reload
查看域名解析的哪个IP:
dig www.baidu.com 要安装:yum install bind*
反向代理扩展:http://liuyu.blog.51cto.com/183345/166381/
匹配规则扩展:http://blog.sina.com.cn/s/blog_97688f8e0100zws5.html
虚拟主机配置种类 :http://19001989.blog.51cto.com/3447586/702374
nginx配置详解扩展:http://www.cnblogs.com/lost-1987/articles/3368115.html
转载于:https://blog.51cto.com/tengxiansheng/1700528