如何排查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#

然后成功

相关推荐
架构技术专栏4 小时前
Agent 工具调用:从工具声明到执行反馈
前端·人工智能·后端
别动我齐刘海4 小时前
C++ 工程化学习
java·linux·前端·c++·学习·机器学习·机器人
志尊宝5 小时前
Vue3 零基础每日笔记(071):暗黑模式与主题切换——CSS 变量 + Element Plus 暗黑方案
前端·css·笔记·vue·html·前端开发·软件开发
code2cat5 小时前
Java进阶篇之AtomicLongFieldUpdater:把累计额度留在对象字段中
java·cas·并发编程
WeiXin_DZbishe5 小时前
基于springboot城市公交实时运营与调度系统-计算机毕设 附源码【课程设计】66173
java·vue.js·spring boot·后端·python·php·课程设计
泡茶喝茶写代码6 小时前
A股量化数据工程:从 REST 接口到策略信号(第 18 篇):放量缩量异动扫描
java·python·股票数据api·股票数据api接口·股票api数据接口·股票量化数据api·股票量化数据接口
刘发财6 小时前
前端如何生成10000页PDF文件?
前端·javascript·开源
wewowilling6 小时前
认识微服务
java·运维·微服务·springcloud
A接拉起0076 小时前
2026 年 JavaScript 开发者需要了解的知识
前端·javascript·后端