nginx模式下隐藏php文件后缀的办法

最近有个需求,请求http://www.duzhi.net/aaa.php要隐藏php后缀,想了下用伪静态很容易实现,测试了下果然可以访问http://www.duzhi.net/aaa自动执行对应的aaa.php页面
规则截图如下:

发表在 其他类别 | 标签为 | 一条评论

IIS屏蔽空user-agent 空ua 来路请求

网站日志中大量空user-agent来路,分析后判断是恶意请求,于是针对iis做了如下伪静态规则:

<rewrite>
<rules>
<rule name=”NoUserAgent” stopProcessing=”true”>
<match url=”.*” />
<conditions>
<add input=”{HTTP_USER_AGENT}” pattern=”^$” />
</conditions>
<action type=”CustomResponse” statusCode=”403″ statusReason=”Forbidden: Access is denied.” statusDescription=”You did not present a User-Agent header which is required for this site” />
</rule>
</rules>
</rewrite>

用谷歌浏览器模拟空ua访问,测试屏蔽起作用了

发表在 服务器相关 | 标签为 | IIS屏蔽空user-agent 空ua 来路请求已关闭评论

Xcopy参数介绍 (虽然复制粘贴很方便,但大量文件拷贝还是命令速度快)

虽然复制粘贴很方便,但大量文件拷贝还是命令速度快,

比如这条命令:xcopy * /e /y  d:\linshi  拷贝所有文件和文件夹到d:\linshi目录下

一、Xcopy参数介绍

命令格式:XCOPY source [destination] 一堆可选的参数

参数介绍

source 指定要复制的文件。

destination 指定新文件的位置和/或名称。

/A 只复制有存档属性集的文件, 但不改变属性。

/M 只复制有存档属性集的文件, 并关闭存档属性。

/D:m-d-y 复制在指定日期或指定日期以后改变的文件。如果没有提供日期,只复制那些源时间比目标时间新的文件。

/EXCLUDE:file1[+file2][+file3]…
指定含有字符串的文件列表。如果有任何字符串与要被复制的文件的绝对路径相符,那个文件将不会得到复制。

例如,指定如 \obj\ 或 .obj 的字符串会排除目录 obj 下面的所有文件或带有 .obj 扩展名的文件。

/P 创建每个目标文件前提示。

/S 复制目录和子目录,除了空的。

/E 复制目录和子目录,包括空的。 与 /S /E 相同。可以用来修改 /T。

/V 验证每个新文件。

/W 提示您在复制前按键。

/C 即使有错误,也继续复制。

/I 如果目标不存在,又在复制一个以上的文件, 则假定目标一定是一个目录。

/Q 复制时不显示文件名。

/F 复制时显示完整的源和目标文件名。

/L 显示要复制的文件。

/G 允许将没有经过加密的文件复制到不支持加密的目标。

/H 也复制隐藏和系统文件。

/R 改写只读文件。

/T 创建目录结构,但不复制文件。不包括空目录或子目录。/T /E 包括空目录和子目录。

/U 只复制已经存在于目标中的文件。

/K 复制属性。一般的 Xcopy 会重设只读属性。

/N 用生成的短名复制。

/O 复制文件所有权和 ACL 信息。

/X 复制文件审核设置(隐含 /O)。

/Y 禁止提示以确认改写一个现存目标文件。

/-Y 导致提示以确认改写一个现存目标文件。

/Z 用重新启动模式复制网络文件。

二、Xcopy命令实例介绍

①本机复制文件或文件夹的实例

Xcopy d:\wwwroot e:\linshi  /s /e /y

命令解释:将D盘的wwwroot文件夹中包含的所有东西,全部复制到E盘的linshi文件夹内;/s /e /y 参数说明:在复制文件的同时也复制空目录或子目录,如果目标路径已经有相同文件了,使用覆盖方式而不进行提示。

②在局域网中的应用实例

Xcopy \\192.168.0.110\abc e:\linshi  /s /e /y

命令解释:将192.168.0.110这台计算机的名称为abc的文件夹内的所有东西,全部复制到本机的e:\linshi文件夹;参数说明:在复制文件的同时也复制空目录或子目录,如果目标路径已经有相同文件了,使用覆盖方式而不进行提示。

发表在 服务器相关 | 标签为 | Xcopy参数介绍 (虽然复制粘贴很方便,但大量文件拷贝还是命令速度快)已关闭评论

Hyper-v虚拟机中RemoteFX 的常见问题

1、什么是RemoteFX?
答复:RemoteFX是微软对RDP进行增强,包括了一系列技术,如RemoteFX vGPU、RemoteFX USB、RemoteFX Media Streaming。 RemoteFX vGPU解决3D显示的问题,RemoteFX USB解决USB重定向的问题,RemoteFX Media Streaming 增强RDP协议播放视频的效果。很多用户把RemoteFX技术等同于RemoteFX vGPU,认为虚拟机中能够添加RemoteFX vGPU就是启用了RemoteFX,实际上是一种不完整的认识。 RemoteFX技术使得RDP在技术架构上与Citrix ICA/HDX基本拉平。虽然在一些细节上,RDPwith RemoteFX 与 Citrix ICA with HDX存在差距,但是总体技术架构上,差别已经不大。

2、RemoteFX vGPU 有什么用? 如何启用?
答复:RemoteFX vGPU 为VM提供支持3D API(DirectX)的虚拟显卡。简单的说,启用了RemoteFX vGPU,VM中就可以玩3D游戏,运行3D软件。 最简单的应用就是 Windows中能够启用 AERO 效果。 启用RemoteFX vGPU后,运行dxdiag,可以观察到 显卡支持DirectX 11。
RemoteFX vGPU的启用需要几个条件:
(1)运行在 Hyper-V Server 2008R2 、Hyper-V Server 2012、Hyper-V Server 2012R2 虚拟化环境上。 如果WIndows直接运行在物理机,或者其他虚拟化系统上无法支持。
(2)Guest VM的Windows操作系统必须为 Windows 7 SP1企业版或者旗舰版。 WIndows XP是无法支持的,Windows 7的其他版本(Home、Professional)也是无法支持的。 Windows 8的版本的支持情况,待楼主确认。
(3)服务器上安装有支持DirectX 11的显卡,并且安装了显卡的驱动。
(4)RemoteFX vGPU特性需要微软 RDS(远程桌面服务) 的许可,所以必须在 Hyper-V Server 中添加远程桌面服务的许可才能使用vGPU。

上述四个条件缺一不可。其中2和4是经常被忽略的要素。如果没有添加许可,则在 Hyper-V 的设置中,服务器GPU的选项为灰色。Windows 7版本不对,添加了vGPU后,Windows内的 vGPU 设备无法启用。

3、RemoteFX Media Streaming有什么用?如何启用?
答复:RemoteFX Media Streaming和RemoteFX vGPU是在 RDP 7.1中支持的,RemoteFX Media Streaming顾名思义,就是采用流的方式处理视频播放。RDP7.1之前,RDP协议在屏幕播放视频时,只能一帧一帧的截图,发送给RDP客户端。所以播放视频时会很卡。 Media Streaming技术就是采用视频编解码技术(H.264)对屏幕的视频进行视频压缩,然后发送到客户端,客户端进行视频解码后播放。这样带宽的消耗大大降低,视频质量也有较大的提升。但是呢,在RDP7.1中,该技术是依靠RemoteFX vGPU实现的,也就是说只能在虚拟化的环境中实现。在RDP8.0中,RemoteFX media Streaming技术进行了升级,除了利用vGPU进行视频编码外,还可以用CPU进行视频编码,实现比较好的显示效果。因此,启用RemoteFX Media Streaming只需要 Windows 支持RDP8.0即可。 这样适用的范围一下子放宽了很多。具体的支持情况为:
Windows XP早已被微软停止了支持,无法支持RDP8.0,所以无法支持。Windows 7 Home 版本,该版本不支持RDP,所以也无法支持RDP8.0了。其他的Windows 7版本都可以通过安装RDP8.0补丁的方式,升级到RDP8.0,从而可能支持RemoteFX Media Streaming。Windows 8缺省就配置RDP8.0,所以也是支持的。
那么如何启用 Media Streaming呢? 需要执行 gpedit.msc,找到 有关选项,启用即可。

4、RemoteFX Media Streaming对CPU的影响如何?
答复:如果系统配置有vGPU,那么Media Streaming使用vGPU,那么对于CPU消耗较小。 如果没有配置vGPU,需要使用CPU进行视频的编码,对与CPU消耗较大。在VM环境下,测试的大致情况为:如果配置一个vCPU,Media Streaming将导致CPU占用接近100%,并且视频效果会比较卡。如果配置2个vCPU,视频播放时,占用CPU在70%左右。综合来看,VM环境下,建议为VM至少配置两个vCPU才能支持Media Streaming。 另外如果所有的VM同时播放视频,服务器的CPU占用率将过高。因此使用vCPU处理Media Streaming无法支持大量的VM同时播放视频。 初步的估计是 1路视频基本消耗服务器的1-2个core。 如果需要同时播放视频,有需要较高的VM密度,建议配置GPU卡。

5、为什么启用了RemoteFX vGPU,测试视频播放效果还是不好?
答复:请检查是否安装了服务器的主板驱动、网卡驱动。Hyper-V 安装时缺省会启用微软的驱动。微软的驱动只能保证硬件能够基本工作,不能保证发挥硬件的性能。因此请使用硬件厂家的原厂驱动。 如果驱动都升级了(系统的设备管理中没有带问号的设备了),那就从 终端、网络、服务器 三个环节,采用排除法、替换法来定位问题出在哪里。

6、如何判断启用了RemoteFX?
答复:使用Windows 的MSTSC登录,MSTSC的左上角有一个 信号的标识,就表明启用了RemoteFX。 Windows 7作为客户端时,也需要升级安装RDP8.0的客户端才能支持RemoteFX。 采用瘦客户机时,确认瘦客户机支持RemoteFX,并开启了RemoteFX选项。
7、有什么快捷的方式启用RemoteFX Media Streaming吗?
答复:分享给大家一个 RDP视频加速包。可以完成 RemoteFX Media Streaming的配置。
http://pan.baidu.com/s/1dDGLY8L
8、有哪些支持RemoteFX Media Streaming的瘦客户机?
答复:如果瘦客户机用x86,那么需要使用win7 SP1以上的操作系统,并安装RDP 8 Client的补丁。 如果是ARM的瘦客户机,支持RemoteFX Media Streaming的客户端不多,有杰出J60、J30;ATrust 和 iGEL 也有几款Linux的系统支持RemoteFX。 详细的列表可以参见微软官方的RemoteFX 认证列表。
http://social.technet.microsoft.com/wiki/contents/articles/14534.remotefx-enabled-devices.aspx

发表在 服务器相关 | 标签为 , | 一条评论

Windows server2016 ii10 错误代码 0x8007007e HTTP 错误 500.19 – Internal Server Error

服务器部署WCF服务后,一直出现无法打开的页面。具体错误信息如下:

HTTP 错误 500.19 – Internal Server Error
无法访问请求的页面,因为该页的相关配置数据无效。

登录方法 匿名
登录用户 匿名
最可能的原因:
工作进程无法读取 applicationhost.config 或 web.config 文件。
applicationhost.config 或 web.config 文件中存在格式错误的 XML。
由于 NTFS 权限不正确,服务器无法访问 applicationhost.config 或 web.config 文件。

解决办法:

#Remove/Disable the XPress compression scheme from the configuration using the command below:%windir%/system32/inetsrv/appcmd.exe set config -section:system.webServer/httpCompression /-[name=’xpress’]

原文如下:

Error Message:HTTP Error 500.19 – Internal Server Error The requested page cannot be accessed because the related configuration data for the page is invalid. Module DynamicCompressionModule Notification SendResponse Handler StaticFile Error Code 0x8007007e Requested URL http://localhost:80/ Physical Path C:/inetpub/wwwroot Logon Method Anonymous Logon User AnonymousReason:Error Code 0x8007007e is:ERROR_MOD_NOT_FOUND – The specified module could not be found.This problem occurs because the ApplicationHost.config file or the Web.config file references a module that is invalid or that does not exist. To resolve this problem: In the ApplicationHost.config file or in the Web.config file, locate the module reference or the DLL reference that is invalid, and then fix the reference. To determine which module reference is incorrect, enable Failed Request Tracing, and then reproduce the problem.For above specific error (mentioned in this example), DynamicCompressionModule module is causing the trouble. This is because of the XPress compression scheme module (suscomp.dll) which gets installed with WSUS. Since Compression schemes are defined globally and try to load in every application Pool, it will result in this error when 64bit version of suscomp.dll attempts to load in an application pool which is running in 32bit mode.This module entry looks like:<scheme name=”xpress” doStaticCompression=”false” doDynamicCompression=”true” dll=”C:/Windows/system32/inetsrv/suscomp.dll” staticCompressionLevel=”10″ dynamicCompressionLevel=”0″ />Hence to get rid of this problem:Ø Remove/Disable the XPress compression scheme from the configuration using the command below:%windir%/system32/inetsrv/appcmd.exe set config -section:system.webServer/httpCompression /-[name=’xpress’]ORØ Add an attribute of “precondition= “64bitness” for this module entry so that it loads only in 64bit application poolsRefer this blog for more details on Preconditions in IIS7ORØ Use a 32bit version of suscomp.dll***************************************

 

发表在 服务器相关 | 标签为 | 一条评论

discuz后台版块超过500多个后,添加提示502 Bad Gateway(nginx)错误

先上一张故障图:

discuz论坛无法新增版块了。于是我试删除了几个没用的版块,再次添加版块的时候居然不报错了。然后继续添加,当我添加到528个版块的时候,同样的报错又有了。猜想跟post有关系,也许是超过了某个限制值。调整了跟post相关的一些参数,结果还是这个报错。

排除php-fpm和nginx这两个之后,只剩下php了。最后测试竟然是php限制了。php.ini 文件里的  max_input_vars 默认值为 1000,可我是php5.2,根本没有这个参数。于是直接加进去max_input_vars =5000 ,重启php-fpm后发现问题解决了。

发表在 Linux相关 | 标签为 | discuz后台版块超过500多个后,添加提示502 Bad Gateway(nginx)错误已关闭评论

vsftp限制FTP用户只能访问自己的目录

修改配置文件/etc/vsftpd/vsftpd.conf

chroot_local_user=YES
allow_writeable_chroot=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd/chroot_list

vi /etc/vsftpd/chroot_list
在这个配置文件中添加用户,每个用户一行,则在这个文件里的用户登录ftp后,可以访问上级目录。
而不在这个配置文件中的用户只能访问自己的home目录。

发表在 Linux相关 | 标签为 | 一条评论

CentOS配置Nginx官方的Yum源

1.默认yum源中没有nginx,需要手动创建一个“/etc/yum.repos.d/nginx.repo”的文件,来增加yum源。
[root@duzhi]# vi /etc/yum.repos.d/nginx.repo

然后将下面的内容复制进去:

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=0
enabled=1

保存“/etc/yum.repos.d/nginx.repo”后,就可以用yum命令查询nginx

[root@duzhi]# yum list |grep nginx
nginx.x86_64 1:1.10.1-1.el7.ngx nginx
nginx-debug.x86_64 1:1.8.0-1.el7.ngx nginx
nginx-debuginfo.x86_64 1:1.10.1-1.el7.ngx nginx
nginx-module-geoip.x86_64 1:1.10.1-1.el7.ngx nginx
nginx-module-image-filter.x86_64 1:1.10.1-1.el7.ngx nginx
nginx-module-njs.x86_64 1:1.10.1.0.0.20160414.1c50334fbea6-1.el7.ngx
nginx
nginx-module-perl.x86_64 1:1.10.1-1.el7.ngx nginx
nginx-module-xslt.x86_64 1:1.10.1-1.el7.ngx nginx
nginx-nr-agent.noarch 2.0.0-9.el7.ngx nginx
pcp-pmda-nginx.x86_64 3.10.6-2.el7 base

类似这种结果,就说明nginx的yum源配置好了

然后安装nginx就可以直接执行:

[root@duzhi]# yum -y install nginx

 

CentOS7 环境安装remi源
-Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
vi /etc/yum.repos.d/remi.repo
将其中 [remi] 下的enabled=0改为1,保存退出,配置完成。

2.创建nologin用户:
useradd -s /sbin/nologin www
修改所有者和所属组:
chown -R www:www /home/www/
修改权限
chmod -R 777 /home/www

发表在 Linux相关 | 标签为 , | CentOS配置Nginx官方的Yum源已关闭评论

桌面上的回收站不小心删除了 恢复方法

桌面用右键新建一个文件夹,将其重命名为

回收站.{645ff040-5081-101b-9f08-00aa002f954e}

确定后就可以了,哈哈哈

发表在 其他类别 | 标签为 | 一条评论

64位系统下无法使用Microsoft.Jet.OLEDB.4.0的解决方法

64位操作系统IIS7运行asp程序是报错,看了下conn链接字符串是:Microsoft.Jet.OLEDB.4.0,解决方法如下:

1.下载驱动 ACE2010的驱动,下载安装64位的驱动即可
http://www.microsoft.com/downloads/zh-cn/details.aspx?familyid=c06b8369-60dd-4b64-a44b-84b371ede16d

2.将所有ASP连接ACCESS数据库代码中的Microsoft.Jet.OLEDB.4.0 改成Microsoft.ACE.OLEDB.12.0

发表在 服务器相关 | 一条评论