如何排查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 systemd[1]: Starting nginx.service...

4月 18 11:31:03 raw.githubusercontent.com systemd[1]: 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\]#

相关推荐
JIngJaneIL5 分钟前
基于Java+ vue智慧医药系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
2501_9167665410 分钟前
【Spring框架】SpringJDBC
java·后端·spring
谷哥的小弟15 分钟前
Spring Framework源码解析——ApplicationContextInitializer
java·spring·源码
布谷歌18 分钟前
在java中实现c#的int.TryParse方法
java·开发语言·python·c#
while(1){yan}29 分钟前
网络基础知识
java·网络·青少年编程·面试·电脑常识
Ulana33 分钟前
计算机基础10大高频考题解析
java·人工智能·算法
黄俊懿40 分钟前
【深入理解SpringCloud微服务】Seata(AT模式)源码解析——@GlobalTransactional注解与@globalLock生效的原理
java·spring cloud·微服务·云原生·架构·系统架构·架构师
wheelmouse77881 小时前
一个优雅、通用、零侵入的 CSV 导出工具类(Java 实战)
java·开发语言
cike_y1 小时前
JavaWeb-Request应用与Cookie&[特殊字符]️Session
java·开发语言·安全·java安全
hashiqimiya1 小时前
两个步骤,打包war,tomcat使用war包
java·服务器·前端