linux 网站突然无法访问_linux 端口突然无法访问 - CSDN
  • 前言::::差不多一切的问题不是网络问题就是配置问题!!!!! 懒得看的就往下看,最最最...问题描述:访问域名,网站突然无法打开,然后等几分钟再刷新,啥也没动,他就又能打开了,再过一会儿又不能打开了...

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

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

    当时有一个项目,有一定的并发要求,十台服务器,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

     

    展开全文
  • 安装配置成功之后,启动tomcat服务, 然后使用本地浏览器访问http://xx:xx:xx:xx:8080, 无法访问。解决过程首先怀疑是配置问题,终端输出:echo $JAVA_HOME echo $TOMCAT_HOME一切正常,排除然后怀疑是防火墙问题:...

    前言

    环境: RedHat7.0 Tomcat7JDK7
    安装配置成功之后,启动tomcat服务, 然后使用本地浏览器访问http://xx:xx:xx:xx:8080, 无法访问。

    解决过程

    首先怀疑是配置问题,终端输出:

    echo $JAVA_HOME
    echo $TOMCAT_HOME

    一切正常,排除

    然后怀疑是防火墙问题:
    RHEL7 中使用了firewalld代替了原来的iptables,操作设置和原来有点不同:

    查看防火墙状态systemctl status firewalld 或者 systemctl is-active firewalld
    启动防火墙systemctl start firewalld
    停止防火墙systemctl stop firewalld
    永久停用systemctl disable firewalld
    启用防火墙systemctl enable firewalld

    我选择关闭防火墙,然后重启tomcat服务,再次访问,发现还是不行。

    其次怀疑是端口被占用:
    修改tomcat/conf/server.xml,将8080端口号改为8090,重启服务,发现可以正常访问。

    **那么**8080端口号被谁占用了呢?
    使用netstat –apn | grep 8080,查看所有的进程和端口使用情况。发现下面的进程列表,其中最后一栏是PID/Program name
    oracle 22725 oracle9i 3u IPv4 18621468 TCP RHEL3:6800 (LISTEN)
    oracle 22725 oracle9i 4u IPv4 18621469 TCP RHEL3:6800->RHEL3:2174 (CLOSE_WAIT)
    oracle 22725 oracle9i 8u IPv4 18621568 TCP RHEL3:6800->RHEL3:2175 (CLOSE_WAIT)
    oracle 22725 oracle9i 9u IPv4 18621578 TCP RHEL3:6800->RHEL3:2176 (CLOSE_WAIT)
    oracle 22726 oracle9i 3u IPv4 18621468 TCP RHEL3:6800 (LISTEN)
    oracle 22726 oracle9i 4u IPv4 18621469 TCP RHEL3:6800->RHEL3:2174 (CLOSE_WAIT)
    oracle 22726 oracle9i 8u IPv4 18621568 TCP RHEL3:6800->RHEL3:2175 (CLOSE_WAIT)
    oracle 22726 oracle9i 9u IPv4 18621578 TCP RHEL3:6800->RHEL3:2176 (CLOSE_WAIT)

    close_wait说明服务器被动断开连接,但断开的4次握手未进行完全

    然后使用kill -9 PID将进程杀死, 问题解决。

    其中, 我使用shutdown命令将机器关闭了,tomcat服务被动断开连接,导致出现close_wait这个状态,现在程序关闭之后原来所用端口依然被占用, 解决方法:

    1) 优化服务器内核参数(/etc/sysctl.conf)
    2) 做定时任务检查httpd进程数目,一旦发现httpd进程数目异常,就重启apache和tomcat, 建议在非工作时间进行检查重启,检查脚本:

    #!/bin/sh
    httpcount=`ps -ef|grep httpd|wc -l`
    echo $httpcount
    if [ $httpcount -gt 900 ]; then
      killall httpd
      killall java
      /cicro/wcm/bin/startas.sh
      echo "Restart successfully because of much useless process."
    else
      echo "It is OK!"
    fi
    展开全文
  • Linux HTTP服务无法访问

    2016-07-07 14:43:43
    利用nodejs在Linux服务器创建了HTTP服务(端口8080),结果只能在本机访问,马上怀疑到是Linux访问控制文件的问题,操作如下:

    利用nodejs在Linux服务器创建了HTTP服务(端口8080),结果只能在本机访问,马上怀疑到是Linux的访问控制文件的问题,操作过程如下:
    1.打开访问控制文件iptables

    #vi /etc/sysconfig/iptables

    2.找到其中开发的端口内容,敲击yy复制一份,然后敲击p粘贴,多半会出现如下内容

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT

    3.移动鼠标跳转到端口数字443,敲击i,将443改为自己需要的端口数字,如8080,如下

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

    4.修改完成,按ESC键,输入:wq保存文件
    5.重启访问控制服务

    # /etc/init.d/iptables restart

    操作完成,现在所有的机器都能访问Linux服务器的HTTP服务了。

    展开全文
  • 项目突然访问不了了: 问题描述: 1.能ping 通 2. 访问 页面报404 错误,没有进入到tomcat 的日志 查找问题: 1.查看防火墙  vi /etc/sysconfig/iptables 加这段话:(别放到最后面,下面的话可适量...


    项目突然访问不了了:

    问题描述:

    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


    展开全文
  • Linux 中 Tomcat 启动成功 但 无法访问 解决方法 我这边的原因:防火墙将8080、80端口拦截了 1、首先,查看Tomcat进程,显示无 ps aux | grep tomcat 2、启动Tomcat,启动成功 3、再查看Tomcat进程,显示...
  • 由于linux开启了防火墙,导致windows无法访问linux服务器程序。通过以下命令可以解决上述问题 iptables -F iptables -P INPUT ACCEPT(设置默认允许规则)
  • cd /etc/rabbitmq/ ls 发现这个文件夹是一个空的文件夹,执行下面的命令: ./rabbitmq-plugins enable rabbitmq_management ...这个是什么原因,难道说,我的rabbitmq没有安装成功吗 ...[root@izr86o1...
  • 最近碰到了一个非常奇怪的问题,那就是Linux服务器不能访问外部网站,比如访问zihou.me是不行的,但如果是访问网站的IP,比如zihou.me的IP是63.234.12.43,那么却又是可以的,用ping命令也是一样,如果是ping zihou....
  • 突然无法访问Servlet

    2018-04-11 10:02:08
    开着tomcat一直调试JSP页面样式 突然无法访问Servlet,页面调用Ajax的servlet全部报404 可能由于容易不断重新同步出错 解决方法: ecllipse中选择菜单Project->Clean项目,重新部署项目应该会恢复正常 ....
  • Linux命令行访问网页

    2018-06-04 11:03:22
    一、CURL --- 命令行浏览器Curl是Linux下一个很强大的http命令行工具这东西现在已经是苹果机上内置的命令行工具之一了,可见其魅力之一斑1) curl http://www.yahoo.com回车之后,www.yahoo.com 的html就稀里哗啦...
  • 原因:Centos7的防火墙拦截了tomcat访问的8080端口。 可以通过关闭防火墙来实现Tomcat访问,但是这种方法并不安全。 通过开放centos7防火墙的端口: firewall-cmd --permanent --zone=public --add-port=8080/tcp...
  • 1、问题及异常
  • 甚至直接把防火墙关了,依旧无法访问![图片说明](https://img-ask.csdn.net/upload/201802/01/1517468849_550403.png)
  • 1:首先检查防火墙是否关闭:若未关闭需关闭; 2:登录mysql创建新用户给与权限: 命令1:GRANT ALL PRIVILEGES ON *.* TO 'username'@’%’ IDENTIFIED BY 'password' WITH GRANT OPTION: ...
  • 查看日志文件后发现是磁盘空间不足造成的。 查看硬盘的使用情况df,-h单元为根据大小适当显示,-m单位为M,查看指定目录的文件大小du,查看当前目录的总大小,...释放部分空间后还是无法启动,又报“MySql提示:The ser
  • Linux中Apache服务已经开启,防火墙也关闭了,在Linux访问127.0.0.1显示it works! 但是在主机中的浏览器中无法链接Apache,请教各位大神~~
  • 2、这个是因为linux服务器没有配置DNS域名服务器地址导致的,linux系统里会有/etc/resolv.conf这个配置文件,是DNS客户机配置文件,用于设置DNS服务器的IP地址及DNS域名的。配置的域名服务器地址从什么地方可以知道...
  • 突然linux无法挂载ntfs硬盘,是因为windows10处于高级休眠状态。 处理方式:关闭windows的快速启动,在控制面板中的电源选项(可以搜索),先选择更改不可用选项,再勾选掉快速启动。重启即可。...
  • 今天遇到一件很纳闷的事情,在linux部署项目,一共部署6个左右。shell脚本写好无误,启动无任何异常,日志也没有报错异常,就是访问不到项目找了2个小时发现是权限问题。在目录下命令 ll,如果ll不行的话应该是版本的...
  • 碰到了一个比较奇怪的问题,我在linux系统上安装了一个tomcat服务器,我将一个项目部署到了这个服务器上,然后我去访问这个tomcat,访问成功: 紧接着,我访问我部署项目的index.jsp页面,出现了404: 找了好久...
1 2 3 4 5 ... 20
收藏数 32,866
精华内容 13,146
关键字:

linux 网站突然无法访问