18,Jan,2012 | (41/0)Nginx高性能优化插件与缓存的安装和配置
1.1下载模块:
memc-nginx-module
下载地址: https://github.com/agentzh/memc-nginx-module/downloads
srcache-nginx-module
下载地址: https://github.com/agentzh/srcache-nginx-module/downloads
ngx_http_upstream_keepalive
下载地址: http://mdounin.ru/hg/ngx_http_upstream_keepalive/
解压在Nginx安装目录的同级目录下。
接着添加google-perftools-module模块,用来优化高并发时的内存管理性能
先安装 libunwind
# wget http://download.savannah.gnu.org/releases/libunwind/libunwind-1.0.1.tar.gz
# CFLAGS=-fPIC ./configure --prefix=/usr
# make CFLAGS=-fPIC
# make CFLAGS=-fPIC install
再安装 google-perftools
memc-nginx-module
下载地址: https://github.com/agentzh/memc-nginx-module/downloads
srcache-nginx-module
下载地址: https://github.com/agentzh/srcache-nginx-module/downloads
ngx_http_upstream_keepalive
下载地址: http://mdounin.ru/hg/ngx_http_upstream_keepalive/
解压在Nginx安装目录的同级目录下。
接着添加google-perftools-module模块,用来优化高并发时的内存管理性能
先安装 libunwind
# wget http://download.savannah.gnu.org/releases/libunwind/libunwind-1.0.1.tar.gz
# CFLAGS=-fPIC ./configure --prefix=/usr
# make CFLAGS=-fPIC
# make CFLAGS=-fPIC install
再安装 google-perftools
18,Jan,2012 | (29/0)Nginx禁止wordress上传目录执行PHP
禁止wordpress目录的上传目录执行PHP
location ~* ^/wp-content/(uploads|cache)/.*\.php$ {
deny all;
}
举一反三.
location ~* ^/wp-content/(uploads|cache)/.*\.php$ {
deny all;
}
举一反三.
18,Jan,2012 | (32/0)web.config配置优化,防止aspxspy的非法权限
通过配置 web.config 可以限制 ASP.NET 代码访问安全性。统一显示错误页面等等,对安全ASP.NET网站的安全性起到一定的作用。
<system.web>
<!-- 关闭调试功能 -->
<compilation debug="false"/>
<authentication mode="Windows" />
<!--
如果在执行请求的过程中出现未处理的错误,
则通过 <customErrors> 节
可以配置相应的处理步骤。具体而言,
开发人员通过该节可配置要显示的 html 错误页,
以代替错误堆栈跟踪。
-->
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
<!--
等级: level="[Full|High|Medium|Low|Minimal]"
Full: 无限制的权限。应用程序可访问任何属于操作系统安全范围的资源。支持所有的特权操作。
High: 不能调用未托管代码、调用服务组件、写入事件日志、访问 Microsoft 消息队列、访问 OLE DB 数据源
Medium: 除上述限制外,还限制访问当前应用程序目录中的文件,不允许访问注册表。
Low: 除上述限制外,应用程序不能与 SQL Server 连接,代码不能调用 CodeAccessPermission.Assert(无断言安全权限)。
Minimal: 仅有执行权限。
防止像aspxspy这类的大马,设置马Medium,基本上就没作用了。
-->
<trust level="Medium" originUrl=""/>
</system.web>
微软官方网站相关文档:http://msdn.microsoft.com/zh-cn/aa302424.aspx#EMAA
<system.web>
<!-- 关闭调试功能 -->
<compilation debug="false"/>
<authentication mode="Windows" />
<!--
如果在执行请求的过程中出现未处理的错误,
则通过 <customErrors> 节
可以配置相应的处理步骤。具体而言,
开发人员通过该节可配置要显示的 html 错误页,
以代替错误堆栈跟踪。
-->
<customErrors mode="RemoteOnly" defaultRedirect="GenericErrorPage.htm">
<error statusCode="403" redirect="NoAccess.htm" />
<error statusCode="404" redirect="FileNotFound.htm" />
</customErrors>
<!--
等级: level="[Full|High|Medium|Low|Minimal]"
Full: 无限制的权限。应用程序可访问任何属于操作系统安全范围的资源。支持所有的特权操作。
High: 不能调用未托管代码、调用服务组件、写入事件日志、访问 Microsoft 消息队列、访问 OLE DB 数据源
Medium: 除上述限制外,还限制访问当前应用程序目录中的文件,不允许访问注册表。
Low: 除上述限制外,应用程序不能与 SQL Server 连接,代码不能调用 CodeAccessPermission.Assert(无断言安全权限)。
Minimal: 仅有执行权限。
防止像aspxspy这类的大马,设置马Medium,基本上就没作用了。
-->
<trust level="Medium" originUrl=""/>
</system.web>
微软官方网站相关文档:http://msdn.microsoft.com/zh-cn/aa302424.aspx#EMAA
18,Jan,2012 | (27/0)Nginx+PHP的虚拟主机目录权限控制
最近检查了apache开启的虚拟主机配置,发现并没有对php文件跨目录访问做任何限制。如果给该虚拟主机开启了FTP权限,那么只要上传一个网页木马,即可任务访问服务器上的任何文件。老规矩,给apache的每个虚拟主机都加上php_admin_value参数,加以限制。同时也在网上找到了nginx下的相应解决办法,下边是转载的文章,原文作者在其博客中也给出了另一种较完美解决方法,就是修改PHP源码,然后重新变异,针对这种方法本人没做测试,不做介绍,
Nginx的使用者最近越来越多,很多大型网站也都从Apache或其他平台迁移到了Nginx。但在我使用Nginx的过程中有个问题一直未得到解决,就是如何限制Nginx+PHP的目录权限。
我们知道,在Apache中可以很容易的对虚拟目录进行权限控制,如:
程序代码 程序代码
Nginx的使用者最近越来越多,很多大型网站也都从Apache或其他平台迁移到了Nginx。但在我使用Nginx的过程中有个问题一直未得到解决,就是如何限制Nginx+PHP的目录权限。
我们知道,在Apache中可以很容易的对虚拟目录进行权限控制,如:
程序代码 程序代码
18,Jan,2012 | (22/0)Nginx+PHP的虚拟主机安全配置
1. 建立两个用户分别用于访问两个不同的站点.
# useradd -M www -s /sbin/nologin
# useradd -M www2 -s /sbin/nologin
2. 建立两个站点的目录
# mkdir -p /web/667
# mkdir -p /web/668
# chown www.www -R /web/667
# chown www2.www2 -R /web/668
# chmod 555 -R /web/667
# chmod 555 -R /web/668
可写目录,给755.在nginx中屏蔽不能执行php
3. php-fpm.conf设置两个应用程序池
[www]
listen = 127.0.0.1:9000
listen.backlog = -1
user = www
group = www
pm = static
pm.max_children = 5
pm.start_servers =20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
request_terminate_timeout = 0s
request_slowlog_timeout = 0s
rlimit_files = 1024
rlimit_core = 0
catch_workers_output = yes
[www2]
listen = 127.0.0.1:9001
listen.backlog = -1
user = www2
group = www2
pm = static
pm.max_children = 5
pm.start_servers =20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
request_terminate_timeout = 0s
request_slowlog_timeout = 0s
rlimit_files = 1024
rlimit_core = 0
catch_workers_output = yes
4. nginx.conf配置站点
server {
listen 80;
server_name 667.com;
location / {
root /web/667/;
index index.php index.html index.htm;
}
location ~ \.php$ {
root /web/667/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
server {
listen 80;
server_name 668.com;
location / {
root /web/668/;
index index.php index.html index.htm;
}
location ~ ^/uploads/ {
}
location ~ \.php$ {
root /web/668/;
fastcgi_pass 127.0.0.1:9001;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
# useradd -M www -s /sbin/nologin
# useradd -M www2 -s /sbin/nologin
2. 建立两个站点的目录
# mkdir -p /web/667
# mkdir -p /web/668
# chown www.www -R /web/667
# chown www2.www2 -R /web/668
# chmod 555 -R /web/667
# chmod 555 -R /web/668
可写目录,给755.在nginx中屏蔽不能执行php
3. php-fpm.conf设置两个应用程序池
[www]
listen = 127.0.0.1:9000
listen.backlog = -1
user = www
group = www
pm = static
pm.max_children = 5
pm.start_servers =20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
request_terminate_timeout = 0s
request_slowlog_timeout = 0s
rlimit_files = 1024
rlimit_core = 0
catch_workers_output = yes
[www2]
listen = 127.0.0.1:9001
listen.backlog = -1
user = www2
group = www2
pm = static
pm.max_children = 5
pm.start_servers =20
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500
request_terminate_timeout = 0s
request_slowlog_timeout = 0s
rlimit_files = 1024
rlimit_core = 0
catch_workers_output = yes
4. nginx.conf配置站点
server {
listen 80;
server_name 667.com;
location / {
root /web/667/;
index index.php index.html index.htm;
}
location ~ \.php$ {
root /web/667/;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
server {
listen 80;
server_name 668.com;
location / {
root /web/668/;
index index.php index.html index.htm;
}
location ~ ^/uploads/ {
}
location ~ \.php$ {
root /web/668/;
fastcgi_pass 127.0.0.1:9001;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
16,Jan,2012 | (31/0)Windows Time 服务无法启动
Windows Time 服务
描述:
维护在网络上的所有客户端和服务器的时间和日期同步。如果此服务被停止,时间和日期的同步将不可用。如果此服务被禁用,任何明确依赖它的服务都将不能启动。
----------------------------------------------------------------------
系统与 Internet 时间同步时需要启动 “Windows Time服务”,默认是关闭的,可以在“控制面板”→“管理工具”→“服务”里找到。
“Windows Time服务”用于和Internet同步系统时间,如果时间无法同步有可能是服务没有启动。
如果启动时提示: “错误1058: 无法启动服务,原因可能是已被禁用与其相关联的设备没有启动。”
原因:
由于“Windows Time服务”失效。
解决办法:
1.“开始”→“运行”,输入 cmd 命令后,按回车键;
2.进入“命令提示符”下,然后键入 C\> w32tm /register
正确的响应为:
W32Time 成功注册。
描述:
维护在网络上的所有客户端和服务器的时间和日期同步。如果此服务被停止,时间和日期的同步将不可用。如果此服务被禁用,任何明确依赖它的服务都将不能启动。
----------------------------------------------------------------------
系统与 Internet 时间同步时需要启动 “Windows Time服务”,默认是关闭的,可以在“控制面板”→“管理工具”→“服务”里找到。
“Windows Time服务”用于和Internet同步系统时间,如果时间无法同步有可能是服务没有启动。
如果启动时提示: “错误1058: 无法启动服务,原因可能是已被禁用与其相关联的设备没有启动。”
原因:
由于“Windows Time服务”失效。
解决办法:
1.“开始”→“运行”,输入 cmd 命令后,按回车键;
2.进入“命令提示符”下,然后键入 C\> w32tm /register
正确的响应为:
W32Time 成功注册。
16,Jan,2012 | (32/0)如何统一局域网中unix服务器的时
在我们常见的应用系统中,都会有多台服务器在同时工作。由于应用的需要,所有服务器要求有尽可能一致的时间,否则可能会引起一些意想不到的后果,以前就曾出现过因为应用服务器时间还在23点50多分,而数据库服务器已跨过24点,导致正在进行的整个批处理日切或数据归档等重要处理失败或根本无法进行的情况,其实应用和数据库服务器时间也只是相差了几分钟而已。为了避免出现这种情况,系统管理员要经常关注服务器的时间,发现时间差距较大时可以手工调整,但由系统管理员手工调整既不准确、并且随着服务器数量的增加也显得越来越不现实,因此有必要让系统自动完成同步多个服务器的时间。
针对我们经常接触到的IBM-AIX、HP-UNIX、LINUX三种系统,一一分析如何实现自动同步时间。
一、IBM-AIX中用ntp实现时间自动同步
在AIX中可以用两种方法来实现局域网中多台服务器的系统时间的统一。一个方法是启动xntpd 守护进程,另一个方法是启动timed进程,为了保证时间的一致性,在同一台服务器上只启动xntpd 或 timed中的一个。在AIX中,这两个进程缺省是不启动,每个AIX系统使用自己的系统时间,这里选择采用xntpd守护进程来实现时间同步。
xntpd 是一个关于网络时间协议的守护进程,它遵循了因特网时间服务器的通用标准。在启动 xntpd 时, xntpd 会读取 /etc/ntp.conf 配置文件来确定网络中系统时钟服务器,以 ntp 服务器的系统时间为标准,来调整本机的系统时间。使用 ntp 时应注意,xntpd 服务器和 xntpd 客户端的时钟不能相差超过1000秒。若有大于1000秒的偏移,在客户端启动 xntpd 守护进程前,用 data 命令或smitty date 命令调整本机的系统时间,使偏移量在1000秒之内,然后启动xntpd。
针对我们经常接触到的IBM-AIX、HP-UNIX、LINUX三种系统,一一分析如何实现自动同步时间。
一、IBM-AIX中用ntp实现时间自动同步
在AIX中可以用两种方法来实现局域网中多台服务器的系统时间的统一。一个方法是启动xntpd 守护进程,另一个方法是启动timed进程,为了保证时间的一致性,在同一台服务器上只启动xntpd 或 timed中的一个。在AIX中,这两个进程缺省是不启动,每个AIX系统使用自己的系统时间,这里选择采用xntpd守护进程来实现时间同步。
xntpd 是一个关于网络时间协议的守护进程,它遵循了因特网时间服务器的通用标准。在启动 xntpd 时, xntpd 会读取 /etc/ntp.conf 配置文件来确定网络中系统时钟服务器,以 ntp 服务器的系统时间为标准,来调整本机的系统时间。使用 ntp 时应注意,xntpd 服务器和 xntpd 客户端的时钟不能相差超过1000秒。若有大于1000秒的偏移,在客户端启动 xntpd 守护进程前,用 data 命令或smitty date 命令调整本机的系统时间,使偏移量在1000秒之内,然后启动xntpd。
16,Jan,2012 | (29/0)Fping—Linux下的轻量级网管工具
Fping介绍
Linux下的fping,debian下直接apt可以安装,具体 应用 就参考man文档了。
UNIX和Windows环境 都有很多 可以用来举办ICMP ping扫描的器材。fping(http://packetstorm.securify.com/ Exploit_Code__Archive/ fping.tar.gz)是UNIX环境 里久经检验 的ping扫描器材之一。早期的ping扫描器材多半必要 等待前一个被探测主机返回某种相应 动静 之后手法连续 探测下一台主机是否存在,但fping却能以轮转行动 并行地发出大宗的ping哀求。这么一来,用fping器材去扫描多个IP所在的速率 要比ping快很多 。fping器材有两种用法:既可以通过标准 输入装备 (stdin)向它供给 一系列IP所在作为输入,也可以让它去读取某个文件。让fping器材去读取一个文件是件很大略 的事变 :创建 一个文本文件并把IP所在按每行一个的技俩写入,如下所示:
192.168.51.1 192.168.51.2 192.168.51.3 … 192.168.51.253 192.168.51.254
然后应用 “-f”参数读入这个文件,如下所示:
1
2
3
4
@gz-10:~$ fping –a –f in.txt
192.168.1.3 is alive
192.168.1.2 is alive
192.168.1.1 is alive
fping器材的“-a”选项表示只在输出陈诉 里列出当前正在运行的体系 。假如 你乐意 ,还可以同时应用 这个器材的“-d”选项去理会主机名。笔者比拟 喜好 应用 fping器材的“-a”选项共同 shell脚本和“-d”选项去扫描那些有着唯一 无二的主机名的体系 。在编写举办ping扫描的脚本时,“-f”和fping器材的其他几个选项也很有效 。fping器材的可用选项的完备 清单可以通过推行 “fping -h”下令 来查察 。
再提醒 几个常用的参数
fping -h Usage: fping [options] [targets...]
-a show targets that are alive
-A show targets by address
-b n amount of ping data to send, in bytes (default 56)
-B f set exponential backoff factor to f
-c n count of pings to send to each target (default 1)
-C n same as -c, report results in verbose format
-e show elapsed time on return packets -
f file read list of targets from a file ( – means stdin) (only if no -g specified)
-g generate target list (only if no -f specified) (specify the start and end IP in the target list, or supply a IP netmask) (ex. fping -g 192.168.1.0 192.168.1.255 or fping -g 192.168.1.0/24)
-i n interval between sending ping packets (in millisec) (default 25)
-l loop sending pings forever
-m ping multiple interfaces on target host
-n show targets by name (-d is equivalent)
-p n interval between ping packets to one target (in millisec) (in looping and counting modes, default 1000)
-q quiet (don’t show per-target/per-ping results)
-Q n same as -q, but show summary every n seconds
-r n number of retries (default 3)
-s print final stats -S addr set source address -t n individual target initial timeout (in millisec) (default 500)
-u show targets that are unreachable
-v show version targets list of targets to check (if no -f specified)
g:可以将某网络和某ip举办ping测试
u:只是列出不可到达 的ip所在
这个常用,具体的看man啦
Linux下的fping,debian下直接apt可以安装,具体 应用 就参考man文档了。
UNIX和Windows环境 都有很多 可以用来举办ICMP ping扫描的器材。fping(http://packetstorm.securify.com/ Exploit_Code__Archive/ fping.tar.gz)是UNIX环境 里久经检验 的ping扫描器材之一。早期的ping扫描器材多半必要 等待前一个被探测主机返回某种相应 动静 之后手法连续 探测下一台主机是否存在,但fping却能以轮转行动 并行地发出大宗的ping哀求。这么一来,用fping器材去扫描多个IP所在的速率 要比ping快很多 。fping器材有两种用法:既可以通过标准 输入装备 (stdin)向它供给 一系列IP所在作为输入,也可以让它去读取某个文件。让fping器材去读取一个文件是件很大略 的事变 :创建 一个文本文件并把IP所在按每行一个的技俩写入,如下所示:
192.168.51.1 192.168.51.2 192.168.51.3 … 192.168.51.253 192.168.51.254
然后应用 “-f”参数读入这个文件,如下所示:
1
2
3
4
@gz-10:~$ fping –a –f in.txt
192.168.1.3 is alive
192.168.1.2 is alive
192.168.1.1 is alive
fping器材的“-a”选项表示只在输出陈诉 里列出当前正在运行的体系 。假如 你乐意 ,还可以同时应用 这个器材的“-d”选项去理会主机名。笔者比拟 喜好 应用 fping器材的“-a”选项共同 shell脚本和“-d”选项去扫描那些有着唯一 无二的主机名的体系 。在编写举办ping扫描的脚本时,“-f”和fping器材的其他几个选项也很有效 。fping器材的可用选项的完备 清单可以通过推行 “fping -h”下令 来查察 。
再提醒 几个常用的参数
fping -h Usage: fping [options] [targets...]
-a show targets that are alive
-A show targets by address
-b n amount of ping data to send, in bytes (default 56)
-B f set exponential backoff factor to f
-c n count of pings to send to each target (default 1)
-C n same as -c, report results in verbose format
-e show elapsed time on return packets -
f file read list of targets from a file ( – means stdin) (only if no -g specified)
-g generate target list (only if no -f specified) (specify the start and end IP in the target list, or supply a IP netmask) (ex. fping -g 192.168.1.0 192.168.1.255 or fping -g 192.168.1.0/24)
-i n interval between sending ping packets (in millisec) (default 25)
-l loop sending pings forever
-m ping multiple interfaces on target host
-n show targets by name (-d is equivalent)
-p n interval between ping packets to one target (in millisec) (in looping and counting modes, default 1000)
-q quiet (don’t show per-target/per-ping results)
-Q n same as -q, but show summary every n seconds
-r n number of retries (default 3)
-s print final stats -S addr set source address -t n individual target initial timeout (in millisec) (default 500)
-u show targets that are unreachable
-v show version targets list of targets to check (if no -f specified)
g:可以将某网络和某ip举办ping测试
u:只是列出不可到达 的ip所在
这个常用,具体的看man啦
13,Jan,2012 | (42/0)RHCE实验室NTP时间服务器配置最终版
以RHCE实验室为准,一个简单的NTP时间服务器标准配置如下:
服务器端:
首先修正下系统时间,并将系统时间写进硬件时间里
date MMDDhhmmYYYY.ss;hwclock -w
vim /etc/ntp.conf
restrict default nomodify notrap noquery
restrict 127.0.0.1
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
server 127.127.1.0
fudge 127.127.1.0 stratum 0
服务器端:
首先修正下系统时间,并将系统时间写进硬件时间里
date MMDDhhmmYYYY.ss;hwclock -w
vim /etc/ntp.conf
restrict default nomodify notrap noquery
restrict 127.0.0.1
restrict 192.168.1.0 mask 255.255.255.0 nomodify notrap
server 127.127.1.0
fudge 127.127.1.0 stratum 0
13,Jan,2012 | (29/0)搭建NTP时间服务器
上次说到如何调整Linux系统时间。项目中,我们常会遇到分析系统问题的时候需要查看系统日志。此时,若是一个Cluster集群或HA应用的话,会发现时间对于定位问题发生的先后和原因是非常重要的。所以,我们希望能有方法保证两服务器时间一样,最好可以做到是标准时间。这就是搭建NTP服务器意义!
一、原理
NTP是用来使系统和一个精确的时间源保持时间同步的协议。建议大家在自己管理的网络中建立至少一台时间服务器来同步本地时间,这样可以使得在不同的系统上处理和收集日志和管理更加容易,而且不会出错。
官方网站是:http://www.ntp.org/
从上面我们可以获得Linux下的源代码,以及互联网上的公开的NTP服务器,其地址列表如下:
http://ntp.isc.org/bin/view/Servers/NTPPoolServers
http://ntp.isc.org/bin/view/Servers/WebHome
NTP协议是通过Server和Client的方式进行的,通讯的过程是:
1.首先,主机需要启动这个NTP服务
2.Client 会向 NTP Server 发送出调校时间的 message
3.然后 NTP Server 会送出目前的标准时间给 Client
4.Client 接收了来自 Server 的时间后,会据以调整自己的时间,以实现网络校时。
一、原理
NTP是用来使系统和一个精确的时间源保持时间同步的协议。建议大家在自己管理的网络中建立至少一台时间服务器来同步本地时间,这样可以使得在不同的系统上处理和收集日志和管理更加容易,而且不会出错。
官方网站是:http://www.ntp.org/
从上面我们可以获得Linux下的源代码,以及互联网上的公开的NTP服务器,其地址列表如下:
http://ntp.isc.org/bin/view/Servers/NTPPoolServers
http://ntp.isc.org/bin/view/Servers/WebHome
NTP协议是通过Server和Client的方式进行的,通讯的过程是:
1.首先,主机需要启动这个NTP服务
2.Client 会向 NTP Server 发送出调校时间的 message
3.然后 NTP Server 会送出目前的标准时间给 Client
4.Client 接收了来自 Server 的时间后,会据以调整自己的时间,以实现网络校时。
13,Jan,2012 | (29/0)解决python更新后YUM无法使用的问题
更新python后,使用yum等命令会出现
错误
解决办法
#vim /usr/bin/yum
将文本编辑显示的#/usr/bin/python修改为#/usr/bin/python2.4,保存修改即可
-bash: /usr/bin/yum: /usr/bin/python: bad interpreter: No such file or directory
错误
解决办法
#vim /usr/bin/yum
将文本编辑显示的#/usr/bin/python修改为#/usr/bin/python2.4,保存修改即可









