2019-06-26 17:29:38 wu__peng 阅读数 748
  • 玩转Linux:常用命令实例指南

    本课程以简洁易懂的语言手把手教你系统掌握日常所需的Linux知识,每个知识点都会配合案例实战让你融汇贯通 。课程通俗易懂,简洁流畅,适合0基础以及对Linux掌握不熟练的人学习; 注意: 1、本课程原价99元,现在仅需29元!购课就送5门价值300元的编程课! 2、购课后登陆csdn学院官网,在课程目录页面即可下载课件。 学完即可轻松应对工作中 85% 以上的 Linux 使用场景 【限时福利】 1)购课后按提示添加小助手,进答疑群,还可获得价值300元的编程大礼包! 2)本课程【现在享受秒杀价39元】 3)本月购买此套餐加入老师答疑交流群,可参加老师的免费分享活动,学习最新技术项目经验。 注意: 1)现在购买至少享受60元优惠; 2)购课后添加微信eduxy-1,发送订单截图领取300元编程礼包。 --------------------------------------------------------------- 这门课程,绝对不会让你觉得亏! 29元=掌握Linux必修知识+社群答疑+讲师社群分享会+300元编程礼包。   人工智能、物联网、大数据时代,Linux正有着一统天下的趋势,几乎每个程序员岗位,都要求掌握Linux。本课程零基础也能轻松入门。   在这门课中,我们保证你能收获到这些 1)快速掌握 Linux 常用命令及配置 2)Linux核心知识点 3) 文件、进程、磁盘、用户管理,以及网络工具命令、文件传输等 4)Vi/Vim编辑器用法  

    7161 人正在学习 去看看 良许

前言::::差不多一切的问题不是网络问题就是配置问题!!!!!

懒得看的就往下看,最最最后面,问题解决和总结

当时有一个项目,有一定的并发要求,十台服务器,java项目(排查出来的问题是Linux的关系),前后端分离的,

前端相当于静态资源,使用nginx进行反向代理进行访问;

问题描述:访问域名,网站突然就无法打开,然后等几分钟再刷新,啥也没动,他就又能打开了,再过一会儿又不能打开了,还是内侧阶段,几本可以认为没有其他用户访问,不存在啥访问量太大的影响;

遇到问题了,还原一下当时的判断过程;

过程一:网站无法访问的时候,尝试访问了后台接口和静态资源,都无法访问,但是服务器上直接curl 127.0.0.1这样访问网站是没有问题的。而且看了一下系统内存,读写啥的都正常(看来我的后端代码没啥问题,静态资源肯定也没有问题的)

过程二:代码没问题,内存啥的也没问题,服务器本地访问也没问题,难道是nginx出毛病了么,于是清理了nginx的日志,特意等到了出问题的时候去刷新,nginx泡都不冒,日志都没有,根本就没进来,仔细思考了一下,难道我nginx装出问题了,nginx配置有问题,于是特意docker重新装了一个nginx,然后只配置了一个静态文件,原来的nginx关了,结果!!!还是偶尔无法访问,真的是哔了狗了

过程三:仔仔细细的回想了一下我以前对我做负载这台服务器干了啥,当时为了并发,https,在负载服务器上各种改,nginx配置,Linux配置都动了,然后想想好像当初没有记录自己修改了啥!!!公司没这种要求,我也不是运维,不清楚还要记录一下,遇到了这次的坑了才知道,。。改Linux这种看来还是要记录一下才行,当初jmeter测试并发的时候很多错误 connect time out啥的,百度去改了几个东西,改了nginx配置,改了Linux配置,然后突然并发率就蹭蹭蹭的上去了,然后就通过检验合格了,就没有然后了

还好我遇到新鲜的事情的时候喜欢记录一个书签,仔仔细细找了自己电脑上的书签,然后用两三台服务器和负载服务器的Linux配置去对比,很好,最后发现了

 

问题解决:

我竟然启用了tcp recycle,就这个坑了我

这个是之前在部署应用主机系统时,修改优化了部分内核参数,当时想的是为了增大主机对tcp的连接性能,防止遇到并发用户的连接,导致tcp 连接不能快速释放,从而引发服务器 出现性能上的瓶颈(会导致服务器内存和CPU的暴增)。因为client 与server 建立链接传输完数据后,会断开链接,而服务器这边还会有2MSL的 time_wait 时间,超过这个时间之后,正常情况下,该socket才会被释放, 然后才可以接收其它client的请求。因为server 的端口是有固定范围的,不是说65535个全部都用来建立连接( 可参看系统内核配置:net.ipv4.ip_local_port_range)。

另外关于time_wait具体的可以参考tcp 的4次断开后的状态。 所以为了快速回收和重新使用,才开启了 tcp的reuse 和 recycle。但没想到这个会引起这么大的问题。 并且这个参数之前确实也在前公司用过。但没有发现这个类似的问题(也可能是当时的监控不到位,没有发现也不代表该问题不存在。

总结

不要开启tcp_tw_recycle!!! .重要的话说三遍。 一定要有配置管理!可以方便在系统出问题时,检查对主机所做的历史记录。考虑问题不能光从 软件程序、网络上,还要加入对主机系统的分析。tcpdump、ss、还有log等。

 

PS:还有一个:nginx服务器间歇性无法访问解决办法

ubuntu下查看sysctl.conf

查找该配置文件中是否有net.ipv4.tcp_tw_recycle=1    如果有将值改为1   

如果服务器访问量大可以写入net.ipv4.tcp_tw_reuse=1  开启tcp重用

保存退出   sysctl -p启用配置

问题解决

net.ipv4.tcp_tw_recycle表示服务器缓存最后一个收到的请求的时间戳   如果新收到的请求的时间戳早于该时间戳   丢弃新收到的请求。

 

参考文章:https://aliasmee.github.io/post/is-my-website-response-time-so-why-slow/

https://blog.csdn.net/ljz763732481/article/details/81873746

 

2016-08-25 17:22:28 shi_longyan 阅读数 4855
  • 玩转Linux:常用命令实例指南

    本课程以简洁易懂的语言手把手教你系统掌握日常所需的Linux知识,每个知识点都会配合案例实战让你融汇贯通 。课程通俗易懂,简洁流畅,适合0基础以及对Linux掌握不熟练的人学习; 注意: 1、本课程原价99元,现在仅需29元!购课就送5门价值300元的编程课! 2、购课后登陆csdn学院官网,在课程目录页面即可下载课件。 学完即可轻松应对工作中 85% 以上的 Linux 使用场景 【限时福利】 1)购课后按提示添加小助手,进答疑群,还可获得价值300元的编程大礼包! 2)本课程【现在享受秒杀价39元】 3)本月购买此套餐加入老师答疑交流群,可参加老师的免费分享活动,学习最新技术项目经验。 注意: 1)现在购买至少享受60元优惠; 2)购课后添加微信eduxy-1,发送订单截图领取300元编程礼包。 --------------------------------------------------------------- 这门课程,绝对不会让你觉得亏! 29元=掌握Linux必修知识+社群答疑+讲师社群分享会+300元编程礼包。   人工智能、物联网、大数据时代,Linux正有着一统天下的趋势,几乎每个程序员岗位,都要求掌握Linux。本课程零基础也能轻松入门。   在这门课中,我们保证你能收获到这些 1)快速掌握 Linux 常用命令及配置 2)Linux核心知识点 3) 文件、进程、磁盘、用户管理,以及网络工具命令、文件传输等 4)Vi/Vim编辑器用法  

    7161 人正在学习 去看看 良许


项目突然访问不了了:

问题描述:

1.能ping 通
2. 访问 页面报404 错误,没有进入到tomcat 的日志


查找问题:

1.查看防火墙

 vi /etc/sysconfig/iptables

加这段话:(别放到最后面,下面的话可适量减去开头部分)
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
service iptables restart

2.重启mysql 服务

service mysqld  restart

3.重启tomcat

./shutdown.sh
./startup.sh
 
tail -f ../logs/catalina.sh   查看日志


查看防火墙配置,80端口加入映射了已经,但   mysql服务原来是关掉的,导致的上面的问题


4. 查看8080端口使用情况
直接使用 netstat   -anp   |   grep  portno
即:netstat –apn | grep 8080


2017-04-08 14:03:36 qq_33663251 阅读数 23006
  • 玩转Linux:常用命令实例指南

    本课程以简洁易懂的语言手把手教你系统掌握日常所需的Linux知识,每个知识点都会配合案例实战让你融汇贯通 。课程通俗易懂,简洁流畅,适合0基础以及对Linux掌握不熟练的人学习; 注意: 1、本课程原价99元,现在仅需29元!购课就送5门价值300元的编程课! 2、购课后登陆csdn学院官网,在课程目录页面即可下载课件。 学完即可轻松应对工作中 85% 以上的 Linux 使用场景 【限时福利】 1)购课后按提示添加小助手,进答疑群,还可获得价值300元的编程大礼包! 2)本课程【现在享受秒杀价39元】 3)本月购买此套餐加入老师答疑交流群,可参加老师的免费分享活动,学习最新技术项目经验。 注意: 1)现在购买至少享受60元优惠; 2)购课后添加微信eduxy-1,发送订单截图领取300元编程礼包。 --------------------------------------------------------------- 这门课程,绝对不会让你觉得亏! 29元=掌握Linux必修知识+社群答疑+讲师社群分享会+300元编程礼包。   人工智能、物联网、大数据时代,Linux正有着一统天下的趋势,几乎每个程序员岗位,都要求掌握Linux。本课程零基础也能轻松入门。   在这门课中,我们保证你能收获到这些 1)快速掌握 Linux 常用命令及配置 2)Linux核心知识点 3) 文件、进程、磁盘、用户管理,以及网络工具命令、文件传输等 4)Vi/Vim编辑器用法  

    7161 人正在学习 去看看 良许

最近把项目部署到Linux服务器上,发现本地调试好的微信扫码登录突然无法使用了,本地调试却正常!

查看项目日志,发现报错如下

java.net.UnknownHostException: api.weixin.qq.com
	at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:184)
	at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
	at java.net.Socket.connect(Socket.java:589)
	at sun.security.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:668)
	at sun.security.ssl.BaseSSLSocketImpl.connect(BaseSSLSocketImpl.java:173)
	at sun.net.NetworkClient.doConnect(NetworkClient.java:180)
	at sun.net.www.http.HttpClient.openServer(HttpClient.java:432)
	at sun.net.www.http.HttpClient.openServer(HttpClient.java:527)
	at sun.net.www.protocol.https.HttpsClient.<init>(HttpsClient.java:264)
	at sun.net.www.protocol.https.HttpsClient.New(HttpsClient.java:367)
	at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.getNewHttpClient(AbstractDelegateHttpsURLConnection.java:191)
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect0(HttpURLConnection.java:1138)
	at sun.net.www.protocol.http.HttpURLConnection.plainConnect(HttpURLConnection.java:1032)
	at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:177)
	at sun.net.www.protocol.https.HttpsURLConnectionImpl.connect(HttpsURLConnectionImpl.java:153)
	at cn.jagl.mryt.util.HttpRequestUtilImpl.sendGet(HttpRequestUtilImpl.java:87)
	at cn.jagl.mryt.action.EmployeeAction.wxLogin(EmployeeAction.java:193)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at ognl.OgnlRuntime.invokeMethod(OgnlRuntime.java:892)
	at ognl.OgnlRuntime.callAppropriateMethod(OgnlRuntime.java:1537)...还有很多就不截了


这个错误是因为服务器无法识别api.weixin.qq.com这个域名

然后尝试分别在windows和服务器上ping 了一下这个域名,果然windows上可以ping通,而linux上不行,又试了几个常用的域名,结果一样。。。

解决方法

编辑etc下的resoly.conf文件(如果没有就新建一个)
vi /etc/resolv.conf
添加一行
nameserver 8.8.8.8
保存后重启网络服务
service network restart
然后应该就可以了



2016-08-08 20:03:56 mid120 阅读数 3526
  • 玩转Linux:常用命令实例指南

    本课程以简洁易懂的语言手把手教你系统掌握日常所需的Linux知识,每个知识点都会配合案例实战让你融汇贯通 。课程通俗易懂,简洁流畅,适合0基础以及对Linux掌握不熟练的人学习; 注意: 1、本课程原价99元,现在仅需29元!购课就送5门价值300元的编程课! 2、购课后登陆csdn学院官网,在课程目录页面即可下载课件。 学完即可轻松应对工作中 85% 以上的 Linux 使用场景 【限时福利】 1)购课后按提示添加小助手,进答疑群,还可获得价值300元的编程大礼包! 2)本课程【现在享受秒杀价39元】 3)本月购买此套餐加入老师答疑交流群,可参加老师的免费分享活动,学习最新技术项目经验。 注意: 1)现在购买至少享受60元优惠; 2)购课后添加微信eduxy-1,发送订单截图领取300元编程礼包。 --------------------------------------------------------------- 这门课程,绝对不会让你觉得亏! 29元=掌握Linux必修知识+社群答疑+讲师社群分享会+300元编程礼包。   人工智能、物联网、大数据时代,Linux正有着一统天下的趋势,几乎每个程序员岗位,都要求掌握Linux。本课程零基础也能轻松入门。   在这门课中,我们保证你能收获到这些 1)快速掌握 Linux 常用命令及配置 2)Linux核心知识点 3) 文件、进程、磁盘、用户管理,以及网络工具命令、文件传输等 4)Vi/Vim编辑器用法  

    7161 人正在学习 去看看 良许

Amazon-EC2 Linux实例中tomcat正常运行,但是外部浏览器如Google都无法访问

    废话不多说,直入主题。在Amazon-EC2 Linux实例中,在tomcat上部署完项目后,用Google浏览器访问tomcat,出现无法访问情况,解决情况如下:

    输入网址格式:http://公有IP(公有DNS):端口号/项目名称

    1)查看tomcat默认端口与安全组中添加规则的的端口号一定要一致。tomcat下是在安装路径下server.xml文件中修改,我的安装路径是/usr/local/apache-tomcat-XXX/conf/server.xml,vi server.xml;/8080 回车

第二步,"/"是vi编辑器中搜索关键字命令,因为安装完的tomcat中默认都是8080。

    安全组中添加的规则是,自定义TCP,端口范围一栏的端口号一定要与server.xml中端口一致。

    另外,修改完tomcat默认端口后一定要重启一下你的tomcat项目,我是先用kill -9 进程号,杀掉它,执行命令sh /usr/local/apache-tomcat-XXX/bin/catalina.sh start,这是为了是修改的端口号生效,重启tomcat可以用命令pa -ef | grep tomcat 验证一下tomcat是否真的重启,回车后你会看到一长串的进程名,root     17432     1 99 06:09 pts/1    00:00:11 /usr/.../temp org.apache.catalina.startup.Bootstrap start

    2)注意:防火墙一定要注意,要么关掉iptables,/etc/init.d/iptables stop,要么在iptables配置文件中打开你连接的端口号,配置文件路径/etc/sysconfig/iptables,怎样设置去百度。切记,配置完这个文件后,一定要执行一下/etc/init.d/iptables restart,重启一下防火墙,才能使设置生效。

    那么,我在做完这些,输入网址,却仍然无法连接,很有可能仍然是端口号的问题,果然。。。。。。。。

我将tomcat默认端口改成别的不是8080或者80端口,一个很平常的端口号(如8099),注意安全组中规则的端口要记得同步更改以及改完后tomcat要记得重启,再在Google浏览器中输入http://public ip:8099/,终于成功了!!

    这里是为什么用80或者8080端口不行?因为AWS在中国区需要进行ICP备案,如果未进行备案,则80和8080端口是不能访问的。所以需要找亚马逊的ICP备案合作商进行备案!!

   

没有更多推荐了,返回首页