当前位置: 首页 > news >正文

ubutun nginx 安装和解决端口占用问题

目录

一、删除已有nginx

二、安装nginx

三、端口占用问题

分析问题

解决方法:更换默认端口


nginx是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务。是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强。

一、删除已有nginx

1)使用下列命令,来查找nginx的安装路径,

find / -name nginx 这个命令的作用是从根目录 / 开始,搜索系统中的所有文件和目录,查找名称为 nginx 的文件或目录。具体解释如下:

  • find:Linux 命令,用于在文件系统中搜索文件和目录。
  • /:指定从根目录开始搜索。
  • -name nginx:表示查找名称完全匹配 nginx 的文件或目录。

注意事项:

  • 由于从根目录开始搜索,这个命令可能需要一定的时间来完成,具体取决于文件系统的大小和复杂度。
  • 运行这个命令可能需要管理员权限(例如使用 sudo),以便能够访问所有目录。

如果你想查找与 nginx 相关的配置文件或执行文件,建议在找到后查看它们的路径,以便确认 Nginx 的安装和配置位置。

find / -name nginx

2)查找之后,对这些路径进行删除, 

rm -rf /etc/nginx/
rm -rf /usr/local/nginx
rm -rf /etc/default/nginx/
rm -rf /root/nginx-1.20.2/objs/nginx

3)删除之后,再通过下列命令查看一下是不是已经删除nginx 了。

which nginx 这个命令用于查找并显示当前系统中 nginx 可执行文件的路径。具体解释如下:

  • which:这是一个命令行工具,用于定位可执行文件的路径。
  • nginx:要查找的命令或程序的名称。

结果:

执行 which nginx 后,如果 nginx 已正确安装并在系统的 $PATH 环境变量中,系统将返回 nginx 可执行文件的完整路径,例如 /usr/sbin/nginx/usr/bin/nginx。如果没有找到,系统将不会返回任何内容。

这个命令很有用,可以帮助你确认 Nginx 是否已安装以及它的安装位置。

which nginx

 可以看到,nginx已经成功删除了。

二、安装nginx

1)本地浏览器打开下载地址Index of /download/,然后下载安装包,我下载的是1.20.2,

下载之后,上传到服务器上,使用命令解压缩,

tar -zxvf nginx-1.20.2.tar.gz

2)进入安装路径nginx-1.20.2/下,

./configure --prefix=/usr/local/nginx --with-http_ssl_module

3)执行编译命令,

make

编译完成: 

然后执行安装命令,

make install

查看是否安装成功:

4)安装完成之后,使用以下命令启用和启动Nginx服务,

systemctl start nginx
systemctl status nginx

然后查看NFS服务状态,如下所示: 

如果一切正常,输出应该是“Active: active (running)”或者类似的信息。

⚠️⚠️⚠️若发现以上错误,这是因为 80 端口已经被其他进行占用导致 Nginx 无法绑定到 80 端口上,可尝试查询端口占用进程并终止该进程。

三、端口占用问题

分析问题

两个命令的作用如下:

  1. netstat -tuln | grep LISTEN

    • netstat:用于显示网络连接、路由表、接口统计等信息。
    • -t:显示 TCP 连接。
    • -u:显示 UDP 连接。
    • -l:仅显示监听状态的端口。
    • -n:以数字形式显示地址和端口号,而不是尝试解析主机名。
    • | grep LISTEN:将 netstat 的输出通过管道传输给 grep,过滤出只包含“LISTEN”的行,表示当前正在监听的端口。

    这个命令的目的是查看系统中哪些端口处于监听状态,以便确认 Nginx 是否已正确绑定到预期的端口(例如 80 或 443)。

  2. ps aux | grep nginx

    • ps aux:列出系统上所有的进程及其详细信息。
      • a:显示所有用户的进程。
      • u:以用户格式显示。
      • x:显示没有控制终端的进程。
    • | grep nginx:通过管道过滤出包含“nginx”字符串的进程信息。

    这个命令的目的是检查 Nginx 进程是否在运行,以及它的相关信息(如进程 ID、CPU 和内存使用情况等)。

这两个命令通常用于排查服务的运行状态和端口占用情况。

1)使用下列命令,来查看系统中哪些端口处于监听状态,以便确认 Nginx 是否已正确绑定到预期的端口(例如 80 或 443)。

netstat -tuln | grep LISTEN

2) 检查 Nginx 进程是否在运行,以及它的相关信息(如进程 ID、CPU 和内存使用情况等)。

ps aux | grep nginx

可以看到,nginx确实没有成功启动,而且也能看到,80端口确实是被占用了。 

解决方法:更换默认端口

1)查看nginx的安装路径,

whereis nginx

2)进入到这个路径下,通过vim命令查看conf文件夹下的nginx.conf配置文件,

cd  /usr/local/nginx
vim ./conf/nginx.conf

可以看到,默认nginx的监听端口是80,此处我改成了8022, 

3)保存文件并退出,然后使用下列命令,重新加载nginx,

./nginx
./nginx -s reload

通过netstat命令可以看到,目前nginx在监听8022端口,

netstat -ntlp

并且,本地浏览器中输入“ip:8022”(此处你把80端口改成了什么就是什么,我改成了8022),就可以看到如下界面,

说明nginx已经正常启动了。

相关文章:

ubutun nginx 安装和解决端口占用问题

目录 一、删除已有nginx 二、安装nginx 三、端口占用问题 分析问题 解决方法:更换默认端口 nginx是一个高性能的 HTTP 和反向代理 web 服务器,同时也提供了 IMAP/POP3/SMTP 服务。是一款轻量级的 Web 服务器/反向代理服务器及电子邮件(I…...

螺蛳壳里做道场:老破机搭建的私人数据中心---Centos下Docker学习01(环境准备)

1 准备工作 由于创建数据中心需要安装很多服务器,这些服务器要耗费很所物理物理计算资源、存储资源、网络资源和软件资源,作为穷学生只有几百块的n手笔记本,不可能买十几台服务器来搭建数据中心,也不愿意跑实验室,想躺…...

解决:使用layui.treeTable.updateNode,更新表格数据后,done里面的事件丢失问题

1. 背景 在给树形表格添加行点击事件,并且只更新当前行数据。 treeTable.updateNode("SpeProjListId", result.LAY_DATA_INDEX, result);更新数据后,点击事件失效。 1. 给字段绑定事件: class"link_a link_style" , {…...

【Linux】环境变量(初步认识环境变量)

文章目录 1. 环境变量1.1 基本概念 2. 认识常见环境变量2.1 PATH2.2 HOME2.3 SHELL2.4 PWD2.5 USER 3. 理解环境变量 1. 环境变量 在main函数的命令行参数中,有argc、argv、env三个参数。 argc:命令行参数的个数argc:存放每个参数的具体数值…...

79. 单词搜索

思路 每次以当前位置为初始位置开始遍历,看是否找到单词 (以官方题解做出) v:代表等于work[k]且已走过的位置 d:四个方向 回溯(遍历): 匹配不上:终止 找到了:终止(先…...

[单master节点k8s部署]28.Istio流量管理(四)

金丝雀发布实验 部署两个pod,他们分别是canary-v1和canary-v2。 随后进行service的部署: apiVersion: v1 kind: Service metadata:name: canary-svc34namespace: default spec:selector:apply: canaryports:- port: 80protocol: TCPtargetPort: 80进行…...

Windows 11 安装配置 Git 教程

目录 Git Windows 11 环境安装配置 Git Git Git是一个开源的分布式版本控制系统,由Linus Torvalds创建,用于有效、高速地处理从小到大的项目版本管理。Git是目前世界上最流行的版本控制系统,广泛应用于软件开发中。 以下是Git的一些关键特…...

Go基础学习11-测试工具gomock和monkey的使用

文章目录 基础回顾MockMock是什么安装gomockMock使用1. 创建user.go源文件2. 使用mockgen生成对应的Mock文件3. 使用mockgen命令生成后在对应包mock下可以查看生成的mock文件4. 编写测试代码5. 运行代码并查看输出 GomonkeyGomonkey优势安装使用对函数进行monkey对结构体中方法…...

PHP基础教程

PHP基础教程 1. PHP简介 PHP是一种广泛使用的开源服务器端脚本语言,它特别适用于网页开发,并可嵌入到HTML中使用。 2. PHP环境搭建 Windows: 可以使用XAMPP或WAMP。Mac: 可以使用MAMP。Linux: 可以使用XAMPP或LAMP。 3. 第一个PHP程序 创建一个名为…...

Python或R时偏移算法实现

🎯要点 计算单变量或多变量时序距离,使用欧几里得、曼哈顿等函数量化不同时序差异。量化生成时序之间接近度相似性矩阵。使用高尔距离和堪培拉距离等相似度测量。实现最小方差匹配算法,绘制步进模式的图形表示。其他语言包算法实现。 &…...

华为云LTS日志上报至观测云最佳实践

华为云LTS简介 华为云云日志服务(Log Tank Service,简称 LTS),用于收集来自主机和云服务的日志数据,通过海量日志数据的分析与处理,可以将云服务和应用程序的可用性和性能最大化,为您提供实时、…...

Python--加载Hugging Face模型文件异常处理

尝试加载 Hugging Face 模型的配置文件时,无法从 https://huggingface.co 获取所需的 config.json 文件。这个错误通常是由于网络连接问题、访问受限或路径配置错误导致的。让我们一步步分析并解决这个问题。 可能原因及解决方案: 网络连接问题&#xf…...

补码加/减运算的具体示例

补码加法运算示例 示例:计算两个十进制数的和,35 18,假设使用8位二进制表示。 1、求原码: 35的原码:00100011 18的原码:00010010 2、求补码(对于正数,补码与原码相同&#xff0…...

macOS编译和运行prometheus2.54

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文详述了在macOS(M2芯片)上编译和运行prometheus2.54版本的过程,以及安装node_exporter和grafana并使用prometheus指标进行展示 本地…...

flume系列之:flume jmx页面导出flume、java进程等全部指标

flume系列之:flume jmx页面导出flume、java进程等全部指标 一、需求背景二、完整的jmx指标信息三、修改jmx指标导出规则四、启动jmx导出程序一、需求背景 目前jmx页面指标只导出了flume相关的指标,现在需要导出java相关的指标二、完整的jmx指标信息 主要有flume指标java进程指…...

(17)MATLAB使用伽马(gamma)分布生成Nakagami-m分布的方法1

文章目录 前言一、使用伽马分布生成Nakagami分布随机变量的方法一二、MATLAB仿真代码后续 前言 MATLAB在R2013a版本中引入Nakagami分布对象,可以用来生成Nakagami随机变量。但是在更早的MATLAB版本中,并没有可以直接生成 Nakagami分布的随机变量的内置的…...

NFT 是什么?

NFT 是什么? NFT,全称Non-Fungible Token,即“非同质化代币”,是一种基于区块链技术的独特数字资产。NFT的核心特性在于其唯一性、不可分割性和不可替代性,这使其与传统的加密货币(如比特币、以太坊等)形成了鲜明的对比。比特币等加密货币是同质化的,每个单位之间可以…...

mysql的学习

垂直连接union join是水平连接,UNION 是垂直连接,它是把两张表的结果集按列堆叠,行数增加了,但列数保持不变。 UNION 垂直连接的作用 在 MySQL 中,UNION 可以将两个具有相同列数且列数据类型兼容的查询结果合并在一…...

微服务之间的相互调用的几种常见实现方式对比

目录 微服务之间的相互调用的几种实现方式 一、HTTP HTTP/RESTful API调用工作原理 二、RPC 设计理念与实现方式 协议与传输层 RPC远程调用工作原理 应用场景与性能考量 特点 三、Feign 设计理念与实现方式 协议与传输层 Feign调用的基本流程 Feign调用的工作原理…...

FPGA时序分析和约束学习笔记-(1、FPGA基本原理)

FPGA时序分析和约束学习笔记-(1、FPGA基本原理) Field现场Programmable可编程Gate门Array阵列 1、FPGA基本资源组成 可编程逻辑功能块(logic elements ,缩写LE) 片内互联线(interconnect,缩写…...

微信小程序之bind和catch

这两个呢,都是绑定事件用的,具体使用有些小区别。 官方文档: 事件冒泡处理不同 bind:绑定的事件会向上冒泡,即触发当前组件的事件后,还会继续触发父组件的相同事件。例如,有一个子视图绑定了b…...

React Native在HarmonyOS 5.0阅读类应用开发中的实践

一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...

Golang dig框架与GraphQL的完美结合

将 Go 的 Dig 依赖注入框架与 GraphQL 结合使用,可以显著提升应用程序的可维护性、可测试性以及灵活性。 Dig 是一个强大的依赖注入容器,能够帮助开发者更好地管理复杂的依赖关系,而 GraphQL 则是一种用于 API 的查询语言,能够提…...

HTML前端开发:JavaScript 常用事件详解

作为前端开发的核心,JavaScript 事件是用户与网页交互的基础。以下是常见事件的详细说明和用法示例: 1. onclick - 点击事件 当元素被单击时触发(左键点击) button.onclick function() {alert("按钮被点击了!&…...

深入解析C++中的extern关键字:跨文件共享变量与函数的终极指南

🚀 C extern 关键字深度解析:跨文件编程的终极指南 📅 更新时间:2025年6月5日 🏷️ 标签:C | extern关键字 | 多文件编程 | 链接与声明 | 现代C 文章目录 前言🔥一、extern 是什么?&…...

SpringTask-03.入门案例

一.入门案例 启动类: package com.sky;import lombok.extern.slf4j.Slf4j; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cache.annotation.EnableCach…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学?传统医学奠基期(远古 - 17 世纪)近代医学转型期(17 世纪 - 19 世纪末)​现代医学成熟期(20世纪至今) 中医的源远流长和一脉相承远古至…...

【电力电子】基于STM32F103C8T6单片机双极性SPWM逆变(硬件篇)

本项目是基于 STM32F103C8T6 微控制器的 SPWM(正弦脉宽调制)电源模块,能够生成可调频率和幅值的正弦波交流电源输出。该项目适用于逆变器、UPS电源、变频器等应用场景。 供电电源 输入电压采集 上图为本设计的电源电路,图中 D1 为二极管, 其目的是防止正负极电源反接, …...

Netty从入门到进阶(二)

二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架,用于…...

uniapp 开发ios, xcode 提交app store connect 和 testflight内测

uniapp 中配置 配置manifest 文档:manifest.json 应用配置 | uni-app官网 hbuilderx中本地打包 下载IOS最新SDK 开发环境 | uni小程序SDK hbulderx 版本号:4.66 对应的sdk版本 4.66 两者必须一致 本地打包的资源导入到SDK 导入资源 | uni小程序SDK …...