如何排查nginx服务启动情况,杀死端口,以及防火墙开放指定端口【linux与nginx排查手册】

利用NGINX搭建了视频服务,突然发现启动不了了,于是命令开始

  1. 使用以下命令查看更详细的错误信息:
    *

    复制代码
      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 ago

    4月 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)上。可以按照以下步骤解决这个问题:

  1. 查找占用端口的进程:

    • 使用以下命令查找占用端口 8090 和 82 的进程:

      复制代码
      sudo netstat -tuln | grep ':8090\|:82'
  2. 停止占用端口的进程:

    • 根据上一步的输出,找到占用端口的进程,并停止它们,可以使用以下命令杀死占用端口 8090 的进程(假设 PID 为 XXX):

      复制代码
      sudo kill XXX
  3. 修改 Nginx 配置文件:

    • 如果需要修改 Nginx 配置文件中监听的端口,可以编辑 Nginx 配置文件(通常在 /usr/local/nginx/conf/nginx.conf)并将监听端口修改为未被占用的端口,例如 8080。
  4. 重新加载 Nginx 配置并启动服务:

    • 保存修改后的配置文件,然后重新加载 Nginx 配置并尝试启动 Nginx 服务:

      复制代码
      sudo /usr/local/nginx/sbin/nginx -s reload
  5. 再次检查 Nginx 服务状态:

    • 使用以下命令再次检查 Nginx 服务的状态:

      复制代码
      systemctl status 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 process

4月 18 11:31:03 raw.githubusercontent.com systemd1: Starting nginx.service...

4月 18 11:31:03 raw.githubusercontent.com systemd1: Started nginx.service.

外界还看不到视频的话,那就是防火墙拦截了,再开启端口:

要开放特定端口(例如82端口),您可以按照以下步骤在防火墙中添加规则以允许流量通过该端口:

  1. 使用 firewall-cmd 命令添加端口规则:

    • 执行以下命令以永久性地开放82端口: txt

      复制代码
      sudo firewall-cmd --zone=public --add-port=82/tcp --permanent
  2. 重新加载防火墙规则:

    • 执行以下命令以重新加载防火墙规则,使新的端口规则生效:

      复制代码
      sudo firewall-cmd --reload
  3. 验证端口是否已开放:

    • 您可以运行以下命令来查看防火墙规则,确认82端口已成功开放:

      复制代码
      sudo firewall-cmd --list-all

通过执行以上步骤,可以在防火墙中添加规则以允许流量通过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#

然后成功

相关推荐
wuminyu5 分钟前
Java FFM处理网络读写事件源码剖析
java·linux·c语言·jvm·c++
计算机魔术师8 分钟前
我把这套 Notebook 跑通后,终于搞懂了 RAG 到底在做什么
前端
计算机魔术师13 分钟前
失控AI集群策划数月后成功逃离OpenAI
前端
Eiceblue14 分钟前
React 项目实战:用 JavaScript 合并多个本地 Excel 文件
前端·javascript·react.js·excel
小江的记录本16 分钟前
【AI Agent】《2026年9月 AI Agent全栈开发技术选型专项面试宝典》
java·spring boot·python·spring·ai·面试·ai编程
水上冰石28 分钟前
【MuJoCo从入门到精通】第2章 第一个 MuJoCo 仿真
前端·人工智能·算法
梦梦代码精1 小时前
《LikeShop全产品技术硬核拆解:ThinkPHP8+Vue3+UniApp架构,私有化部署与二次开发实战指南》
java·低代码·系统架构·php·开源软件
一木 之林1 小时前
C/C++ 面向对象编程(OOP)(进阶)
java·c语言·c++
摇滚侠1 小时前
《SpringBoot 3:入门与应用实战》第 9 章 使用 WebMvc 开发应用 阅读笔记 2
java·spring boot·笔记