最后的效果就类似(不同浏览器的界面有所不同):
如果认证失败,就会报HTTP错误:401 Authorization Required。要实现这样的功能,就需要更改服务器的配置,并设定好用于登录的用户名和密码。
首先我们需要更改网站的Nginx的server配置,Ubuntu服务器的话这个配置文件通常位于/etc/nginx/sites-enabled/,比如我这里就使用默认的配置文件/etc/nginx/sites-enabled/default来做一个例子:
server {
server_name www.fancycedar.info
root /www/fancycedar
# ...
location / {
# 添加下面两行
auth_basic "Restricted";
auth_basic_user_file htpasswd;
# ...
}
# ...
}
接下来需要创建htpasswd文件,这里有一些细节需要注意:
htpasswd的路径
和nginx.conf在同一级目录即可。Ubuntu服务器的话一般就在/etc/nginx/下面。
htpasswd的内容
每一行为一个用户,格式为username:password。但是要注意,这里的password不是明文,而是将password进行crypt(3)加密后的字符串。
你可以使用一段PHP代码来生成htpasswd中的password:
// 密码明文
$password = 'some password';
// 对密码进行加密
$password = crypt($password, base64_encode($password));
// 获得加密后的密码
echo $password;
然后将字符串写入htpasswd文件中:
username1:xucqMk13TfooE
username2:YXTfb3xWKOMBM
...
htpasswd的权限
需要更改htpasswd文件的权限,执行如下命令:
sudo chown root:www-data htpasswd
sudo chmod 640 htpasswd
Are You Ready?
当上面的准备工作都做好之后,我们就可以重新载入或者重启Nginx服务器了:
sudo /etc/init.d/nginx reload
# or
sudo /etc/init.d/nginx restart
完工。
P.S. 不要忘记你设定的密码是啥了……
原文链接:http://www.fancycedar.info/2013/06/apache-nginx-htpasswd/
Error Summary:
HTTP Error 503.2 - Service Unavailable
The serverRuntime@appConcurrentRequestLimit setting is being exceeded.
Detailed Error Information:
Module IIS Web Core
Notification BeginRequest
Handler StaticFile
Error Code 0x00000000
由于之前使用的是默认配置,服务器最多只能处理5000个同时请求,今天下午由于某种情况造成同时请求超过5000,从而出现了上面的错误。
为了避免这样的错误,我们根据相关文档调整了设置,让服务器从设置上支持10万个并发请求。
具体设置如下:
1. 调整IIS 7应用程序池队列长度
由原来的默认1000改为65535。
IIS Manager > ApplicationPools > Advanced Settings
Queue Length : 65535
2. 调整IIS 7的appConcurrentRequestLimit设置
由原来的默认5000改为100000。
c:\windows\system32\inetsrv\appcmd.exe set config /section:serverRuntime /appConcurrentRequestLimit:100000
在%systemroot%\System32\inetsrv\config\applicationHost.config中可以查看到该设置:
<serverRuntime appConcurrentRequestLimit="100000" />
3. 调整machine.config中的processModel>requestQueueLimit的设置
由原来的默认5000改为100000。
<configuration>
<system.web>
<processModel enable="true" requestQueueLimit="100000"/>
参考文章:http://technet.microsoft.com/en-us/library/dd425294(office.13).aspx
4. 修改注册表,调整IIS 7支持的同时TCPIP连接数
由原来的默认5000改为100000。
reg add HKLM\System\CurrentControlSet\Services\HTTP\Parameters /v MaxConnections /t REG_DWORD /d 100000
完成上述4个设置,就可以支持10万个并发请求,博客园博客服务器已经启用上述设置。
参考文章:
IIS 7.0 503 errors with generic handler (.ashx) implementing IHttpAsyncHandler
Tuning Windows Server 2008 for PHP
1.安装:yum -y install rsync
2.vim /etc/xinetd.d/rsync
service rsync
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = –daemon
log_on_failure += USERID
}
3.vim /etc/rsyncd.conf(这个文件是手动创建,默认没有)
uid = nobody # 备份以什么身份进行,用户ID
gid = nobody # 备份以什么身份进行,组ID
#注意这个用户ID和组ID,如果要方便的话,可以设置成root,这样rsync几乎就可
#以读取任何文件和目录了,但是也带来安全隐患。建议设置成只能读取你要备份的目录和文
件即可。
use chroot = no
max connections = 0 #最大连接数,0代表没有限制
#port = 873 #默认端口873
pid file = /var/log/rsync/rsyncd.pid #运行进程的ID写到哪里
lock file = /var/log/rsync/rsync.lock
log file = /var/log/rsync/rsyncd.log #日志记录文件
motd file = /var/log/rsync/rsyncd.motd #欢迎消息
strict modes =yes #是否检查口令文件的权限
[www] # 指定认证的备份模块名
uid = www1
gid = www1
path = /www/ # 需要备份的目录
comment = BACKUP attachment # 注释
ignore errors # 忽略一些无关的IO错误
read only = false # 设置为非只读,即可以传至服务器的相应目录。
list = false # 不允许列文件
#exclude = test/ test.php #设置不同步的目录或文件用空格隔开
hosts allow = all #允许连接服务器的主机IP地址,如果多个ip则用空格隔开
hosts deny = 172.25.0.0/24 #禁止连接服务器的主机IP地址,也可为*,表示所有。
auth users = backup # 认证的用户名,如果没有这行,则表明是匿名
secrets file = /etc/rsyncd.passwd # 认证文件名,用来存放密码
[www1]
path = /www1/
ignore errors
read only = true
list = false
hosts allow = 202.99.11.121
hosts deny = 0.0.0.0/32
auth users = backup
secrets file = /etc/rsyncd.passwd
4./etc/rsyncd.passwd是保存用户帐号信息的文件
格式:backup:password,权限必须是600
5.服务重启:/usr/bin/rsync –daemon –config=/etc/rsyncd.conf
6.客户端同步:
rsync -vzrtopg –delete –progress backup@192.168.18.200::www1 /backup/www1 –password-file=/etc/rsyncd.password
7.计划任务
vim /opt/rsyncd.sh
rsync -vzrtopg –delete –progress backup@192.168.18.200::www1 /backup/www1 –password-file=/etc/rsyncd.password
chmod u+x /opt/rsyncd.sh
crontab -e
0 5 * * * sh /opt/rsyncd.sh#每5小时同步一次
以下是补充:
安装系统:redhat linux as 4 2.6.9
rsync是类unix系统下的数据镜像备份工具,从软件的命名上就可以看出来了--remote sync。它的特性如下:
可以镜像保存整个目录树和文件系统。
可以很容易做到保持原来文件的权限、时间、软硬链接等等。
无须特殊权限即可安装。
优化的流程,文件传输效率高。
可以使用rcp、ssh等方式来传输文件,当然也可以通过直接的socket连接。
支持匿名传输,以方便进行网站镜象。
step
1.从原始网站下载:[url]http://rsync.samba.org/ftp/rsync/[/url]
2.[root@localhost bin]#./configure
[root@localhost bin]#make
[root@localhost bin]#make install
说明一点,客户机和服务器都要安装rsync。客户机以客户端方式运行rsync,服务器端以服务器方式运行rsync,它监听873端口。
3.运行rsync
/usr/local/bin/rsync --daemon
验证启动是否成功:
netstat -na|grep 873
4.配置rsync
简单配置:编辑/etc/rsyncd.conf文件如下:
#全局配置部分
secrets file = /etc/rsyncd.secrets 认证用户名和密码文件的名称和位置
motd file = /etc/rsyncd.motd 欢迎信息文件名称和存放位置(此文件没有,可以自行添加)
read only = yes
list = yes
uid = root
gid = root
#hosts allow = 10.4.5.213
#hosts deny = 10.4.5.0/24
use chroot = no
max connections = 5
log file = /var/log/rsyncd.log
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
#模块配置部分
[web]
comment = web 's directory
path = /home/test/software
auth users = rsync
#secrets file = /etc/rsyncd.secrets
5.生成验证证文件
echo "rsync:rsync_password" >> /etc/rsyncd.secrets
chmod 600 /etc/rsyncd.secrets
6.在客户端服务器同步服务器上的文件
rsync -vzrtopg --delete --progress rsync@10.4.5.161::web /china/
或加上--password-file=/etc/rsyncd.secrets选项
上面的命令把10.4.5.161服务器上的web模块中的目录的文件传送到本机/china目录中,并删除本机/china目录中在161服务器web模块指定目录中没有的文件。以使两台计算机的目录文件同步。