服务器的其它内容
如果你访问不到一个网站,那可能是如下问题:
1 本地网络故障
你如果确认可以正常访问别的网站,比如百度,新浪,那基本可以排除此故障
2 对方网站故障
ping域名,一般会解析出一个ip,如果ping不通,那可能是对方网站故障
如果网站做了防火墙规则,可能ping不到,那至少试试 telnet 域名 80 会有反应的
如果可能,把ip范围放大一些,确认该网段是否正常
3 域名解析故障
如果ping没有返回ip值,试试dig命令或者nslookup,确认是否返回ip结果
4 域名污染
部分域名被监管了,可能会强制把域名解析到无效的ip地址,比如国外的某些网站
dig可以检查一下,一般会稳定解析为某个ip一段时间,如果经常变化,那肯定是有问题了,比如脸书网
5 被封了80端口或者被重置
那。。 没辙啦
6 ip访问被封锁
那。。 也没辙啦
1 本地网络故障
你如果确认可以正常访问别的网站,比如百度,新浪,那基本可以排除此故障
2 对方网站故障
ping域名,一般会解析出一个ip,如果ping不通,那可能是对方网站故障
如果网站做了防火墙规则,可能ping不到,那至少试试 telnet 域名 80 会有反应的
如果可能,把ip范围放大一些,确认该网段是否正常
3 域名解析故障
如果ping没有返回ip值,试试dig命令或者nslookup,确认是否返回ip结果
4 域名污染
部分域名被监管了,可能会强制把域名解析到无效的ip地址,比如国外的某些网站
dig可以检查一下,一般会稳定解析为某个ip一段时间,如果经常变化,那肯定是有问题了,比如脸书网
5 被封了80端口或者被重置
那。。 没辙啦
6 ip访问被封锁
那。。 也没辙啦
注:以下代码按history整理,仅供参考
第一步:下载awstats
第二步:安装ip库
第三步:下载js文件方便按天浏览
#download js
http://www.internetofficer.com/awstats/day-by-day/
下载后放js目录吧,懂的
第四步:配置网站文件
第五步:配置网站访问吧,比如lighttpd
$HTTP["host"] == "awstats.aslibra.com" {
server.document-root = "/Data/webapps/awstats/wwwroot/"
cgi.assign = ( ".pl" => "/usr/bin/perl")
}
第六步:配置计划任务?
按你日志的切割方式,定期执行处理任务
参考阅读:
1 AWStats Installation, Configuration and Reporting
2 AWStats简介:Apache/Windows IIS的日志分析工具的下载,安装,配置样例和使用
3 AWStats按天分析日志:databasebreak=day
4 AWStats Day by Day
第一步:下载awstats
wget http://prdownloads.sourceforge.net/awstats/awstats-7.0.tar.gz
tar xfz awstats-7.0.tar.gz
mv awstats-7.0 /Data/webapps/awstats
tar xfz awstats-7.0.tar.gz
mv awstats-7.0 /Data/webapps/awstats
第二步:安装ip库
wget http://geolite.maxmind.com/download/geoip/api/c/GeoIP.tar.gz
tar xfz GeoIP.tar.gz
cd /Data/tgz/awstats/GeoIP-1.4.7/
./configure
make && make install
cd ..
wget http://geolite.maxmind.com/download/geoip/api/perl/Geo-IP-1.39.tar.gz
tar xfz Geo-IP-1.39.tar.gz
cd Geo-IP-1.39
perl Makefile.PL
make && make install
cd ..
wget http://search.cpan.org/CPAN/authors/id/G/GM/GMPASSOS/Geo-IPfree-0.2.tar.gz
tar xfz Geo-IPfree-0.2.tar.gz
cd Geo-IPfree-0.2
perl Makefile.PL
make && make install
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gunzip GeoLiteCity.dat.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
gunzip GeoIP.dat.gz
mkdir /Data/webapps/awstats/wwwroot/data/
mv *.dat /Data/webapps/awstats/wwwroot/data/
tar xfz GeoIP.tar.gz
cd /Data/tgz/awstats/GeoIP-1.4.7/
./configure
make && make install
cd ..
wget http://geolite.maxmind.com/download/geoip/api/perl/Geo-IP-1.39.tar.gz
tar xfz Geo-IP-1.39.tar.gz
cd Geo-IP-1.39
perl Makefile.PL
make && make install
cd ..
wget http://search.cpan.org/CPAN/authors/id/G/GM/GMPASSOS/Geo-IPfree-0.2.tar.gz
tar xfz Geo-IPfree-0.2.tar.gz
cd Geo-IPfree-0.2
perl Makefile.PL
make && make install
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gunzip GeoLiteCity.dat.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
gunzip GeoIP.dat.gz
mkdir /Data/webapps/awstats/wwwroot/data/
mv *.dat /Data/webapps/awstats/wwwroot/data/
第三步:下载js文件方便按天浏览
#download js
http://www.internetofficer.com/awstats/day-by-day/
下载后放js目录吧,懂的
第四步:配置网站文件
cd /Data/webapps/awstats/wwwroot/cgi-bin/
mv awstats.model.conf common.conf
### vi common.conf: 启用一些插件
LoadPlugin="decodeutfkeys"
LoadPlugin="geoip GEOIP_STANDARD /Data/webapps/awstats/wwwroot/data/GeoIP.dat"
LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /Data/webapps/awstats/wwwroot/data/GeoLiteCity.dat"
mkdir /Data/webapps/awstats/wwwroot/output
### vi awstats.www.conf 配置网站参数
Include "common.conf"
LogFile="/Data/logs/date/%YYYY-1/%MM-1/%DD-1/%HH-1/www.log"
SiteDomain="www.aslibra.com"
HostAliases="aslibra.com"
DefaultFile="index.html"
DirData="/Data/webapps/awstats/wwwroot/output/"
HTMLHeadSection="<script language=javascript src="/js/day-by-day-head.js"></script>"
HTMLEndSection="<script language=javascript src="/js/day-by-day-end.js"></script>"
mv awstats.model.conf common.conf
### vi common.conf: 启用一些插件
LoadPlugin="decodeutfkeys"
LoadPlugin="geoip GEOIP_STANDARD /Data/webapps/awstats/wwwroot/data/GeoIP.dat"
LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /Data/webapps/awstats/wwwroot/data/GeoLiteCity.dat"
mkdir /Data/webapps/awstats/wwwroot/output
### vi awstats.www.conf 配置网站参数
Include "common.conf"
LogFile="/Data/logs/date/%YYYY-1/%MM-1/%DD-1/%HH-1/www.log"
SiteDomain="www.aslibra.com"
HostAliases="aslibra.com"
DefaultFile="index.html"
DirData="/Data/webapps/awstats/wwwroot/output/"
HTMLHeadSection="<script language=javascript src="/js/day-by-day-head.js"></script>"
HTMLEndSection="<script language=javascript src="/js/day-by-day-end.js"></script>"
第五步:配置网站访问吧,比如lighttpd
$HTTP["host"] == "awstats.aslibra.com" {
server.document-root = "/Data/webapps/awstats/wwwroot/"
cgi.assign = ( ".pl" => "/usr/bin/perl")
}
第六步:配置计划任务?
按你日志的切割方式,定期执行处理任务
/Data/webapps/awstats/wwwroot/cgi-bin/awstats.pl \
-update -databasebreak=day -config=www -lang=cn
-update -databasebreak=day -config=www -lang=cn
参考阅读:
1 AWStats Installation, Configuration and Reporting
2 AWStats简介:Apache/Windows IIS的日志分析工具的下载,安装,配置样例和使用
3 AWStats按天分析日志:databasebreak=day
4 AWStats Day by Day
1 下载文件
wget http://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz
2 解压
tar zxvf ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz
cd ZendOptimizer-3.3.9-linux-glibc23-i386
这里要注意,进入data文件夹后,so文件是对应版本的,看好系统中的php版本再安装,我安装的是对应5.2版本PHP的。
把 ZendOptimizer.so 文件拷贝到某个目录,比如:
/usr/local/Zend/lib
把下列行加入php.ini,不要加入任何空格和tab
zend_optimizer.optimization_level=15
zend_extension=”/usr/local/Zend/lib/ZendOptimizer.so”
3 重启
/path/to/php-fpm restart
=问题集锦=
1 cannot restore segment prot after reloc: Permission denied
这是selinux的问题,如果无大的问题,可以关闭selinux
2 和eAccelerator冲突
wget http://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz
2 解压
tar zxvf ZendOptimizer-3.3.9-linux-glibc23-i386.tar.gz
cd ZendOptimizer-3.3.9-linux-glibc23-i386
这里要注意,进入data文件夹后,so文件是对应版本的,看好系统中的php版本再安装,我安装的是对应5.2版本PHP的。
把 ZendOptimizer.so 文件拷贝到某个目录,比如:
/usr/local/Zend/lib
把下列行加入php.ini,不要加入任何空格和tab
zend_optimizer.optimization_level=15
zend_extension=”/usr/local/Zend/lib/ZendOptimizer.so”
3 重启
/path/to/php-fpm restart
=问题集锦=
1 cannot restore segment prot after reloc: Permission denied
这是selinux的问题,如果无大的问题,可以关闭selinux
引用
关闭SELinux即可解决:
修改/etc/sysconfig/selinux,修改为SELINUX=disabled
执行/usr/sbin/setenforce 0立即关闭,且无需重启系统
如果你不希望关闭SELinux的话,也可以
chcon -t shlib_t ZendOptimizer.so
chcon -t texrel_shlib_t ZendOptimizer.so
修改/etc/sysconfig/selinux,修改为SELINUX=disabled
执行/usr/sbin/setenforce 0立即关闭,且无需重启系统
如果你不希望关闭SELinux的话,也可以
chcon -t shlib_t ZendOptimizer.so
chcon -t texrel_shlib_t ZendOptimizer.so
2 和eAccelerator冲突
sftp要比ftp安全一些,不妨升级一下,简单快捷
下载并编译安装:
配置文件示例 [etc/proftpd.conf]:
下载并编译安装:
cd /Data/tgz
wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.3e.tar.gz
tar xfz proftpd-1.3.3e.tar.gz
cd proftpd-1.3.3e
./configure --prefix=/Data/apps/proftpd \
--enable-shadow \
--enable-openssl \
--enable-autoshadow \
--disable-auth-pam \
--without-pam \
--with-modules=mod_ratio:mod_readme:mod_wrap:mod_sftp \
&& make && make install
wget ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.3e.tar.gz
tar xfz proftpd-1.3.3e.tar.gz
cd proftpd-1.3.3e
./configure --prefix=/Data/apps/proftpd \
--enable-shadow \
--enable-openssl \
--enable-autoshadow \
--disable-auth-pam \
--without-pam \
--with-modules=mod_ratio:mod_readme:mod_wrap:mod_sftp \
&& make && make install
配置文件示例 [etc/proftpd.conf]:
免输入密码登录服务器主要应用在自动脚本上,不需要手工输入密码,自动就通过身份验证。
有两个方式可以实现,其一是用密钥验证,其二是自动输入密码。
第一个比较安全,简单几步就可以了:
1 生成自己到公钥和私钥
2 把公钥加入服务器端用户到authorized_keys
我们先在服务器上开通一个新用户:
在本机生成自己到密钥文件:
密钥文件是一对一的,如果密钥文件改变了,验证会失败的
可以简单的上传到服务器上,但可能会提示文件夹不存在:
如果有多个用户需要自动登录,那还是追加到方式比较合适,比如先上传到用户根目录为id.pub然后追加
自动脚本命令追加的方式:
自动输入密码的方式(未尝试,供参考):
有两个方式可以实现,其一是用密钥验证,其二是自动输入密码。
第一个比较安全,简单几步就可以了:
1 生成自己到公钥和私钥
2 把公钥加入服务器端用户到authorized_keys
我们先在服务器上开通一个新用户:
root@test-server:~# useradd aslibra
root@test-server:~# passwd aslibra
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
root@test-server:~# cat /etc/passwd | grep aslibra
aslibra:x:1003:1003::/home/aslibra:/bin/sh
root@test-server:~# passwd aslibra
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
root@test-server:~# cat /etc/passwd | grep aslibra
aslibra:x:1003:1003::/home/aslibra:/bin/sh
在本机生成自己到密钥文件:
密钥文件是一对一的,如果密钥文件改变了,验证会失败的
lhq@lhq-laptop:~$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/home/lhq/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/lhq/.ssh/id_rsa.
Your public key has been saved in /home/lhq/.ssh/id_rsa.pub.
The key fingerprint is:
b9:f3:00:67:a8:cb:e3:cf:7b:21:2e:9f:00:f3:f6:8c lhq@lhq-laptop
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| |
| . . |
| o S |
| ..+.. |
| .. .+. |
| .ooo.o* |
| .+BO*F.+ |
+-----------------+
Generating public/private rsa key pair.
Enter file in which to save the key (/home/lhq/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/lhq/.ssh/id_rsa.
Your public key has been saved in /home/lhq/.ssh/id_rsa.pub.
The key fingerprint is:
b9:f3:00:67:a8:cb:e3:cf:7b:21:2e:9f:00:f3:f6:8c lhq@lhq-laptop
The key's randomart image is:
+--[ RSA 2048]----+
| |
| |
| |
| . . |
| o S |
| ..+.. |
| .. .+. |
| .ooo.o* |
| .+BO*F.+ |
+-----------------+
可以简单的上传到服务器上,但可能会提示文件夹不存在:
scp .ssh/id_rsa.pub aslibra@test-server.aslibra.com:~/.ssh/authorized_keys
如果有多个用户需要自动登录,那还是追加到方式比较合适,比如先上传到用户根目录为id.pub然后追加
lhq@lhq-laptop:~$ ssh aslibra@test-server.aslibra.com
aslibra@test-server.aslibra.com's password:
Linux test-server.aslibra.com 2.6.18-194.17.4.el5xen #1 SMP Mon Oct 25 16:36:31 EDT 2010 x86_64
.....
aslibra@test-server:~$ ls -a
. .. .ssh id.pub
aslibra@test-server:~$ cat id.pub >> .ssh/authorized_keys
aslibra@test-server:~$ exit
logout
Connection to test-server.aslibra.com closed.
lhq@lhq-laptop:~$ ssh aslibra@test-server.aslibra.com
Linux test-server.aslibra.com 2.6.18-194.17.4.el5xen #1 SMP Mon Oct 25 16:36:31 EDT 2010 x86_64
.....
aslibra@test-server:~$
#上面再次登录已经不提示密码了
aslibra@test-server.aslibra.com's password:
Linux test-server.aslibra.com 2.6.18-194.17.4.el5xen #1 SMP Mon Oct 25 16:36:31 EDT 2010 x86_64
.....
aslibra@test-server:~$ ls -a
. .. .ssh id.pub
aslibra@test-server:~$ cat id.pub >> .ssh/authorized_keys
aslibra@test-server:~$ exit
logout
Connection to test-server.aslibra.com closed.
lhq@lhq-laptop:~$ ssh aslibra@test-server.aslibra.com
Linux test-server.aslibra.com 2.6.18-194.17.4.el5xen #1 SMP Mon Oct 25 16:36:31 EDT 2010 x86_64
.....
aslibra@test-server:~$
#上面再次登录已经不提示密码了
自动脚本命令追加的方式:
cat ~/.ssh/id_rsa.pub | ssh aslibra@test-server.aslibra.com "cat - >> ~/.ssh/authorized_keys"
自动输入密码的方式(未尝试,供参考):
相信有些服务器还是无可奈何的使用windows作为服务器,比如需要运行asp
可是要灵活rewrite和防盗链之类的,IIS可就麻烦了,一个不愿多碰的玩意
既然需要用,那就可以使用一个灵活的web服务在前面,后面放IIS,让它好好的退居二线。
一线位置的可选软件有:Nginx和apache
两者都可以提供足够的灵活性,如果还需要运行php,那不妨安装一些套件,比如:
我习惯用后者,用起来也还挺方便。
相对而言,apache的一些代理功能并非很灵活,用起来就有点复杂了。比如用正则匹配的方式条件性的进行代理,这个需要2.2.5版本以上才支持。nginx还是很不错的一个选择,代理功能非常强大,配置简洁,前端服务器的不二选择,各个大型网站都开始启用nginx,使用量风风火火的往上爬。
可是要灵活rewrite和防盗链之类的,IIS可就麻烦了,一个不愿多碰的玩意
既然需要用,那就可以使用一个灵活的web服务在前面,后面放IIS,让它好好的退居二线。
一线位置的可选软件有:Nginx和apache
两者都可以提供足够的灵活性,如果还需要运行php,那不妨安装一些套件,比如:
引用
XAMPP - XAMPP是一款具有中文说明的功能全面的集成环境,XAMPP并不仅仅针对Windows,而是一个适用于Linux、Windows、Mac OS X 和Solaris 的易于安装的Apache 发行版。软件包中包含Apache 服务器、MySQL、SQLite、PHP、Perl、FileZilla FTP Server、Tomcat等等。默认安装开放了所有功能,安全性有问题,需要进行额外的安全设定。
WampServer - WampServe集成了Apache、MySQL、PHP、phpmyadmin,支持Apache的mod_rewrite,PHP扩展、Apache模块只需要在菜单“开启/关闭”上点点就搞定,省去了修改配置文件的麻烦。
AppServ - 集成了Apache、PHP、MySQL、phpMyAdmin,较为轻量。
WampServer - WampServe集成了Apache、MySQL、PHP、phpmyadmin,支持Apache的mod_rewrite,PHP扩展、Apache模块只需要在菜单“开启/关闭”上点点就搞定,省去了修改配置文件的麻烦。
AppServ - 集成了Apache、PHP、MySQL、phpMyAdmin,较为轻量。
我习惯用后者,用起来也还挺方便。
相对而言,apache的一些代理功能并非很灵活,用起来就有点复杂了。比如用正则匹配的方式条件性的进行代理,这个需要2.2.5版本以上才支持。nginx还是很不错的一个选择,代理功能非常强大,配置简洁,前端服务器的不二选择,各个大型网站都开始启用nginx,使用量风风火火的往上爬。





