官方文档中提供的方法:
If you do not want to process requests with undefined "Host" header lines, you may define a default server that just drops the requests:
server {
listen 80 default_server;
server_name _;
return 444;
}
说白了就是只要是访客用ip访问就直接重置444错误。但是这样好像又不太友好,如果能直接给跳转到该web server的网址就好了。配置如下:
server {
listen 80 default_server;
server_name _;
rewrite ^ http://www.domain.com$request_uri?;
}
这样还是有一点问题,某些特别的地址,我需要用ip访问,其他的都禁止,如何配置呢?比如说我想让监控宝直接用ip访问我的机器的nginx状态信息,其他的用ip访问的所有请求都跳转到域名上。
server {
listen 80 default_server;
server_name _;
location /xxxxx{
stub_status on;
access_log off;
}
location /{
rewrite ^ http://www.domain.com$request_uri?;
}
}
这样就实现了我们想要的功能了。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.UnauthorizedAccessException: 对路径“……”的访问被拒绝。
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------
对路径“…………”的访问被拒绝。
ASP.NET 未被授权访问所请求的资源。请考虑授予 ASP.NET 请求标识访问此资源的权限。ASP.NET 有一个在应用程序没有模拟时使用的基进程标识(通常,在 IIS 5 上为 {MACHINE}\ASPNET,在 IIS 6 上为网络服务)。如果应用程序正在通过 <identity impersonate="true"/> 模拟,则标识将为匿名用户(通常为 IUSR_MACHINENAME)或经过身份验证的请求用户。
若要授予 ASP.NET 对文件的写访问权,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”添加适当的用户或组。突出显示 ASP.NET 帐户,选中所需访问权限对应的框。
搞得我一头雾水!!!
按照提示中说——单击“添加”添加适当的用户或组。
其中的“适当”实为不好理解,看IIS中匿名用户为:IUSR_HOSTEL
可是在文件夹安全中添加了 IUSR_HOSTEL的相关权限,却丝毫无用
上网也查了些方法,却都没管用。
后经我多次尝试终于找到解决方法
找到站点根目录|右键|安全|点击“添加”|点击“高级”|点击“立即查找”
选中“Authenticated Users"|确定|确定
在“修改”后面允许列的复选框上打个勾|确定
现在再试试,运行asp。net程序好了吧。
这和小问题虽然不大,但浪费了我不少时间,所以找到解决方法后不敢独享,希望能对大家有所帮助。
------解决方法--------------------------------------------------------
没有权限,设置下权限即可
------解决方法--------------------------------------------------------
Html的权限设为 ASPNET(iis5)或network service(iis6)可写入
------解决方法--------------------------------------------------------
hen mingxian le ! quanxian buzu !
------解决方法--------------------------------------------------------
虚拟主机不可能给network service这个帐户对c盘写权限的
------解决方法--------------------------------------------------------
权限问题,设置一下,文件夹右键——> 权限——> 加Everyone和Internet来宾帐户设为完全控制
------解决方法--------------------------------------------------------
改的是你新建的文件夹的父目录。你可以在iis上加权限。或是只给那个父目录上加权限。.
如果不行可以参考下面的方法:
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.UnauthorizedAccessException: 拒绝访问。
未授权此 ASP.NET 进程访问所请求的资源。出于安全原因,默认的 ASP.NET 进程标识为“{machinename}ASPNET”,它只具有有限的特权。请考虑授予该 ASP.NET 进程标识访问此资源的权限。
若要授予 ASP.NET 对文件的写访问权,请在资源管理器中右击该文件,选择“属性”,然后选择“安全”选项卡。单击“添加”以添加“{machinename}ASPNET”用户。突出显示此 ASP.NET 帐户,在“允许”列中选中“写”框。
1.运行里输入"dcomcnfg"设置excel Application com组件的运行权限.
2.选择要设置的组件,属性.
3.在安全选项卡里全部自定义后加入aspnet.问题解决,百试不爽!
这个办法也又不行的时候:
把Dcoument And Setting 文件夹中 User1 用户的文件拷贝到当前用户来(为了复制原用户环境),其他功能全部可以,就是当程序中word进程时,则会报错,说权限不对,配置过权限后还是会报错,后来删掉Dcoument And Setting 文件夹中当前用户的文件夹,一切恢复正常。
搞LINUX的朋友都知道,bind是linux下的DNS服务软件,但很多人不清楚,它也可以运行在windows系统中,windows系统自带的dns,功能弱,是不能作智能DNS解析的,在windows 2008 R2版也没有解决这个问题,有些公司技术力量薄弱一些,一直在用windows系统,所以本文从windows出发,安装bind,利用它的view功能,做智能DNS,解决双线机房南北电信联通访问问题。
一、环境:
系统:Windows 2003 Enterprise Edition sp2
软件:Bind9.9.0( for windows)
设计解析的域名及IP地址:
www.qq.com 电信IP:119.145.254.1
www.qq.com 联通IP:112.90.180.1
二、下载并安装软件
2.1下载
bind官网地址:http://www.bind.com/
bind下载地址:ftp://ftp.isc.org/isc/bind9/9.9.0/BIND9.9.0.zip
2.2安装
将下载的BIND9.9.0.ZIP解压,进入到解压后的文件夹,运行 BINDInstall.exe,在弹出的安装窗口中输入一个密码,一直默认安装就行了,不需要更改什么设置。默认安装到 windows\system32\dns目录下。
三,DNS服务器配置
3.1目录赋权
我们在规划windows系统时,都会把C盘格式化为NTFS,根据第二步安装步骤,bind安装程序新建了一个named帐号,这个帐号是控制bind相关进程与配置文件的,它不隶属于任何部门,为安全性考虑,大家也不要把它加放到administrators组。我们刚把bind安装在默认的c:\windows\system32\dns目录中,所以我们必须给这个目录赋权给named帐号读写权限。
3.2 产生rhdc.key文件
打开DOS窗口,进dns目录,用rndc-config.exe程序生产rndc.key。
rndc-confgen -a (运行完成后会在etc目录下生成rndc.key)
rndc-confgen > ..etcrndc.conf
3.3 新建named.conf主配置文件
Linux系统安装好bind,会有一个named.conf模块,而windows系统下,并没有这个文件,所以不熟悉bind的朋友,建议参考linux下的格式进行编写。
进入etc目录,用记事本(notepad) 建 named.conf 内容如下:
acl "trust-lan" { 127.0.0.1/8; 192.168.0.0/16; };
#全局参数设置,对整个bind有效
options {
directory "C:\WINDOWS\system32\dns\etc";
#recursion yes;
version "0.0.0"; #屏蔽版本
allow-transfer { “trust-lan”; }; #允许trust-lan里的IP从主DNS上进行区域传输
allow-notify { “trust-lan”; }; #从服务器接收主服务器的更新通知
allow-query { “trust-lan”; }; #允许普通查询
allow-recursion{ “trust-lan” }; #打开BIND递归查询功能
auth-nxdomain no; #默认值为0,若为yes,则AA位将一直设置为NXDOMAIN响应
forwarders { #把DNS请求转发至上一级DNS商
202.96.134.133;
202.103.96.112;
};
};
#这一段KEY内容来自rndc.conf,加上这段,好用rndc控制dns进程
include "C:\WINDOWS\system32\dns\etc\rndc.key";
controls {
inet 127.0.0.1 port 953
allow { 127.0.0.1; } keys { "rndc-key"; };
};
logging {
channel warning #下面内容会介绍新建dns_warnings.txt与dns_logs.txt
{ file "C:\WINDOWS\system32\dns\log\dns_warnings.txt" versions 3 size 1240k;
severity warning;
print-category yes;
print-severity yes;
print-time yes;
};
channel general_dns
{ file "C:\WINDOWS\system32\dns\log\dns_logs.txt" versions 3 size 1240k;
severity info;
print-category yes;
print-severity yes;
print-time yes;
};
category default { warning; };
category queries { general_dns; };
};
include "cnc.conf"; #将网通的IP地址范围数据,包含进来
view "view_cnc" { #判断如果是网通的地址范围,则会执行此处(读取cnc.def文件)
match-clients { CNC; };
zone "." {
type hint;
file "named.root";
};
zone "0.0.127.IN-ADDR.ARPA" {
type master;
file "localhost.rev";
};
include "C:\WINDOWS\system32\dns\etc\master\cnc.def"; #自定义域名,内容在cnc.def
};
view "view_any" { # 判断是非网通的ip地址范围,则会执行此处(读取telecom.def文件)
match-clients { any; };
zone "." {
type hint;
file "named.root";
};
zone "0.0.127.IN-ADDR.ARPA" {
type master;
file "localhost.rev";
};
include "C:\WINDOWS\system32\dns\etc\master\telecom.def";
};
3.4建立联通IP地址ACL策略文件
在WINDOWS\system32\dns\etc\建立cnc.conf文件
cnc.conf内容如下:
# 2012-03-19 11:50 by liuguohua.com
#
acl "CNC" {
192.168.134.0/24;
192.168.145.0/24;
};
3.5自定义域名文件
在C:\WINDOWS\system32\dns\etc下新建master文件夹
在C:\WINDOWS\system32\dns\etc\master下新建四个文件cnc.def,telecom.def,
cnc_qq.com.txt,tel_qq.com.txt。
cnc.def内容
zone "qq.com" {
type master;
file "C:\WINDOWS\system32\dns\etc\master\cnc_qq.com.txt";
};
telecom.def内容
zone "qq.com" {
type master;
file "C:\WINDOWS\system32\dns\etc\master\tel_qq.com.txt";
};
cnc_qq.com.txt内容
$TTL 3600
@ IN SOA ns1.qq.com. root.qq.com.(
2012031620 ;
3600 ;
900 ;
68400 ;
15 );
@ IN NS ns1.qq.com.
ns1 IN A 192.168.145.228
www IN A 112.90.180.1
tel_qq.com.txt内容
$TTL 3600
@ IN SOA ns1.qq.com. root.qq.com.(
2012031602 ;
3600 ;
900 ;
68400 ;
15 );
@ IN NS ns1.qq.com.
ns1 IN A 192.168.145.228
www IN A 119.145.254.1
3.6建立日志文件
在C:\WINDOWS\system32\dns下新建log文件夹
在C:\WINDOWS\system32\dns\log下新建两个文件dns_logs.txt,dns_warnings.txt
3.7 bind整体目录结构:
3.8 启动服务
3.8.1启动bind
到windows的服务管理工具里,找到ISC BIND服务,点右键进行启动,大家可以看到这个服务器是随操作系统启动而自动启动的,启动时用的帐号是named。
3.8.2查看日志
正常启动时,dns_warnings.txt文件大小应该是0,如果大于0,肯定是有报警或错误之类的,打开查看内容即可。
在windows事件查看器里也可以查到有关named信息,正常情况下,在“类型”字段中不应出现红色警告。
3.9测试
3.9.1在windows中用nslookup验证
查询www.qq.com,验证智能dns是否有效,查询www.sohu.com,验证dns有没有转发请求至其它DNS。
3.9.2在linux中用dig验证
查询www.qq.com,验证智能dns是否有效,查询www.sohu.com,验证dns有没有转发请求至其它DNS。
本次测试,从图上看都正常。
4.1把C:\WINDOWS\system32\dns发送一个快捷方式到桌面,以后要新增域名或A记录,直接在桌面找文件就是了。
4.2建立一个reload_bind.bat文件,新增A记录或域名后,双击bat重载bind即可,没必要每次都到管理工具里去重启服务,内容如下:
@echo off
C:\WINDOWS\system32\dns\bin\rndc reload
Pause
本文出自 “系统网络运维” 博客