重新建站

此前,该站完好无损,经过我一阵瞎折腾,以及外来因素的干扰,最终崩盘,以至于重新建站,更换了一个更轻量级的主题,关于建站的教程,网上屡屡皆是,在此我不在赘述,仅仅简单记录一下该站出问题的时候进行的问题排查。

问题排查

起初网站第一天登陆不上,我没有太多的在意,直到第二天上班的凌晨还登不上,我逐渐意识到事情的不对,让朋友帮忙访问了一下,却返回正常的结果(记一下她是电信流量卡,等会要考),我以为是我自己的设备问题,但是换了两张卡的流量都登不上去,又让我朋友也登了一下也是同样的问题。于是我便排除流量问题的可能,误以为第一个朋友能成功访问是因为浏览器的缓存暂时未清除。

于是我用阿里云拔测工具,测出来是611,于是我想用宝塔面板服务也登不上,也是611,ping了一下,发现DNS能够正常解析域名。故排除DNS的故障。

重装服务器、nginx、bt

然后用workbench远程连接服务器,心想着网站的内部的问题,懒得排查,干脆直接一键删库,反正我也打算重新整理下这个网站,于是便一键删除了整个库。然后格式化了服务器云盘,重装了服务器系统。最后重装NGINX服务和BT服务

注意:安装nginx的注意下网站的配置文件,改一下其中的server服务的对应站点内容,详情可以参考下面这篇文。

从零开始部署到上线:手把手教你搭建属于自己的个人博客网站!-阿里云开发者社区 (aliyun.com)

然后记得加上443和80的http服务端口,并到服务器的安全组里面去开放

Nginx网站服务配置,图文详解(超详细)_nginx 配置网页-CSDN博客

详请的HTTP配置,我直接放在下面:

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"';

	##访问日志位置
    #access_log  logs/access.log  main;

	##支持文件发送(下载)
    sendfile        on;
 	##此选项允许或禁止使用socke的TCP_CORK的选项(发送数据包前先缓存数据),此选项仅在使用sendfile的时候使用
    #tcp_nopush     on;

	##连接保持超时时间,单位是秒
    #keepalive_timeout  0;
    keepalive_timeout  65;

	##gzip模块设置,设置是否开启gzip压缩输出
    #gzip  on;

##Web 服务的监听配置
server {
	##监听地址及端口
	listen 80; 
	##站点域名,可以有多个,用空格隔开
	server_name www.lic.com;

	##网页的默认字符集
	charset utf-8;

	##根目录配置
	location / {
	
		##网站根目录的位置/usr/local/nginx/html
		root html;
	
		##默认首页文件名
		index index.html index.htm;
	}

	##内部错误的反馈页面
	error_page 500 502 503 504 /50x.html;
	##错误页面配置
	location = /50x.html {
		root html;
	}
}
}

SSL证书更新

做完上面的配置,然后记得更新一下SSL证书,具体步骤如下

打开 Nginx 配置文件 nginx.conf,找到包含 /path/to/your/certificate.pem 的行,并将其更改为您的实际 SSL 证书路径。如果您没有 SSL 证书,或者不需要 SSL,那么可以注释掉相关的 SSL 配置行。

使用以下命令编辑配置文件(这里使用 vi 编辑器,您也可以使用其他编辑器,如 nano):

vi /usr/local/nginx/conf/nginx.conf

找到类似下面的行,并将其更改为正确的路径或注释掉:

# ssl_certificate     /path/to/your/certificate.pem;
# ssl_certificate_key /path/to/your/private.key;

更新配置文件后,重新测试配置文件是否正确:

 /usr/local/nginx/sbin/nginx -t

重启Nginx

完成上述过程后,我重新启动了nginx

/usr/local/nginx/sbin/nginx

结果弹出了错误提示:“Failed to execute operation: Invalid argument” 表明我尝试执行的命令使用了不正确的参数,或者服务管理器 systemctl 无法找到指定的服务。

这意味着几种情况:

  • 我的nginx服务单元不存在/不在正确位置
  • nginx服务单元文件已经存在

利用命令检查后,发现我的nginx服务单元文件不存在,于是我便创建了一个新的:

#检查命令
ls /etc/systemd/system/nginx.service
ls /usr/lib/systemd/system/nginx.service
#重建nginx服务单元
[root@XiaoYang ~]# cat <<EOF >/etc/systemd/system/nginx.service
[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOF
##请确保 PIDFile 和 ExecStart 等路径与您的 Nginx 安装路径匹配。

接下来只需要重启即可

重新加载 `systemd` 管理器:systemctl daemon-reload

启用并启动 Nginx 服务:
systemctl enable nginx
systemctl start nginx

确保 Nginx 在系统启动时自动启动:systemctl enable nginx

检查 Nginx 服务状态:systemctl status nginx

查看 Nginx 日志:
tail -f /usr/local/nginx/logs/access.log
tail -f /usr/local/nginx/logs/error.log

开放80、443端口并监听

做好上面的后,我去重新在阿里云安全组添加了80、443端口,然后服务器中然后用netstat命令检查端口80和443是否正常运行,看是否有被占用。

若被占用,则使用kill命令杀死占用进程,然后重新运行nginx服务即可

再次排查

此时我再次进行ping,发现服务器站点能够ping通,响应200,此时我便下意识觉得肯定是服务器内部的问题,然后着手下一步网站的重建,结果在登陆宝塔面板的时候,意外还是来了,仍然登陆不了bt面板,去服务器内部检测,发现bt面板服务是正常开启的

于是我便去阿里云提交了工单,结果吃我一惊,对方工程师让我用tracert进行网络跳转测试,并反馈相应截图,我测试了一下,route在进行到第10的时候进行断线了,然后我用微步在线溯源了一下,发现是中国移动运行商的ip,接着就出现了下面这一幕。

这个结果结果让我很纳闷,回想一下发现朋友的卡跟我不是同一个运营商,怪不得他能正常访问,网络拨测的时候返回结果611的也全是移动运营商。但是我也没有在hvv期间使用云计算进行攻击啊,跟何况我是防守方啊。结果第二天去值班的时候,发现群记录:

我一看,这不就是我的服务器ip吗,搞半天原来是护网同事误封了,辛亏我即使联系了阿里云客服,接着第三天早会就强调了有关云服务器的上报封堵,提醒我们一定要做好研判再进行上报封堵。

总结

总的来说,算是一个乌龙,要是当时在工作群里问一下,估计就没那么多事了,但也算给我收获了很多宝贵的经验。

遇到类似情况,应对手段:查DNS,网络拔测看响应码、远程连接服务器查对应服务是否正常运行,tracert route侦察是否存在ip封堵、安全组排查端口是否正常开始等等。。。

评论

  1. 博主
    5 月前
    2024-8-01 3:56:31

    miaomiao

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
下一篇