小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 

wKiom1YT1tLDTcftAAHYSiXgkSc000.jpg

wKioL1YT1ufAtWmxAAEE0hLogNE759.jpg

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 

添加模块:

如下图所示; 另外模块添加的位置也是有讲究的 ,可以多去尝试一下;wKioL1YT2JfD0y4MAAEweLaQAR4526.jpg

wKioL1YT2JeyB6OyAAHsytXN8xY437.jpg


日志切割:

【后有截图】

当我们访问量太多的时候,日志会占用太多的磁盘,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  是可以看到详细的过程

之后我们只需把脚本放到计划任务了,就好了; 

wKioL1YT2Z_xjo85AAMH_PUamnA141.jpg

--------------------------------------------------------------------------------------------------

配置静态缓存文件:

【后有截图】

第一加快响应速度;第二节省我们带宽。

进入虚拟主机配置文件:

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

wKioL1bZVcDySGnyAACzlMD5dWM474.jpg

防盗链:

【后有截图】

构建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 进行设置黑白名单。

wKioL1bZVO3ij5wQAADCqhUfGTQ008.jpg


禁止指定的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

wKiom1bZVTPwSUHmAADX1tkpVvY852.jpg


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*

wKioL1bZVc-wdbrBAACiWT4dpBs182.jpg

反向代理扩展: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 

wKioL1bZViGAhi_qAAPIhUQhQWs053.jpg