如何排查nginx服务启动情况,杀死端口,以及防火墙开放指定端口【linux与nginx排查手册】
利用NGINX搭建了视频服务,突然发现启动不了了,于是命令开始
- 使用以下命令查看更详细的错误信息:
-
systemctl status nginx.service
-
Warning: The unit file, source configuration file or drop-ins of nginx.service changed on disk. Run 'systemctl daemon-reload' to reload units. Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details. [root@raw /]# sudo systemctl daemon-reload [root@raw /]# systemctl status nginx.service ● nginx.service Loaded: loaded (/etc/systemd/system/nginx.service; bad; vendor preset: disabled) Active: failed (Result: exit-code) since Thu 2024-04-18 11:23:02 CST; 14s ago4月 18 11:23:02 raw.githubusercontent.com systemd[1]: Starting nginx.service... 4月 18 11:23:02 raw.githubusercontent.com systemd[1]: nginx.service: Control process exited, code=exited status=203 4月 18 11:23:02 raw.githubusercontent.com systemd[1]: nginx.service: Failed with result 'exit-code'. 4月 18 11:23:02 raw.githubusercontent.com systemd[1]: Failed to start nginx.service. 4月 18 11:23:12 raw.githubusercontent.com systemd[1]: /etc/systemd/system/nginx.service:1: Assignment outside of section. Ignoring. 4月 18 11:23:12 raw.githubusercontent.com systemd[1]: /etc/systemd/system/nginx.service:2: Assignment outside of section. Ignoring. 4月 18 11:23:12 raw.githubusercontent.com systemd[1]: /etc/systemd/system/nginx.service:3: Assignment outside of section. Ignoring. 4月 18 11:23:16 raw.githubusercontent.com systemd[1]: /etc/systemd/system/nginx.service:1: Missing '='. [root@raw /]# sudo systemctl start nginx Job for nginx.service failed because the control process exited with error code. See "systemctl status nginx.service" and "journalctl -xe" for details. [root@raw /]# systemctl status nginx.service ● nginx.service Loaded: loaded (/etc/systemd/system/nginx.service; bad; vendor preset: disabled) Active: failed (Result: exit-code) since Thu 2024-04-18 11:23:22 CST; 7s ago Process: 41057 ExecStart=/usr/local/nginx/sbin/nginx (code=exited, status=1/FAILURE)4月 18 11:23:21 raw.githubusercontent.com nginx[41057]: nginx: [emerg] bind() to 0.0.0.0:8090 failed (98: Address already in use) 4月 18 11:23:21 raw.githubusercontent.com nginx[41057]: nginx: [emerg] bind() to 0.0.0.0:82 failed (98: Address already in use) 4月 18 11:23:21 raw.githubusercontent.com nginx[41057]: nginx: [emerg] bind() to 0.0.0.0:8090 failed (98: Address already in use) 4月 18 11:23:21 raw.githubusercontent.com nginx[41057]: nginx: [emerg] bind() to 0.0.0.0:82 failed (98: Address already in use) 4月 18 11:23:22 raw.githubusercontent.com nginx[41057]: nginx: [emerg] bind() to 0.0.0.0:8090 failed (98: Address already in use) 4月 18 11:23:22 raw.githubusercontent.com nginx[41057]: nginx: [emerg] bind() to 0.0.0.0:82 failed (98: Address already in use) 4月 18 11:23:22 raw.githubusercontent.com nginx[41057]: nginx: [emerg] still could not bind() 4月 18 11:23:22 raw.githubusercontent.com systemd[1]: nginx.service: Control process exited, code=exited status=1 4月 18 11:23:22 raw.githubusercontent.com systemd[1]: nginx.service: Failed with result 'exit-code'. 4月 18 11:23:22 raw.githubusercontent.com systemd[1]: Failed to start nginx.service.
然后发现是端口被占用,先杀死端口吧
问题出现在尝试启动 Nginx 时遇到端口冲突导致无法绑定到指定的端口(0.0.0.0:8090 和 0.0.0.0:82)上。可以按照以下步骤解决这个问题:
-
查找占用端口的进程:
- 使用以下命令查找占用端口 8090 和 82 的进程:
sudo netstat -tuln | grep ':8090\|:82'
- 使用以下命令查找占用端口 8090 和 82 的进程:
-
停止占用端口的进程:
- 根据上一步的输出,找到占用端口的进程,并停止它们,可以使用以下命令杀死占用端口 8090 的进程(假设 PID 为 XXX):
sudo kill XXX
- 根据上一步的输出,找到占用端口的进程,并停止它们,可以使用以下命令杀死占用端口 8090 的进程(假设 PID 为 XXX):
-
修改 Nginx 配置文件:
- 如果需要修改 Nginx 配置文件中监听的端口,可以编辑 Nginx 配置文件(通常在
/usr/local/nginx/conf/nginx.conf
)并将监听端口修改为未被占用的端口,例如 8080。
- 如果需要修改 Nginx 配置文件中监听的端口,可以编辑 Nginx 配置文件(通常在
-
重新加载 Nginx 配置并启动服务:
- 保存修改后的配置文件,然后重新加载 Nginx 配置并尝试启动 Nginx 服务:
sudo /usr/local/nginx/sbin/nginx -s reload
- 保存修改后的配置文件,然后重新加载 Nginx 配置并尝试启动 Nginx 服务:
-
再次检查 Nginx 服务状态:
- 使用以下命令再次检查 Nginx 服务的状态:
systemctl status nginx
- 使用以下命令再次检查 Nginx 服务的状态:
通过找到并停止占用端口的进程,修改 Nginx 配置文件中的监听端口,然后重新加载配置并启动 Nginx 服务,应该可以解决端口冲突导致的启动问题。
然后命令重启nginx
[root@raw conf]# sudo systemctl start nginx
[root@raw conf]# systemctl status nginx
● nginx.service
Loaded: loaded (/etc/systemd/system/nginx.service; bad; vendor preset: disabled)
Active: active (running) since Thu 2024-04-18 11:31:03 CST; 5s ago
Process: 41932 ExecStart=/usr/local/nginx/sbin/nginx (code=exited, status=0/SUCCESS)
Main PID: 41933 (nginx)
Tasks: 2 (limit: 203695)
Memory: 1.3M
CGroup: /system.slice/nginx.service
├─41933 nginx: master process /usr/local/nginx/sbin/nginx
└─41934 nginx: worker process4月 18 11:31:03 raw.githubusercontent.com systemd[1]: Starting nginx.service...
4月 18 11:31:03 raw.githubusercontent.com systemd[1]: Started nginx.service.
外界还看不到视频的话,那就是防火墙拦截了,再开启端口:
要开放特定端口(例如82端口),您可以按照以下步骤在防火墙中添加规则以允许流量通过该端口:
-
使用 firewall-cmd 命令添加端口规则:
- 执行以下命令以永久性地开放82端口:
txt
sudo firewall-cmd --zone=public --add-port=82/tcp --permanent
- 执行以下命令以永久性地开放82端口:
-
重新加载防火墙规则:
- 执行以下命令以重新加载防火墙规则,使新的端口规则生效:
sudo firewall-cmd --reload
- 执行以下命令以重新加载防火墙规则,使新的端口规则生效:
-
验证端口是否已开放:
- 您可以运行以下命令来查看防火墙规则,确认82端口已成功开放:
sudo firewall-cmd --list-all
- 您可以运行以下命令来查看防火墙规则,确认82端口已成功开放:
通过执行以上步骤,可以在防火墙中添加规则以允许流量通过82端口。
[root@raw conf]# sudo firewall-cmd --zone=public --add-port=82/tcp --permanent
success
[root@raw conf]# sudo firewall-cmd --reload
success
[root@raw conf]# sudo firewall-cmd --list-all
public (active)
target: default
icmp-block-inversion: no
interfaces: ens192
sources:
services: cockpit dhcpv6-client ssh
ports: 82/tcp
protocols:
forward: no
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
[root@raw conf]#
然后成功
相关文章:
如何排查nginx服务启动情况,杀死端口,以及防火墙开放指定端口【linux与nginx排查手册】
利用NGINX搭建了视频服务,突然发现启动不了了,于是命令开始 使用以下命令查看更详细的错误信息: systemctl status nginx.service Warning: The unit file, source configuration file or drop-ins of nginx.service changed on disk. Run…...

用Rust实现免费调用ChatGPT的命令行工具 (一)
代码已经开源:🚀 fgpt 欢迎大家star⭐和fork 👏 ChatGPT现在免费提供了GPT3.5的Web访问,不需要注册就可以直接使用,但是,它的使用方式是通过Web页面,不够方便。 更多技术分享关注 入职啦&…...
mysql 查询实战1-题目
学习了mysql 查询实战-变量方式-解答-CSDN博客,接着练习sql,从实战中多练习。 1,题目: 1,查询部门工资最高的员工 1,建表: DROP TABLE IF EXISTS department; create table department(dept_i…...

Word学习笔记之奇偶页的页眉与页码设置
1. 常用格式 在毕业论文中,往往有一下要求: 奇数页右下角显示、偶数页左下角显示奇数页眉为每章标题、偶数页眉为论文标题 2. 问题解决 2.1 前期准备 首先,不论时要求 1、还是要求 2,这里我们都要做一下设置: 鼠…...

数据赋能(58)——要求:数据赋能实施部门能力
“要求:数据赋能实施部门能力”是作为标准的参考内容编写的。 在实施数据赋能中,数据赋能实施部门的能力体现在多个方面,关键能力如下图所示。 在实施数据赋能的过程中,数据赋能实施部门应具备的关键能力如下。 理性思维与逻辑分…...

Unity URP PBR_Cook-Torrance模型
Cook-Torrance模型是一个微表面光照模型,认为物体的表面可以看作是由许多个理想的镜面反射体微小平面组成的。 单点反射镜面反射漫反射占比*漫反射 漫反射 基础色/Π 镜面反射DFG/4(NV)(NL) D代表微平面分布函数,描述的是法线与半角向量normalize(L…...

Unity之XR Interaction Toolkit如何在VR中实现渐变黑屏效果
前言 做VR的时候,有时会有跳转场景,切换位置,切换环境,切换进度等等需求,此时相机的画面如果不切换个黑屏,总会感觉很突兀。刚好Unity的XR Interaction Toolkit插件在2.5.x版本,出了一个TunnelingVignette的效果,我们今天就来分析一下他是如何使用的,然后我们自己再来…...

html+vue编写分页功能
效果: html关键代码: <div class"ui-jqgrid-resize-mark" id"rs_mlist_table_C87E35BE"> </div><div class"list_component_pager ui-jqgrid-pager undefined" dir"ltr"><div id"pg…...

计算机网络 实验指导 实验17
实验17 配置无线网络实验 1.实验拓扑图 Table PC0 和 Table PC1 最开始可能还会连Access Point0,无影响后面会改 名称接口IP地址网关地址Router0fa0/0210.10.10.1fa0/1220.10.10.2Tablet PC0210.10.10.11Tablet PC1210.10.10.12Wireless互联网220.10.10.2LAN192.16…...
在 Vue中,v-for 指令的使用
在 Vue中,v-for 指令用于渲染一个列表,基于源数据多次渲染元素或模板块。它对于展示数组或对象中的数据特别有用。 数组渲染 假设你有一个数组,并且你想为每个数组元素渲染一个 <li> 标签: <template> <ul>…...
达梦数据库执行sql报错:数据溢出
数据库执行sql报错数据溢出 单独查询对应的数字进行计算是不是超过了某个字段类型的上限或下限 如果已经超过了,进行对字段进行cast类型转换处理,转换为dec num都可以尝试 这里就是从 max(T.BLOCK_ID as dec*8192t.bytes)/1024/1024 max_MB,换成了这个…...

从「宏大叙事」到「生活叙事」,小红书品牌种草的的“正确姿势”
不同于抖音和微博,在小红书上,品牌营销的基调应该是怎样的?品牌怎样与小红书用户对话?什么样的内容,才能走进小红书用户的心中?本期,小编将带大家洞察品牌在小红书营销的“正确姿势”。从「小美…...
Python Selenium 的基本使用方法
文章目录 1. 概述2. 安装Chrome及ChromeDriver2.1 安装Chrome2.2 安装ChromeDriver 3. 安装Selenium4. 常见用法4.1 启动4.2 查找元素4.3 等待页面加载元素 1. 概述 Selenium 是一个用于自动化 web 浏览器的工具,它提供了一套用于测试 web 应用程序的工具和库。Sel…...

上位机图像处理和嵌入式模块部署(树莓派4b固件功能设计)
【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 前面我们说过,上位机的功能都是基于插件进行开发的。但是上位机的成本比较贵,一般的企业不一定愿意接接受。这个时候另外一…...
新手入门人工智能:从零开始学习AI的正确途径
你是否对人工智能(AI)充满了好奇心和探索欲?你是否想了解如何从零开始学习AI,成为一名人工智能领域的专家?那么,这篇文章就是为你准备的!我们将带你了解人工智能的基本概念,学习如何…...
ubuntu git相关操作
1 安装git sudo apt install git git --version git version 2.25.1 2 解决git超时 2.1 扩大post的buffer git config --global http.postBuffer 524288000 git config --global http.postBuffer 157286400 2.2 换回HTTP1上传。上传之后再切换回HTTP2 …...

IDEA工具|添加 GitLab 账户之两三事
📫 作者简介:「六月暴雪飞梨花」,专注于研究Java,就职于科技型公司后端工程师 🏆 近期荣誉:华为云云享专家、阿里云专家博主、腾讯云优秀创作者、ACDU成员 🔥 三连支持:欢迎 ❤️关注…...
蓝桥杯:棋盘(Java)
目录 问题描述输入格式输出格式代码实现 问题描述 小蓝拥有n n大小的棋盘,一开始棋盘上全都是白子。小蓝进行了m.次操作,每次操作会将棋盘上某个范围内的所有棋子的颜色取反(也就是白色棋子变为黑色,黑色棋子变为白色)。请输出所…...

跨界融合:ERP与TMS的区分、相通之处、融合方式,全告诉你。
Hi,如今系统的边界越来越模糊,A系统和B系统会有一些功能的交叉,贝格前端工场今天开始介绍第二篇ERP和TMS的融合。 一、什么是ERP和TMS ERP是企业资源规划(Enterprise Resource Planning)的缩写,是一种集成…...
SAP Smartform转存PDF方法汇总
用户会有保存SF至本地PDF文件的需求,下面详细说明一下Smartform转成PDF的四种方法,其中,方法二和三相比于其他方法更便捷实用,如果还有其他方法,欢迎留言补充。 一、代码开发 1)先调用smartform函数获取OTF格式数据 2)后调用函数CONVERT_OTF转换成PDF格式数据 3)再…...

RocketMQ延迟消息机制
两种延迟消息 RocketMQ中提供了两种延迟消息机制 指定固定的延迟级别 通过在Message中设定一个MessageDelayLevel参数,对应18个预设的延迟级别指定时间点的延迟级别 通过在Message中设定一个DeliverTimeMS指定一个Long类型表示的具体时间点。到了时间点后…...
golang循环变量捕获问题
在 Go 语言中,当在循环中启动协程(goroutine)时,如果在协程闭包中直接引用循环变量,可能会遇到一个常见的陷阱 - 循环变量捕获问题。让我详细解释一下: 问题背景 看这个代码片段: fo…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...

【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...
基础测试工具使用经验
背景 vtune,perf, nsight system等基础测试工具,都是用过的,但是没有记录,都逐渐忘了。所以写这篇博客总结记录一下,只要以后发现新的用法,就记得来编辑补充一下 perf 比较基础的用法: 先改这…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
JVM暂停(Stop-The-World,STW)的原因分类及对应排查方案
JVM暂停(Stop-The-World,STW)的完整原因分类及对应排查方案,结合JVM运行机制和常见故障场景整理而成: 一、GC相关暂停 1. 安全点(Safepoint)阻塞 现象:JVM暂停但无GC日志,日志显示No GCs detected。原因:JVM等待所有线程进入安全点(如…...

什么是Ansible Jinja2
理解 Ansible Jinja2 模板 Ansible 是一款功能强大的开源自动化工具,可让您无缝地管理和配置系统。Ansible 的一大亮点是它使用 Jinja2 模板,允许您根据变量数据动态生成文件、配置设置和脚本。本文将向您介绍 Ansible 中的 Jinja2 模板,并通…...

智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...