网站部署中的问题

来源:互联网 发布:nba2k17麦迪捏脸数据 编辑:程序博客网 时间:2024/05/16 19:55

1. 无法ping 通baidu
做出以下修改:

cat /etc/resolv.conf# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)#   DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN#这个文件不建议手动修改,他是自动生成的options timeout:5 attempts:1 rotate#options timeout:5 attempts:1 rotate single-request-reopen#nameserver 223.5.5.5nameserver 223.6.6.6nameserver 10.143.22.118nameserver 10.143.22.116

如果要修改resolve.conf ,/etc/resolve.conf其实是个软连接,指向
/run/resolvconf/resolv.conf
可以通过修改/etc/resolvconf/resolv.conf.d/base来解决
修改完成后,通过

resolvconf -u

来同步nameserver
修改完成后,nameserver 没有问题,使用nslookup baidu.com ,结果OK,但是仍然无法Ping 通百度。
修改/etc/nsswitch.conf

root@iZ23qigze56Z:~# cat /etc/nsswitch.conf |grep -v ^#passwd:         compatgroup:          compatshadow:         compathosts:          files dnsnetworks:       filesprotocols:      db filesservices:       db filesethers:         db filesrpc:            db filesnetgroup:       nis

找到解析路径为files dns 意思是先本地host ,然后查找dns
查看本地Host 文件,未发现异常
仍然无法ping 通百度。
使用dig 和nslookup 均能正确解析到百度。
我的内心是崩溃的 。。。。
经过查证,使用strace工具来检查在ping 百度的过程中都用了那些配置文件

strace - trace system calls and signals

这里写图片描述

修复后的strace -e open ping www.baidu.comopen("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3open("/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3open("/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3open("/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 3open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3open("/lib/x86_64-linux-gnu/tls/x86_64/libnss_db.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)open("/lib/x86_64-linux-gnu/tls/libnss_db.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)open("/lib/x86_64-linux-gnu/x86_64/libnss_db.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)open("/lib/x86_64-linux-gnu/libnss_db.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)open("/usr/lib/x86_64-linux-gnu/tls/x86_64/libnss_db.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)open("/usr/lib/x86_64-linux-gnu/tls/libnss_db.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)open("/usr/lib/x86_64-linux-gnu/x86_64/libnss_db.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)open("/usr/lib/x86_64-linux-gnu/libnss_db.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)open("/lib/tls/x86_64/libnss_db.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)open("/lib/tls/libnss_db.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)open("/lib/x86_64/libnss_db.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)open("/lib/libnss_db.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)open("/usr/lib/tls/x86_64/libnss_db.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)open("/usr/lib/tls/libnss_db.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)open("/usr/lib/x86_64/libnss_db.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)open("/usr/lib/libnss_db.so.2", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3open("/lib/x86_64-linux-gnu/libnss_files.so.2", O_RDONLY|O_CLOEXEC) = 3open("/etc/protocols", O_RDONLY|O_CLOEXEC) = 3open("/etc/host.conf", O_RDONLY|O_CLOEXEC) = 4open("/etc/resolv.conf", O_RDONLY|O_CLOEXEC) = 4open("/etc/hosts", O_RDONLY|O_CLOEXEC)  = 4open("/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 4open("/lib/x86_64-linux-gnu/libnss_dns.so.2", O_RDONLY|O_CLOEXEC) = 4open("/lib/x86_64-linux-gnu/libresolv.so.2", O_RDONLY|O_CLOEXEC) = 4open("/etc/resolv.conf", O_RDONLY|O_CLOEXEC) = 4open("/etc/gai.conf", O_RDONLY|O_CLOEXEC) = 4PING www.a.shifen.com (220.181.112.244): 56 data bytes64 bytes from 220.181.112.244: icmp_seq=0 ttl=52 time=29.744 ms64 bytes from 220.181.112.244: icmp_seq=1 ttl=52 time=29.791 ms^CProcess 3990 detachedroot@iZ23qigze56Z:~# --- www.a.shifen.com ping statistics ---2 packets transmitted, 2 packets received, 0% packet lossround-trip min/avg/max/stddev = 29.744/29.767/29.791/0.024 ms

和正常的比较

strace -e open ping www.baidu.com open("/etc/ld.so.cache", O_RDONLY)      = 3open("/lib64/libidn.so.11", O_RDONLY)   = 3open("/lib64/libc.so.6", O_RDONLY)      = 3open("/usr/lib/locale/locale-archive", O_RDONLY) = 3open("/etc/resolv.conf", O_RDONLY)      = 4open("/etc/nsswitch.conf", O_RDONLY|O_CLOEXEC) = 4open("/etc/ld.so.cache", O_RDONLY)      = 4open("/lib64/libnss_files.so.2", O_RDONLY) = 4open("/etc/host.conf", O_RDONLY)        = 4open("/etc/hosts", O_RDONLY|O_CLOEXEC)  = 4open("/etc/ld.so.cache", O_RDONLY)      = 4open("/lib64/libnss_dns.so.2", O_RDONLY) = 4open("/lib64/libresolv.so.2", O_RDONLY) = 4PING www.a.shifen.com (61.135.169.121) 56(84) bytes of data.open("/etc/hosts", O_RDONLY|O_CLOEXEC)  = 464 bytes from 61.135.169.121: icmp_seq=1 ttl=53 time=10.9 ms64 bytes from 61.135.169.121: icmp_seq=2 ttl=53 time=10.9 ms64 bytes from 61.135.169.121: icmp_seq=3 ttl=53 time=10.9 ms^CProcess 24320 detached

发现了大量的未找到文件,所有的错误可以归咎于配置文件的错误,所以,根据正确的配置文件一项一项查找,发现错误信息
依次查证,或进行替换,解决问题
这里写图片描述
查证替换过程中要注意文件的权限问题。
2.网络蜘蛛爬取自己网站的信息[网络资源]
禁止网络蜘蛛爬取自己的网站信息:在自己的资源占用率比较高的时候,不太希望网络蜘蛛来爬取自己的信息,在这个情况下,我们可以做一些设定,禁止爬取
方法1.

server { listen 80; server_name 127.0.0.1; #添加如下内容即可防止爬虫if ($http_user_agent ~* "qihoobot|Baiduspider|Googlebot|Googlebot-Mobile|Googlebot-Image|Mediapartners-Google|Adsbot-Google|Feedfetcher-Google|Yahoo! Slurp|Yahoo! Slurp China|YoudaoBot|Sosospider|Sogou spider|Sogou web spider|MSNBot|ia_archiver|Tomato Bot") { return 403; } 

方法2:

网站更目录下增加Robots.txt,放在站点根目录下。在http://tool.chinaz.com/robots/站点可以针对现在的搜索引擎按照想要的规则生成robots.txt文件。知识扩展:       robots.txt是搜索引擎中访问网站的时候要查看的第一个文件。robots.txt文件告诉蜘蛛程序在服务器上什么文件是可以被查看的。当一个搜索蜘蛛访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,搜索机器人就会按照该文件中的内容来确定访问的范围;如果该文件不存在,所有的搜索蜘蛛将能够访问网站上所有没有被口令保护的页面。百度官方建议,仅当您的网站包含不希望被搜索引擎收录的内容时,才需要使用robots.txt文件。如果您希望搜索引擎收录网站上所有内容,请勿建立robots.txt文件。Robots协议是国际互联网界通行的道德规范,基于以下原则建立:1、搜索技术应服务于人类,同时尊重信息提供者的意愿,并维护其隐私权;2、网站有义务保护其使用者的个人信息和隐私不被侵犯。当然,如果搜索引擎不遵守约定的Robots协议,那么通过在网站下增加robots.txt也是不起作用的。(在正式环境中,可以适当允许搜索引擎抓取收录)

3.crontab 定时任务不执行

# .---------------- minute (0 - 59)# |  .------------- hour (0 - 23)# |  |  .---------- day of month (1 - 31)# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat# |  |  |  |  |# *  *  *  *  **/2 表示每几分钟,几小时执行

1、检查crontab 应用是否正常

crontab  -e* * * * * echo hello > /tmp/test

发现正常执行
2、查看是否有命令执行记录

tail -f /var/log/crond

发现没有执行记录
3、手动这行命令能成功,但是定时任务不执行,估计是定时任务有问题。

# crontab -l* * * * * root /scripts/mysqldump.sh > /tmp/out.log 2>&1

查看输出日志,提示/bin/sh: root: command not found
这是由于环境变量引起的。
可以指定shell

SHELL=/bin/shPATH=/sbin:/bin:/usr/sbin:/usr/bin

4.OutOfMemoryError: PermGen space 非堆溢出(永久保存区域溢出)
这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。如果web app用了大量的第三方jar或者应用有太多的class文件而恰好MaxPermSize设置较小,超出了也会导致这块内存的占用过多造成溢出,或者tomcat热部署时侯不会清理前面加载的环境,只会将context更改为新部署的,非堆存的内容就会越来越多。
常用解决办法是设置jvm 参数:在catalina.sh 首行加上
如果内存较大,可以适当放大该值(1G内存)

CATALINA_OPTS="-server -Xms768m -Xmx768m -XX:PermSize=128m -XX:MaxPermSize=256m-XX:NewSize=192m -XX:MaxNewSize=384m"

5.*4071 connect() failed (111: Connection refused) while connecting to upstream
nginx 代理错误,nginx 无法访问到目标,同时伴随着在系统中存在大量的CLOSE WAIT 和TIME WAIT ,需要查看对应代理程序的状态,一般是程序功能缺陷或者是内存分配问题。

原创粉丝点击