阿里云轻量级服务器部署了项目外网无法访问

  • Post author:
  • Post category:其他




1、问题描述

买了一个阿里云轻量级服务器,在上面搭建了一个nexus私服仓库,启动成功之后,在公网无法访问,报连接被拒绝。

这个对于阿里云服务器来说,是要配置安全组规则的,就是说你用到哪个端口需要为这个端口去配置权限,配置的方式下面所示:


如果权限也配置了还是无法访问,请看最后的问题分析,或许对你有所帮助



2、配置安全组权限

我这里买的是阿里云的轻量级服务器,所需要配置的地方有两个,一个是在阿里云的控制台,另一个是在linux服务器里面。



2.1、阿里云控制台权限配置(热加载,不用重启)

进入到自己的轻量级服务器中找到防火墙,进来之后一般都会有默认的 HTTP、HTTPS、SSH三个协议已经配置好,后面的两个自定义是我配置的,也就是说你部署的服务端口号是多少,你就得配置多少的,在这里配置的端口都是实时生效的,不需要重启服务或者什么的。

在这里插入图片描述



2.2、在服务器中查看防火墙中有哪些端口被开放(非热加载,最后一定要手动重新加载)

首先要强调一点,因为阿里云服务器是在公网,所以我们的防火墙必须开启,否则会产生很多不必要的麻烦,被攻击什么的。

下面是防火墙相关的几条命令

# 设置开机启用防火墙
systemctl enable firewalld.service
# 设置开机禁用防火墙
systemctl disable firewalld.service
# 启动防火墙(暂时的,重启服务会恢复到默认)
systemctl start firewalld
# 关闭防火墙(暂时的,重启服务会恢复到默认)
systemctl stop firewalld
# 检查当前防火墙状态
systemctl status firewalld 

在检查完防火墙必须是开启的状态下,我们需要看一下以下信息

首先看一下在服务器中防火墙都开启了哪些端口,用如下命令

firewall-cmd --permanent --list-port

使用上述命令如下图所示则是我开启了 8080,8081,9103端口

在这里插入图片描述

如果我们没有开启呢,那么可以使用下面命令开启:

firewall-cmd --permanent --zone=public --add-port=9103/tcp

返回 success 则代表成功

在这里插入图片描述

同样的,如果我们不需要开启哪个端口,可以用下面命令移除掉(也是需要返回success的):

firewall-cmd --permanent --zone=public --remove-port=9103/tcp



重点:重启完成之后一定要手动重新加载防火墙,命令如下:

firewall-cmd --reload



3、如果设置了上面两个之后还是无法正常访问



3.1、确定问题方向



是端口配置问题还是服务搭建等其他问题?

为了确认这个问题,首先我在本地写了一个springboot的hello world项目,只有一个路径,然后部署到服务器上,去访问,最后竟然发现可以访问,那么这个时候就确定了并不是端口开放问题了。



3.2、分析具体问题



发现了一个现象:

我发现我的服务器会经常卡顿,于是我去查了一下什么情况能造成服务器卡顿,发现有以下几种情况:


1、

服务器遭到攻击。


2、

服务器有病毒。


3、

服务器被某个服务占用内存过大。

很明显,前两个原因不太符合我的实际情况,因为我的服务器是刚买的,我才只搭建了这一个服务,所以我就以第三点来进行深入分析。




验证是服务占用内存过大猜想:

为了确保是不是当前服务造成的服务器卡顿,我开启了两个xshell窗口,一个窗口输入 top 命令,实时打印服务器的cpu占用情况,一个窗口去启动服务。

启动完成之后我来到打印cpu占用率这边窗口看了一眼,发现第一条的cpu占用率竟然已经超过了100%,然后回到启动服务的窗口,窗口变得异常的卡顿,我艰难的使用 ps -ef | grep xxx 命令打印出我服务的信息,通过对比两边的线程号,发现是我的服务造成的,而且在项目完全启动之后还是一直保持着高cpu占用率。

然后问题就很明显了,是我的服务器不够用,于是花钱将服务器升了个级,就好多了。



版权声明:本文为qq_41931364原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。