##############基于LAMP(LNMP)问架构深度优化---配置文文件#################javascript
三、修改配置文件参数实现隐藏版本号php
a、nginx隐藏版本号css
syntax server_tokens on|off;html
在nginx配置文件中加入“server_token off;”前端
httpjava
{node
.........linux
server_tokens off;nginx
.........web
}
b、Apache隐藏版本号
[root@LAMP ~]# egrep "Server|ServerS" /application/apache/conf/extra/httpd-default.conf
# This configuration file reflects default settings for Apache HTTP Server.
# ServerName directive.
# ServerTokens
# This directive configures what you return as the Server HTTP response
ServerTokens Full
# Set to "EMail" to also include a mailto: link to the ServerAdmin.
ServerSignature On
[root@LAMP ~]#
其中黑体部分改分别改成以下:
ServerTokens Prod
ServerSignature Off
四、修改nginx/Apache的默认用户及用户组nobody
a、启动nginx服务,使用的默认用户为nobody:
为了防止黑客猜到这个用户,咱们须要更改下特殊的用户名,提供nginx服务用。
b、更改默认用户的方法有两种,第一种为:
user:nginx nginx;
设置Nginx Worker进程运行的用户以及用户组
useradd nginx -s /sbin/nologin -M <==不须要有系统登陆权限,应该禁止其登陆,至关于Apache里的用户同样
c、更改默认用户的方法有两种,第一种如上面所说,第二种为:
./configure --user=nginx --group=nginx --prefix=/application/nginx1.6.2 --with-http_stub_status_module --with-http_ssl_module
提示:其实在前面编译nginx服务时,咱们就这样带着参数编译的。
d、Apache默认用直接修改配置文件内容:
[root@LAMP ~]# egrep "User|Group" /application/apache/conf/httpd.conf
# User/Group: The name (or #number) of the user/group to run httpd as.
User www
Group www
补充知识:
配置nginx worker进程个数
在高并发场景,咱们须要事先启动更多的nginx进程以保证快速响应并处理用户的请求。具体的配置参数以下:
worker_processes 8 <===指定了Nginx须要开启的进程数,建议指定和CPU的数量相等或者乘2的进程数
work_processes 参数开始的设置能够等于cpu的个数或者核数(work_cpu_affinity参数中的配置能够指定第一个到最后一个进程分别使用的哪一个cpu),进程多一些,其实提供服务就不会临时启动新进程提供服务,减小了系统开销,提高了服务速度。特殊场合也能够考虑提升至CPU*2 的进程数,具体状况要跟根据实际的业务来选择,由于这个参数,除了CPU核数的影响外,和硬盘存储的数据以及负载也有关。
查看linux服务器的核数的方法:
[root@LNMP application]# grep "physical id" /proc/cpuinfo
physical id : 0
physical id : 0
physical id : 1
physical id : 1
[root@LNMP application]#
能够按照physical数量设置,或者将目前数量*2
五、事件处理模型优化
nginx的链接处理机制在于不一样的操做系统采用不一样的IO模型,在linux使用epoll的IO多路复用模型,在FreeBSD使用kqueue的IO多路复用模型,在Solaris使用/dev/poll方式的IO多路复用模型,在Windows中使用的是icop等等。
根据系统类型不一样选择不一样use[kqueue|rtsig|epoll|/dev/poll|select|poll];该参数结合系统使用,不一样系统使用参数不一样,咱们使用的是Centos6.5,所以咱们调整为epoll模型
具体参数配置以下:
events <====envents指令是设定nginx的工做模式及链接数上限
{
use epoll;
}
六、调整单个进程容许客户端最大链接数
这个值根据根据具体服务器性能和程序的内存使用量来制定(一个进程启动使用的内存根据程序肯定)
events <====指令设定Nginx的工做模式及链接数上限
{
worker_connections 20480;
}
worker_connections也是个模块指令,用于定义Nginx每一个进程的最大链接数,默认是1024,客户端最大链接数由worker_processes和worker_connections决定,即Max_client=worker_processes * worker_connections,进程的最大链接数受linux系统进程的最大打开文件数限制,在执行操做系统命令“umilited -HSn 65535”或者配置相应的文件后,worker_connections的设置才生效
七、配置每一个进程最大文件打开数
worker_rlimit_nofile 65536;
该参数的意思为每一个进程打开的最大文件数,能够设置为系统优化受的ulimit -HSn的结果,在第一章系统安装时调整文件描述符和这个处理的一个问题。
详细查阅:http://nginx.org/en/docs/ngx_core_module.html
八、优化服务器名字的hash表大小
确切名字和通配符名字存储在哈希表中。哈希表和监听端口关联,每一个端口都最多关联三张表:确切的名字的哈希表,以星号(*)起始的通配符名字的哈希表和以星号结束的通配符名字的哈希表。哈希表的尺寸在配置阶段进行了优化,能够以最小的CPU缓存命中失败来找到名字。nginx首先搜索切确名字的的哈希表,若是没有找到,则搜索以星号(*)其实的通配符名字的哈希表,若是仍是没有找到,继续搜索以星号结束的通配符名字的哈希表。由于名字是按照域名的节点来搜索的。因此搜索通配符名字的哈希表比搜索确切名字的哈希表慢。注意:nginx.org存储在通配符名字的哈希表中,而不在确切名字的哈希表中。正则表达式是一个一个串行的测试,因此是最慢的,并且不可扩展。因为上述缘由,咱们通常尽量的使用确切的名字。好比若是使用nginx.org和www.nignx.org来访问服务器是最频繁的,那么咱们明确的定义出来对访问搜索域名的速度效率来讲更有效:
若是定义了大量名字,或者定义了很是长的名字,那就须要在php配置模块中调整server_names_hash_max_size和server_names_hash_bucket_size的值。
server_names_hash_bucket_size的默认值多是32,或者是64,或者是其余值,取决于CPU的缓存行的长度。若是这个值是32,那么定义“too.long.server.name.nginx.org”做为虚拟机主机名就会失败,显示以下错误信息:
could not build the server_names_hash,
you should increase server_names_hash_bucket_size;32
出现这种状况,那就须要设置值扩大一倍:
http{
server_names_hash_bucket_size 64;
}
九、开启高效的文件传输模式
sendfile on; <====sendfile参数用户开启文件高效传输模式,同时将tcp_nopush和tcp_nodelay两个指令设置为on用于防止网络阻塞。
十、设置链接的超时时间
php服务,建议但愿短链接;java建议长链接
keepalive_timeout 60;
<==设置客户端保持会话的超时时间,超过这个时间,服务器会关闭链接。
tcp_nodelay on;
<==打开tcp_nodelay,包含了keepalive参数才有效
client_header_timeout 15;
<==设置客户端请求读取超时时间,若是超过这个时间,客户端还没发送任何数据,Nginx将返回“Rquest timeout (408)”错误.
client_body_timeout 15;
<==设置客户端请求主体读取超时时间,若是超过这个时间,客户端还没发送任何数据,Nginx将返回“Request time out(408)”错误,默认值是60.
send_timeout 15;
<==指定响应客户端的超时时间,这个超时时间仅限于两个链接活动之间的时间,若是超过这个时间,客户端没有任何活动,Nginx将会关闭链接。
十一、上传文件大小限制(动态应用)
主配置文件里加入以下参数,具体大小根据你本身的业务作调整。
client_max_body_size 10m;
十二、fastcgi调优(配合PHP引擎动态服务)
fastcgi_connect_timeout 300;
<==指定链接到后端FastCGI的超时时间
fastcgi_send_timeout 300;
<==向Fastcgi传送请求的超时时间,这个值是指已经完成两次握手后向FastCGI传送请求的超时时间。
fastcgi_read_timeout 300;
<==指定接收FastCGI应答的超时时间,这个值是指已经完成两次握手后接收FastCGI应答的超时时间
fastcgi_buffer_size 64k;
<==指定读取FastCGI应答第一部分须要用多大的缓冲区,这个值表示将使用1个64k的缓冲区读取应答的第一部分(应答头),能够设置为fastcgi_buffers 选项指定的缓冲区大小。
fastcgi_buffers 4 64k;
<==指定本地须要用多少和多大的缓冲区来缓冲FastCGI的应答请求,若是一个PHP脚本产生的页面大小为256K,那么会为其分配4个64KB的缓冲区来缓存;若是页面大小大于256KB,那么大于256KB的部分会缓存到Fastcgi_temp指定的路径中,可是这并非好方法;由于内存中的数据处理速度要快于硬盘,通常这个值应该为站点中PHP脚本所产生的页面大小的中间值,若是站点大部分脚本产生的页面大小为256KB,那么能够把这个值设置为“16 16K”、“4 64K”等。
fastcgi_busy_buffers_size 128k;
<==建议为fastcgi_buffers 的两倍
fastcgi_temp_file_write_size 128k;
<==在写入fastcgi_temp_path时将用多大的数据块,默认值是fastcgi_buffers的两倍,设置上述数值设置过小时若负载上来时能报 502 Bad Gateway
fastcgi_cache ucode_nginx;
<==表示开启FastCGI缓存并为其指定一个名称,开启缓存很是有用,能够有效下降CPU的负载,而且防止502错误的发生,可是开启缓存也可能会引发其余问题,要根据具体状况选择。
fastcgi_cache_valid 200 302 1h;
<==用来指定应答代码的缓存时间,实例中的值表示将200和302应答缓存一个小时。
fastcgi_cache_valid 301 1d;
<==将301应答缓存1天
fastcgi_cache_valid any 1m;
<==将其余应答缓存为1分钟
fastcgi_cache_min_uses 1;
<==缓存在fastcgi_cache_path指令inactive参数时间内的最少使用次数
1三、修改nginx源码文件进行优化:具体优化避免显示header为nginx和错误提示显示nginx关键字和版本号
a、隐藏nginx做为header头
修改nginx源码文件中的vim src/http/ngx_http_header_filter_module.c
光标分别移动到如下两行(4九、50)修改红色部分关键字为其余内容:
这里改成Web SERVER和Web Server test
即修改以下字段:
"Server: nginx" CRLF;
"Server: NGINX_VER"
修改成:
"Server: Web Server" CRLF;
"Server: Web Server test"
从新编译安装nginx,而后启动,经过curl -I 10.0.0.10 查看结果:
b、隐藏错误信息避免爆出关键字nginx及其版本号
修改错误页面信息修改文件路径为:
vim nginx-1.7.10/src/http/ngx_http_special_response.c
修改成:
而后从新编译、安装、启动nginx
提示:目前测试nginx版本是nginx-1.7.10,对于nginx其余版本能够根据须要修改对应参数,通常修改参数为:
static u_char ngx_http_error_full_tail[] =
"<hr><center>"NGINX_VER"</center>" CRLF
"</body>" CRLF
"</html>" CRLF
;
和
static u_char ngx_http_error_tail[] =
"<hr><center>nginx</center>" CRLF
"</body>" CRLF
"</html>" CRLF
;
对应nginx-1.6版本只须要修改<center>nginx</center>便可
1四、配置nginx gzip压缩功能
nginx gzip 压缩模块提供了对文件内容压缩的功能,容许nginx服务器将输出内容在发送之到客户端以前根据具体的策略进行压缩,以节约网站带宽,同时提高用户体验。
此功能同Apache的mod_deflate压缩功能,依赖ngx_http_gzip_module模块,默认已安装,咱们已经详细介绍过压缩功能。
常见要压缩的的内容,如全部程序文件(js,css,html);而图片、视频、flash文件等文件不进行压缩。
一、对应的压缩参数说明以下:
gzip on;
<==开启gzip压缩功能。
gzip_min_length 1k;
<==设置容许压缩的页面最小字节数,页面字节数从header头的Content-Length中获取,默认值是0,无论页面多大都进行压缩,建议设置成大于1K,若是小于1K可能会越压缩越大。(即:大于1k才压缩,小于1k不压缩)
gzip_buffers 4 16k;
<==压缩缓冲区大小。表示申请4个单位为16k的内存做为压缩结果流缓存,默认值是与原始数据大小相同的内存空间来存储gzip压缩结果。
gzip_http_version 1.0;
<==压缩版本(默认1.1,前端squid2.5时使用1.0)用户设置识别http协议版本,默认是1.1,默认大部分浏览器已经支持GZIP
解压,使用默认便可
gzip_comp_level 2;
<==压缩比率。用来指定GZIP压缩比,1压缩比最小,处理速度最快;9压缩比例最大,传输速度最快,但处理最慢,也比较消耗cpu资源。
gzip_types text/plain application/x-javascript text/css application/xml;
<==用来指定压缩类型,“text/hmtl”类型老是会被压缩。
gzip_vary on;
<==veray header 支持。该选项可让前端的缓存服务器缓存通过GZIP压缩的页面,例如使用squid缓存通过nginx压缩的数据。
二、完整的配置
gzip on;
gzip_min_length 1;
gzip_buffers 4 32k;
gzip_http_version 1.1;
gzip_comp_level 9;
#gzip_types text/plain application/x-javascript text/css application/xml;
gzip_types text/html text/css text/xml application/javascript;
gzip_vary on;
更多官方资料http://nginx.org/en/docs/http/ngx_http_gzip_module.html
提示:gzip_types类型不一样的版本可能会不一样,对应的版本类型到文件mimes.types中查找:
在该路径下查看当前nginx的安装目录下的mimes.types中查找匹配的类型:
[root@LNMP conf]# cat mime.types
types {
text/html html htm shtml;
text/css css;
text/xml xml;
image/gif gif;
image/jpeg jpeg jpg;
application/javascript js;
application/atom+xml atom;
application/rss+xml rss;
text/mathml mml;
text/plain txt;
text/vnd.sun.j2me.app-descriptor jad;
text/vnd.wap.wml wml;
text/x-component htc;
image/png png;
image/tiff tif tiff;
image/vnd.wap.wbmp wbmp;
image/x-icon ico;
image/x-jng jng;
image/x-ms-bmp bmp;
image/svg+xml svg svgz;
image/webp webp;
application/font-woff woff;
application/java-archive jar war ear;
application/json json;
application/mac-binhex40 hqx;
application/msword doc;
application/pdf pdf;
application/postscript ps eps ai;
application/rtf rtf;
application/vnd.apple.mpegurl m3u8;
application/vnd.ms-excel xls;
application/vnd.ms-fontobject eot;
application/vnd.ms-powerpoint ppt;
application/vnd.wap.wmlc wmlc;
application/vnd.google-earth.kml+xml kml;
application/vnd.google-earth.kmz kmz;
application/x-7z-compressed 7z;
application/x-cocoa cco;
application/x-java-archive-diff jardiff;
application/x-java-jnlp-file jnlp;
application/x-makeself run;
application/x-perl pl pm;
application/x-pilot prc pdb;
application/x-rar-compressed rar;
application/x-redhat-package-manager rpm;
application/x-sea sea;
application/x-shockwave-flash swf;
application/x-stuffit sit;
application/x-tcl tcl tk;
application/x-x509-ca-cert der pem crt;
application/x-xpinstall xpi;
application/xhtml+xml xhtml;
application/xspf+xml xspf;
application/zip zip;
application/octet-stream bin exe dll;
application/octet-stream deb;
application/octet-stream dmg;
application/octet-stream iso img;
application/octet-stream msi msp msm;
application/vnd.openxmlformats-officedocument.wordprocessingml.document docx;
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet xlsx;
application/vnd.openxmlformats-officedocument.presentationml.presentation pptx;
audio/midi mid midi kar;
audio/mpeg mp3;
audio/ogg ogg;
audio/x-m4a m4a;
audio/x-realaudio ra;
video/3gpp 3gpp 3gp;
video/mp2t ts;
video/mp4 mp4;
video/mpeg mpeg mpg;
video/quicktime mov;
video/webm webm;
video/x-flv flv;
video/x-m4v m4v;
video/x-mng mng;
video/x-ms-asf asx asf;
video/x-ms-wmv wmv;
video/x-msvideo avi;
}
1五、nginx expire缓存功能
在网站开发和运营中,对于图片,CSS,JS等元素更改机会较少,特别是图片,这时能够将图片设置在浏览器本地缓存365天或者更长,CSS,JS,hmtl等代码缓存10天,这样用户第一次打开页面后,会在本地的浏览器缓存相应的上述内容,这样缓存能够提升下次用户打开相似页面的加速度,并节省服务器端大量的带宽。此功能同Apache的expire,这里经过location的功能,将须要缓存的扩展名列出来,而后指定缓存时间。
一、根据文件扩展名进行判断,添加expire功能范例
企业网站缓存日期案例:
一、51cto 1周
二、sina 15天
三、京东 25年
四、淘宝 10年
通常不但愿被缓存的内容:
1)广告图片
2)网站流量统计工具
3)更新频繁的文件(google的logo)
配置示例:
location ~.*\.(gif|jpg|jpeg|png|bpm|swf)$
{
expires 365d;
}
location ~.*\.(js|css)?$
{
expires 30d;
}
location标签要配到server标签里
location ~^/(images|javascript|js|css|flash|media|static)/
{
expire 360d;
}
Nginx防蜘蛛爬虫处理
假定一个场景:某个网站它可能不但愿被网络爬虫抓取,例如测试环境不但愿被抓取,以避免对用户形成误导,那么须要在该网站中申明,本站不但愿被抓取。有以下方法:
方法一:修改nginx.conf,禁止网络爬虫的ua,返回403。
server {
listen 80;
server_name 127.0.0.1;
#添加以下内容便可防止爬虫
if ($http_user_agent ~* "qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot")
{
return 403;
}
方法2:网站更目录下增长Robots.txt,放在站点根目录下。
在http://tool.chinaz.com/robots/站点能够针对如今的搜索引擎按照想要的规则生成robots.txt文件。
知识扩展:
robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。robots.txt文件告诉蜘蛛程序在服务器上什么文件是能够被查看的。
当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,若是存在,搜索机器人就会按照该文件中的内容来肯定访问的范围;若是该文件不存在,全部的搜索蜘蛛将可以访问网站上全部没有被口令保护的页面。百度官方建议,仅当您的网站包含不但愿被搜索引擎收录的内容时,才须要使用robots.txt文件。若是您但愿搜索引擎收录网站上全部内容,请勿创建robots.txt文件。
Robots协议是国际互联网界通行的道德规范,基于如下原则创建:
一、搜索技术应服务于人类,同时尊重信息提供者的意愿,并维护其隐私权;
二、网站有义务保护其使用者的我的信息和隐私不被侵犯。
固然,若是搜索引擎不遵照约定的Robots协议,那么经过在网站下增长robots.txt也是不起做用的。(在正式环境中,能够适当容许搜索引擎抓取收录)
爬虫文件robots.txt
1六、nginx日志相关优化与安全
nginx没有相似Apache的cronolog日志分割处理的功能,可是,能够经过nginxNginx的信号控制功能或者reload重载,而后利用脚原本实现日志的自动切割。
一、配置日志切割脚本:
[root@masterserver conf]# cd
[root@masterserver]# mkdir -p /server/scripts/
[root@masterserver]# cd /server/scripts/
[root@masterserver scripts]# cat cut_nginx_log.sh
cd /application/nginx/logs && \
/bin/mv www_access.log www_access_$(date +%F -d -1day).log
/application/nginx/sbin/nginx -s reload
[root@masterserver scripts]#
提示:实际上脚本的功能很简单,就是改名日志,而后从新加载nginx,从新生成文件记录日志
二、将这段脚本保存后加入到Linux的crontab守护进程,让此脚本在天天凌晨0点执行,就能够实现日志的天天分割功能了,操做结果以下:
[root@masterserverscripts]# crontab -l |tail -2
#cut nginx log on 00:00 everynight
00 00 * * * /bin/sh /server/scripts/cut_nginx_log.sh >/dev/null 2>&1
[root@masterserver scripts]#
[root@masterserver logs]# ll
total 40
-rw-r--r-- 1 root root 1119 Mar 14 11:59 access.log
-rw-r--r-- 1 root root 1000 Mar 14 11:59 error.log
-rw-r--r-- 1 root root 6 Mar 14 11:57 nginx.pid
-rw-r--r-- 1 root root 1119 Mar 14 12:58 www_access_2016-03-07.log
-rw-r--r-- 1 root root 1119 Mar 14 12:58 www_access_2016-03-08.log
-rw-r--r-- 1 root root 1119 Mar 14 12:58 www_access_2016-03-09.log
-rw-r--r-- 1 root root 1119 Mar 14 12:58 www_access_2016-03-10.log
-rw-r--r-- 1 root root 1119 Mar 14 12:58 www_access_2016-03-11.log
-rw-r--r-- 1 root root 1119 Mar 14 12:58 www_access_2016-03-12.log
-rw-r--r-- 1 root root 1119 Mar 14 12:58 www_access_2016-03-13.log
[root@masterserver logs]#
1七、不记录不须要访问的日志
对于健康检查的某些(图片,js,css)的日志,通常不须要记录,由于在统计PV时时按照页面计算,并且日志写入频繁会消耗IO,下降服务性能。具体语法以下:
location ~ .*\.(js|jpg|JPG|jpeg|JPEG|css|bmp|gif|GIF)${
access_log off;
}
Apache的处理配置方法:
一、须要根据访问日志统计pv时
由于统计pv时,一个页面才算一个PV图片,JS,CSS等只是图片的元素,若是记录了,日志计算PV就不许确了。
配置方法:
<FilesMatch "\.(css|js|gif|jpg|ico|swf)">
SetEnv IMAG 1
</FilesMatch>
日志配置:
CustomeLog "|/usr/local/sbin/cronolog /app/logs/%Y%/%m/access_%Y%m%d.log" combined env=!IMAG
CustomeLog "|/usr/local/sbin/cronolog /app/logs/%Y%/%m/%d/%Haccess_%Y%m%d.log" combined env=!IMAG
1八、访问日志的权限设置
假如日志目录为/app/logs,则受权方法
chown -R root.root /app/logs
chown -R 700 /app/logs
nginx、Apache主进程都是用root用户启动,因此不给权限也能够写入,即700程序能够往里面写入数据
1九、根据扩展名限制程序和文件的访问题(一样适用于nginx)
为了保证Apache的网站不遭受木马入侵上传及修改文件。
安全的权限:
一、全部站点目录的用户和组都应该为root,
二、全部目录默认权限是755;
三、全部文件默认权限为644;
注意:网站服务的用户不能用root,
以上权限的设置能够作到防止黑客上传木马,以及修改站点文件,可是,合理的用户上传内容也被拒之门外了,那么如何解决可让合法的用户上传文件又不至于被黑客利用攻击呢?
这就是对业务进行分离,在比较好的网站业务架构中,应该把资源文件,包括用户上传的图片,附件等的服务和程序
大多数公司的不安全的受权以下:
1)chmod -R 777 /sitedir(最不安全)
2) chmod -R apache.apache /sitedir(最不安全)
若是大多数公司受权通常的受权,会给网站带来最大的安全隐患。
20、nginx站点目录及文件URL访问控制
nginx下禁止访问资源目录下的php程序文件,配置方法以下:
范例1:nginx配置限制指定目录下的php程序被解析
location ~ ^/images/.*\.(php|php5)$
{
|deny all;
}
location ~ ^/static/.*\.(php|php5)$
{
deny all;
}
location ~* ^/data/(attachment|avatar)/.*\.(php|php5)$
{
deny all;
}
这些目录的限制必须写在如下配置的前面:
location ~ .*\.(php|php5)?$
{
fastcgi_pass 127.0.0.1:9000
fastcgi_index index.php
include fcgi.conf
}
范例2:nginx下配置禁止访问*.txt文件
location ~* \.(txt|doc)${
if (-f $request_filename){
root /data/www/www;
#rewrite ...能够重定向到某个URL
break
}
}
location ~*\.(txt|doc){
root /data/www/www;
deny all;
}
2一、禁止访问指定目录下的全部的文件和目录
范例1:配置禁止访问指定的单个或多个目录
单个目录:
location ~ ^/(static)/{
deny all;
}
location ~ ^/static {
deny all;
}
多个目录:
location ~ ^ /(static|js){
deny all;
}
2二、限制来源IP访问
使用ngx_http_acces_module限制ip访问
范例1:禁止某目录让外界访问,但容许某IP访问该目录,且支持PHP解析
location ~ ^ /oldboy/{
allow 202.111.12.121;
deny all;
}
location ~ .*\.(php|php5)?${
}
范例2限制及指定IP或者ip段访问
location / {
deny 192.168.1.1;
allow 192.168.1.0/24;
allow 10.1.1.0/16;
deny all;
}
参考:http://nginx.org/en/docs/http/ngx_http_access_module.html
2三、禁止资源目录解析PHP程序
方法1:提示下载不解析(针对APACHE的设置)
<Directory ~ "/application/www/etiantian/bbs/attachments">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
php_flag engine off #注意这行
</Directory>