首页 文章 精选 留言 我的

精选列表

搜索[网站优化],共10000篇文章
优秀的个人博客,低调大师

Confluence 6 企业环境或者网站托管的 Java 配置策略

Confluence 需要依赖一些 Java 的库才能够允运行。一些依赖的 Java 库应用了 Java 的语言特性,但是又是被 Java 的安全策略所限制的。 这个通常来说是不会造成任何问题的。默认的安全配置策略通常对运行 Confluence 没有任何影响。但是在一些共享服务器或者企业部署环境下,安全设定可能会导致 Confluence 不能正常的工作。 当你尝试运行 Confluence 的时候,你可能会遇到下面的错误: java.security.AccessControlException:access denied (java.lang.RuntimePermissionaccessDeclaredMembers) atjava.security.AccessControlContext.checkPermission(AccessControlContext.java(CompiledCode)) atjava.security.AccessController.checkPermission(AccessController.java(CompiledCode)) atjava.lang.SecurityManager.checkPermission(SecurityManager.java(CompiledCode)) 运行 Confluence 所需要的权限在下面简单的安全配置文件中。你可能需要将这个信息给你的系统管理员,这样你的系统管理员才可以部署 Confluence 应用。 grant codeBase"file:${catalina.home}/webapps/confluence/-"{ permissionjava.security.AllPermission; }; grant { permissionjava.lang.RuntimePermission"accessDeclaredMembers"; permissionjava.lang.reflect.ReflectPermission"suppressAccessChecks"; permissionjava.lang.RuntimePermission"defineCGLIBClassInJavaPackage"; }; https://www.cwiki.us/display/CONF6ZH/Java+Policy+Settings+for+Enterprise+or+Webhosting+Environments

优秀的个人博客,低调大师

网站404谁都见过 你知道为啥是404么?

【大咖・来了 第7期】10月24日晚8点观看《智能导购对话机器人实践》 每当浏览网页出现“404错误”时,我们都知道这表示该网页出现了访问错误,也就是页面丢失。其实,这早已是人尽皆知的常识。作为一种标准的HTTP返回代码,404被用来表示网页服务器HTTP的响应状态。然而,对于其历史来源却充满了神秘色彩,引人探寻。在21世纪初,甚至有一群人试着去研究“404错误”的来源。 只知道“404”是网页报错 却不知其从何而来? 据传在第三次科技革命前,整个互联网的形态就像是一个大型的中央数据库,并设置在一个叫404的房间里。那时,所有的访问请求都由人工手动完成,若在数据库中没有找到请求者所需要的文件,或是由于请求者写错了文件编号,他们就会得到一个“room 404 : file not found”返回信息。 实际上,“404错误”信息通常是当目标页面被更改、移除,或是客户端输入页面地址错误后显示的页面。久而久之,人们也就习以为常的用404代表服务器未找到文件的错误代码了。当然,经实际考证后发现传说中的room 404并不存在,在HTTP请求3位的返回码中,4开头的代表客户错误。而在中国,“404错误”有了更多延伸意思,既可能是网页不存在,还可能是内容非法,或是内容创作者主动删去。 其实,我们想说,尽管人类创造了网络技术,他也受我们所控制,但它却并非完全可靠。实际上,在互联网诞生不久后,错误的网址访问也随之而来。我们在享受互联网带来的知识、便利的同时,自然也得忍受 404错误带来的不痛苦,要不怎么说‘事物都是两面性的’。 不过,对于“404错误”的起源,身为互联网创造者的Robert Cailliau对于上面说法并不认同,甚至说是无稽之谈,404错误的真正来源并非如此。尽管现在来看,这种错误访问并不会影响互联网发展,但在互联网建设初期,这些却会造成大量资源的浪费。 对此,Cailliau表示:“当你为新系统编写代码时,不能浪费太多时间检测错误地址访问的要求。不然服务器要记住太多信息,会浪费太多资源,现代的极客们根本不知道用64K内存编程是什么感觉!为了避免错误地址访问,程序员想出了一个很简单的方法,即指定错误类别的数字范围,而‘404错误’就是程序员为让使用者连接网络错误时,知道自己错在哪而设置的。将使用者的错误类型标记为404,意味着该网页不存在。” “此外,我完全没有想到人们对‘404错误’的来源是这种想法,可能大家更偏爱一些非理性的、充满神秘色彩的故事吧,当然这在人类中相当普遍,当人的影响力小,信息传播缓慢的时候,这些非理性的特质是无罪的。但如今,由于网络的存在,这些特点已经获得了一种危险的力量。”Cailliau补充道。 当然除了404以外,其实还有很多其它的HTTP状态码。例如200,其代表着服务器已成功处理请求并提供了请求的网页,又或是表示请求的网页已***移动到新位置的301,以及代表服务器遇到错误无法完成请求的500等等,很多很多。***,我们想说的是,不管如何,像“404错误”这样的HTTP状态码会一直存在于网络世界之中。

优秀的个人博客,低调大师

基于Tomcat构建LNMT架构的网站并实现Session保持

简介 LNMT=Linux+Nginx+MySQL+Tomcat; Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器; 在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选; 架构需求 Tomcat实现JSP动态请求解析的基本架构 说明:由后端Tomcat负责解析动态jsp请求,但为了提高响应性能,在同一主机内配置Nginx做反向代理,转发所有请求至tomcat即可; 完整的LNMT架构设计 说明:本篇博客主要讲解单台Haproxy到后端多台Tomcat服务器的实现; 安装配置 Tomcat安装配置 安装JDK 1 2 3 4 5 # rpm -ivh jdk-7u9-linux-x64.rpm # vi /etc/profile.d/java.sh export JAVA_HOME= /usr/java/latest export PATH=$JAVA_HOME /bin :$PATH # . /etc/profile.d/java.sh 安装Tomcat 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 # tar xf apache-tomcat-7.0.42.tar.gz -C /usr/local/ # cd /usr/local/ # ln -sv apache-tomcat-7.0.42/ tomcat # vi /etc/profile.d/tomcat.sh export CATALINA_HOME= /usr/local/tomcat export PATH=$CATALINA_HOME /bin :$PATH # . /etc/profile.d/tomcat.sh # 编写服务脚本 # vi /etc/init.d/tomcat #!/bin/sh # Tomcat init script for Linux. # # chkconfig: 2345 96 14 # description: The Apache Tomcat servlet/JSP container. # JAVA_OPTS='-Xms64m -Xmx128m' JAVA_HOME= /usr/java/latest CATALINA_HOME= /usr/local/tomcat export JAVA_HOME CATALINA_HOME case $1 in start) exec $CATALINA_HOME /bin/catalina .sh start ;; stop) exec $CATALINA_HOME /bin/catalina .sh stop;; restart) $CATALINA_HOME /bin/catalina .sh stop sleep 2 exec $CATALINA_HOME /bin/catalina .sh start ;; *) echo "Usage: `basename $0` {start|stop|restart}" exit 1 ;; esac # chmod +x /etc/init.d/tomcat 配置Tomcat 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 # cd /usr/local/tomcat/conf # vi server.xml <?xml version= '1.0' encoding= 'utf-8' ?> <Server port= "8005" shutdown = "SHUTDOWN" > <Listener className= "org.apache.catalina.core.AprLifecycleListener" SSLEngine= "on" /> <Listener className= "org.apache.catalina.core.JasperListener" /> <Listener className= "org.apache.catalina.core.JreMemoryLeakPreventionListener" /> <Listener className= "org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> <Listener className= "org.apache.catalina.core.ThreadLocalLeakPreventionListener" /> <GlobalNamingResources> <Resource name= "UserDatabase" auth= "Container" type = "org.apache.catalina.UserDatabase" description= "User database that can be updated and saved" factory= "org.apache.catalina.users.MemoryUserDatabaseFactory" pathname= "conf/tomcat-users.xml" /> < /GlobalNamingResources > <Service name= "Catalina" > <Connector port= "9000" protocol= "HTTP/1.1" # 配置HTTP连接器监听9000端口 connectionTimeout= "20000" redirectPort= "8443" /> <Connector port= "8009" protocol= "AJP/1.3" redirectPort= "8443" /> <Engine name= "Catalina" defaultHost= "localhost" > <Realm className= "org.apache.catalina.realm.LockOutRealm" > <Realm className= "org.apache.catalina.realm.UserDatabaseRealm" resourceName= "UserDatabase" /> < /Realm > <Host name= "xxrenzhe.lnmmp.com" appBase= "webapps" # 新增Host,配置相应的Context unpackWARs= "true" autoDeploy= "true" > <Context path= "" docBase= "lnmmpapp" /> # 配置的应用程序目录是webapps/lnmmpapp <Valve className= "org.apache.catalina.valves.AccessLogValve" directory= "logs" prefix= "lnmmp_access_log." suffix= ".txt" pattern= "%h %l %u %t &quot;%r&quot; %s %b" /> < /Host > <Host name= "localhost" appBase= "webapps" unpackWARs= "true" autoDeploy= "true" > <Valve className= "org.apache.catalina.valves.AccessLogValve" directory= "logs" prefix= "localhost_access_log." suffix= ".txt" pattern= "%h %l %u %t &quot;%r&quot; %s %b" /> < /Host > < /Engine > < /Service > < /Server > # 创建应用程序相关目录 # cd /usr/local/tomcat/webapps/ # mkdir -pv lnmmpapp/WEB-INF/{classes,lib} # cd lnmmpapp # vi index.jsp # 编写首页文件 <%@ page language= "java" %> <html> < head ><title>Tomcat1< /title >< /head > # 在Tomcat2主机上替换为Tomcat2 <body> <h1><font color= "red" >Tomcat1.lnmmp.com< /font >< /h1 > # 在Tomcat2主机上替换为Tomcat2.lnmmp.com,color修改为blue <table align= "centre" border= "1" > < tr > <td>Session ID< /td > <% session.setAttribute( "lnmmp.com" , "lnmmp.com" ); %> <td><%= session.getId() %>< /td > < /tr > < tr > <td>Created on< /td > <td><%= session.getCreationTime() %>< /td > < /tr > < /table > < /body > < /html > 启动Tomcat服务 1 2 chkconfig --add tomcat service tomcat start Nginx配置 Nginx安装详见博文“如何测试Nginx的高性能” 配置Nginx 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 # vi /etc/nginx/nginx.conf worker_processes 2; error_log /var/log/nginx/nginx .error.log; pid /var/run/nginx .pid; events { worker_connections 1024; } http { include mime.types; default_type application /octet-stream ; log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"' ; sendfile on; keepalive_timeout 65; fastcgi_cache_path /www/cache levels=1:2 keys_zone=fcgicache:10m inactive=5m; server { # 处理前端发来的图片请求; listen 4040; server_name xxrenzhe.lnmmp.com; access_log /var/log/nginx/nginx-img .access.log main; root /www/lnmmp .com; valid_referers none blocked xxrenzhe.lnmmp.com *.lnmmp.com; # 配置一定的反盗链策略; if ($invalid_referer) { rewrite ^/ http: //xxrenzhe .lnmmp.com /404 .html; } } server { listen 80; # 处理前端发来的静态请求; server_name xxrenzhe.lnmmp.com; access_log /var/log/nginx/nginx-static .access.log main; location / { root /www/lnmmp .com; index index.php index.html index.htm; } gzip on; # 对静态文件开启压缩传输功能; gzip_comp_level 6; gzip_buffers 16 8k; gzip_http_version 1.1; gzip_types text /plain text /css application /x-javascript text /xml application /xml ; gzip_disable msie6; } server { listen 8080; server_name xxrenzhe.lnmmp.com; access_log /var/log/nginx/nginx-tomcat .access.log main; location / { proxy_pass http: //127 .0.0.1:9000; # 将全部动态请求都转发至后端tomcat } } } 启动服务 1 service nginx start Haproxy安装配置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 # yum -y install haproxy # vi /etc/haproxy/haproxy.cfg global log 127.0.0.1 local2 chroot /var/lib/haproxy pidfile /var/run/haproxy .pid maxconn 4000 user haproxy group haproxy daemon defaults mode http log global option httplog option dontlognull option http-server-close option forwardfor except 127.0.0.0 /8 option redispatch retries 3 timeout http-request 10s timeout queue 1m timeout connect 10s timeout client 1m timeout server 1m timeout http-keep-alive 10s timeout check 10s maxconn 30000 listen stats # 配置haproxy的状态信息页面 mode http bind 0.0.0.0:1080 stats enable stats hide-version stats uri /haproxyadmin ?stats stats realm Haproxy\ Statistics stats auth admin:admin stats admin if TRUE frontend http- in bind *:80 mode http log global option httpclose option logasap option dontlognull capture request header Host len 20 capture request header Referer len 60 acl url_img path_beg -i /images acl url_img path_end -i .jpg .jpeg .gif .png acl url_dynamic path_end -i .jsp . do use_backend img_servers if url_img # 图片请求发送至图片服务器; use_backend dynamic_servers if url_dynamic # JSP动态请求发送至Tomcat服务器; default_backend static_servers # 其余静态请求都发送至静态服务器; backend img_servers balance roundrobin server img-srv1 192.168.0.25:4040 check maxconn 6000 server img-srv2 192.168.0.35:4040 check maxconn 6000 backend static_servers cookie node insert nocache option httpchk HEAD /health_check .html server static-srv1 192.168.0.25:80 check maxconn 6000 cookie static-srv1 server static-srv2 192.168.0.35:80 check maxconn 6000 cookie static-srv2 backend dynamic_servers balance roundrobin server tomcat1 192.168.0.25:8080 check maxconn 1000 server tomcat2 192.168.0.35:8080 check maxconn 1000 启动服务 1 service haproxy start 本地DNS解析设置 1 xxrenzhe.lnmmp.com A 172.16.25.109 # 配置为haproxy的IP地址即可 访问验证 说明:由于前端Haproxy调度动态请求是roundrobin算法,故每次刷新都会轮询分配到不同的Tomcat节点上,且每次获得的session都是不一样的; 实现session绑定 将同一用户的请求调度至后端同一台Tomcat上,不至于一刷新就导致session丢失; 修改Tomcat配置 1 2 # vi /usr/local/tomcat/conf/server.xml # 修改如下行内容,添加jvmRoute字段 <Engine name= "Catalina" defaultHost= "localhost" jvmRoute= "tomcat1" > # 在Tomcat2上替换为tomcat2 修改Haproxy配置 1 2 3 4 5 6 # vi /etc/haproxy/haproxy.cfg # 为后端动态节点添加cookie绑定机制 backend dynamic_servers cookie node insert nocache balance roundrobin server tomcat1 192.168.0.25:8080 check maxconn 1000 cookie tomcat1 server tomcat2 192.168.0.35:8080 check maxconn 1000 cookie tomcat1 访问验证 说明:当第一次访问成功后,再次刷新并不会改变分配的Tomcat节点和session信息,说明session绑定成功; 实现session保持 Tomcat支持Session集群,可在各Tomcat服务器间复制全部session信息,当后端一台Tomcat服务器宕机后,Haproxy重新调度用户请求后,在其它正常的Tomcat服务上依然存在用户原先的session信息; Session集群可在Tomcat服务器规模(一般10台以下)不大时使用,否则会导致复制代价过高; 配置实现 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 # vi /usr/local/tomcat/conf/server.xml # 完整配置 <?xml version= '1.0' encoding= 'utf-8' ?> <Server port= "8005" shutdown = "SHUTDOWN" > <Listener className= "org.apache.catalina.core.AprLifecycleListener" SSLEngine= "on" /> <Listener className= "org.apache.catalina.core.JasperListener" /> <Listener className= "org.apache.catalina.core.JreMemoryLeakPreventionListener" /> <Listener className= "org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" /> <Listener className= "org.apache.catalina.core.ThreadLocalLeakPreventionListener" /> <GlobalNamingResources> <Resource name= "UserDatabase" auth= "Container" type = "org.apache.catalina.UserDatabase" description= "User database that can be updated and saved" factory= "org.apache.catalina.users.MemoryUserDatabaseFactory" pathname= "conf/tomcat-users.xml" /> < /GlobalNamingResources > <Service name= "Catalina" > <Connector port= "9000" protocol= "HTTP/1.1" connectionTimeout= "20000" redirectPort= "8443" /> <Connector port= "8009" protocol= "AJP/1.3" redirectPort= "8443" /> <Engine name= "Catalina" defaultHost= "localhost" jvmRoute= "tomcat1" > # 在Tomcat2主机上替换为tomcat2 <Cluster className= "org.apache.catalina.ha.tcp.SimpleTcpCluster" # 添加集群相关配置; channelSendOptions= "8" > <Manager className= "org.apache.catalina.ha.session.DeltaManager" # 集群会话管理器选择DeltaManager; expireSessionsOnShutdown= "false" notifyListenersOnReplication= "true" /> <Channel className= "org.apache.catalina.tribes.group.GroupChannel" > # 为集群中的几点定义通信信道; <Membership className= "org.apache.catalina.tribes.membership.McastService" # 定义使用McastService确定集群中的成员 address= "228.25.25.4" # 集群内session复制所用的多播地址 port= "45564" frequency= "500" dropTime= "3000" /> <Receiver className= "org.apache.catalina.tribes.transport.nio.NioReceiver" # 定义以NioReceiver方式接收其它节点的数据; address= "192.168.0.25" # 在Tomcat2主机上替换为192.168.0.35 port= "4000" autoBind= "100" selectorTimeout= "5000" maxThreads= "6" /> <Sender className= "org.apache.catalina.tribes.transport.ReplicationTransmitter" > # 定义数据复制的发送器; <Transport className= "org.apache.catalina.tribes.transport.nio.PooledParallelSender" /> < /Sender > <Interceptor className= "org.apache.catalina.tribes.group.interceptors.TcpFailureDetector" /> <Interceptor className= "org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor" /> < /Channel > <Valve className= "org.apache.catalina.ha.tcp.ReplicationValve" filter= "" /> <Valve className= "org.apache.catalina.ha.session.JvmRouteBinderValve" /> <Deployer className= "org.apache.catalina.ha.deploy.FarmWarDeployer" tempDir= "/tmp/war-temp/" deployDir= "/tmp/war-deploy/" watchDir= "/tmp/war-listen/" watchEnabled= "false" /> <ClusterListener className= "org.apache.catalina.ha.session.JvmRouteSessionIDBinderListener" /> <ClusterListener className= "org.apache.catalina.ha.session.ClusterSessionListener" /> < /Cluster > <Realm className= "org.apache.catalina.realm.LockOutRealm" > <Realm className= "org.apache.catalina.realm.UserDatabaseRealm" resourceName= "UserDatabase" /> < /Realm > <Host name= "xxrenzhe.lnmmp.com" appBase= "webapps" unpackWARs= "true" autoDeploy= "true" > <Context path= "" docBase= "lnmmpapp" /> <Valve className= "org.apache.catalina.valves.AccessLogValve" directory= "logs" prefix= "lnmmp_access_log." suffix= ".txt" pattern= "%h %l %u %t &quot;%r&quot; %s %b" /> < /Host > <Host name= "localhost" appBase= "webapps" unpackWARs= "true" autoDeploy= "true" > <Valve className= "org.apache.catalina.valves.AccessLogValve" directory= "logs" prefix= "localhost_access_log." suffix= ".txt" pattern= "%h %l %u %t &quot;%r&quot; %s %b" /> < /Host > < /Engine > < /Service > < /Server > # cd /usr/local/tomcat/webapps/lnmmpapp/WEB-INF/ # cp /usr/local/tomcat/conf/web.xml . # vi web.xml # 添加如下一行,无需放置于任何容器中 <distributable\> 查看日志 1 2 3 4 # tailf /usr/local/tomcat/logs/catalina.out May 08, 2014 11:08:13 PM org.apache.catalina.ha.tcp.SimpleTcpCluster memberAdded INFO: Replication member added:org.apache.catalina.tribes.membership.MemberImpl[tcp: // {192, 168, 0, 35}:4000,{192, 168, 0, 35},4000, alive=1029, securePort=-1, UDP Port=-1, id ={106 35 -62 -54 -28 61 74 -98 -86 -11 -69 104 28 -114 32 -69 }, payload={}, command ={}, domain={}, ] # 查看到如上信息,则说明session集群已生效,tomcat1已检测到tomcat2节点的存在 访问验证 第一次访问 然后停止tomcat1的nginx服务(service nginx stop),再次访问 说明:虽然因为tomcat1故障,导致用户请求被调度到了tomcat2节点上,但Session ID并未发生改变,即session集群内的所有节点都保存有全局的session信息,很好的实现了用户访问的不中断;, 本文转自 xxrenzhe11 51CTO博客,原文链接:http://blog.51cto.com/xxrenzhe/1408680,如需转载请自行联系原作者

优秀的个人博客,低调大师

中小型规模网站集群架构:Rsync错误集

常见问题 3.1.1 rsync服务端排错思路 查看rsync服务配置文件路径是否正确,正确的默认路径为:/etc/rsyncd.conf 查看配置文件里host allow,host deny,允许的IP网段是否是允许客户端访问的IP网段。 查看配置文件中path参数里的路径是否存在,权限是否正确(正常应为配置文件中的UID参数对应的属主和组) 查看rsync服务是否启动。查看命令为:ps -ef | grep rsync。端口是否存在netstat -plunt| grep 873 查看iptables防火墙和selinux是否开启允许rsync服务通过,也可考虑关闭。 查看服务端rsync配置的密码文件是否为600的权限,密码文件格式是否正确,正确格式用户名:密码,文件路径和配置文件里的secrect files参数对应。 如果是推送数据,要查看下,配置rsyncd.conf文件中用户是否对模块下目录有可读写的权限。 3.1.2 rsync客户端排错思路 查看客户端rsync配置的密码文件是否为600的权限,密码文件格式shfou 正确,注意:仅需要有密码,并且和服务端的mima 一直 用telnet链接rsync服务器IP地址873查看服务是否启动(可测试服务端防火墙是否阻挡) 客户端执行命令是rsync -avz /etc/hostsrsync_backup@172.16.1.41::backup 此命令的细节要记清楚,尤其是双冒号 3.2 No route to host问题 1 2 3 [root@nfs01~] #rsync-avz/etc/hostsrsync_backup@172.16.1.41::backup rsync :failedtoconnectto172.16.1.41:Noroutetohost(113) rsync error:error in socketIO(code10)atclientserver.c(124)[sender=3.0.6] 解决方案 服务端关闭防火墙 3.3 执行命令错误导致的报错 1 2 3 [root@nfs01~] #rsync-avz/etc/hostsrsync_backup@172.16.1.41::/backup ERROR:Theremotepathmuststartwithamodulenamenota/ rsync error:errorstartingclient-serverprotocol(code5)atmain.c(1503)[sender=3.0.6] 解决: rsync命令语法理解错误:/backup 必须是模块,也就是不能“/” 3.4 @ERROR: auth failed on module backup 1 2 3 4 5 [root@nfs01~] #rsync-avz/etc/hostsrsync_backup@172.16.1.41::backup Password: @ERROR:authfailedonmodulebackup rsync error:errorstartingclient-serverprotocol(code5)atmain.c(1503)[sender=3.0.6] [root@nfs01~] # 解决: 1.账号rsync_backup或者密码123456错误了。 2.指定的密码文件和实际的名称不一致。 secrets file = /etc/rsync.password 3.密码文件的权限忘记改为600 4.密码文件多了一个空格。 vi时候用set list或者用cat -A 3.5 @ERROR: Unknown module 'backupa' 1 2 3 4 [root@nfs01~] #rsync-avz/etc/hostsrsync_backup@172.16.1.41::backupa @ERROR:Unknownmodule 'backupa' rsync error:errorstartingclient-serverprotocol(code5)atmain.c(1503)[sender=3.0.6] [root@nfs01~] # 解决: 文件的模块和命令的模块不匹配 3.6 权限问题 1 2 3 4 5 6 7 [root@nfs01~] #rsync-avz/etc/hostsrsync_backup@172.16.1.41::backup Password: sendingincremental file list rsync :ERROR:cannotstatdestination "." ( in backup):Permissiondenied(13) rsync error:errorsselectinginput /output files, dirs (code3)atmain.c(554)[receiver=3.0.6] rsync :connectionunexpectedlyclosed(5bytesreceivedsofar)[sender] rsync error:error in rsync protocoldatastream(code12)atio.c(600)[sender=3.0.6] 解决: 共享目录的属主和属组不正确,不是rsync 共享目录的权限不正确。不是755 3.7 没有创建对应的目录 1 2 3 4 [root@nfs01~] #rsync-avz/etc/hostsrsync_backup@172.16.1.41::backup Password: @ERROR:chdirfailed rsync error:errorstartingclient-serverprotocol(code5)atmain.c(1503)[sender=3.0.6] 解决: 看配置文件的目录和创建的目录是否对应(相同) 或者目录没有创建 3.8 ID或者用户组和用户组不存在 1 2 3 4 [root@nfs01~] #rsync-avz/etc/hostsrsync_backup@172.16.1.41::backup Password: @ERROR:invaliduid rsync rsync error:errorstartingclient-serverprotocol(code5)atmain.c(1503)[sender=3.0.6] 解决: 创建rsync目录 3.9 客户端已经配置了密码文件,但免密钥登录方式,依旧需要输入密码 1 2 3 4 5 6 7 8 9 10 11 [root@nfs01~] #rsync-avz/etc/hostsrsync_backup@172.16.1.41::backup--password-file=/etc/rsync.password password file mustnotbeother-accessible continuingwithoutpassword file Password: sendingincremental file list hosts rsync :mkstemp ".hosts.xWBidH" ( in backup)failed:Permissiondenied(13) sent196bytesreceived27bytes89.20bytes /sec totalsizeis349speedupis1.57 rsync error:somefiles /attrs werenottransferred(seepreviouserrors)(code23)atmain.c(1039)[sender=3.0.6] 解决: 客户端的密码文件权限不是600 chmod 600 /etc/rsync.password 3.10 传输慢 看日志文件 1 2 3 4 5 6 7 2017 /03/08 20:15:49[25053]params.c:Parameter()-Ignoringbadlyformedline in configuration file :ignoreerrors 2017 /03/08 20:15:49[25053]namelookupfailed for 172.16.1.31:Nameorservicenotknown 2017 /03/08 20:15:49[25053]connectfromUNKNOWN(172.16.1.31) 2017 /03/08 20:15:49[25053] rsync tobackup/fromrsync_backup@unknown(172.16.1.31) 2017 /03/08 20:15:49[25053]receiving file list 2017 /03/08 20:15:49[25053] rsync :mkstemp ".hosts.q63Fzr" ( in backup)failed:Permissiondenied(13) 2017 /03/08 20:15:49[25053]sent173bytesreceived253bytestotalsize349 解决:配置本地域名解析/etc/hosts 1 172.16.1.31nfs01 修改后 1 2 3 4 5 6 2017 /03/08 20:17:46[25056]params.c:Parameter()-Ignoringbadlyformedline in configuration file :ignoreerrors 2017 /03/08 20:17:46[25056]connectfromnfs01(172.16.1.31) 2017 /03/08 20:17:46[25056] rsync tobackup/fromrsync_backup@nfs01(172.16.1.31) 2017 /03/08 20:17:46[25056]receiving file list 2017 /03/08 20:17:46[25056] rsync :mkstemp ".hosts.CmOBRm" ( in backup)failed:Permissiondenied(13) 2017 /03/08 20:17:46[25056]sent173bytesreceived253bytestotalsize349 3.11 客户端目录权限644+rsync使用了avz参数 推送之后会给服务端的/backup目录修改权限。使服务端权限变成644导致传输失败。 sh [root@nfs01 ~]# echo 123456>/etc/rsync.password ash: 123456: Bad file descriptor 3.12 问题,服务没启动 1 2 3 [root@backupscripts] #rsync-avz/etc/hostsrsync_backup@172.16.1.41::allbackup rsync :failedtoconnectto172.16.1.41:Connectionrefused(111) rsync error:error in socketIO(code10)atclientserver.c(124)[sender=3.0.6] 解决: rsync --daemon 未知错误 1 2 3 4 5 [root@nfs01scripts] #rsync-az-delete/data/rsync_backup@172.16.1.41::nfsbackup--password-file=/etc/rsync.password rsync :Failedto exec lete:Nosuch file ordirectory(2) rsync error:error in IPCcode(code14)atpipe.c(84)[sender=3.0.6] rsync :connectionunexpectedlyclosed(0bytesreceivedsofar)[sender] rsync error:error in rsync protocoldatastream(code12)atio.c(600)[sender=3.0.6] 解决:重新写一下命令,就OK? 本文转自 baishuchao 51CTO博客,原文链接:http://blog.51cto.com/baishuchao/1948091

优秀的个人博客,低调大师

基于keepalived实现多种模式的高可用集群网站架构

一、 实现主从服务器高可用技术。 大概网络拓扑图: 前提准备条件: 准备四台机器,一台为keepalived的master,一台为keepalived的backup,一台为rs1,一台为rs2,同时都关闭防火墙和selinux。 ①安装包。 yum install keepalived ②修改位置文件(keepalived的master)。 vim /etc/keepalived/keepalived.cf ③修改keepalived的主配置文件(keepalived的backup) ④给RS1设置VIP并设置成网卡别名。 ⑤同理,给RS2设置VIP并设置为网卡别名。 ⑥查看keepalived服务器上是否有服务。 ⑦测试。 ⑧模拟keepalived的master损坏。 二、实现互为主从模式的高可用技术。 大概网络拓扑图: 实现互为双主模式也就是准备两个VIP同时互相监督,当有一方宕机另一方就立刻顶上,从而实现了高可用。 ①在上个实验中的(主配置master)配置文件里再增加一套instance方案,从而达到互为主从。 ②在(从配置文件backup)修改配置文件,正好和主配置文件互为相反,从而可以互相监督。 本文转自 LUksl 51CTO博客,原文链接:http://blog.51cto.com/19940919/1980857

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册