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 端口上,可尝试查询端口占用进程并终止该进程。
三、端口占用问题
分析问题
两个命令的作用如下:
netstat -tuln | grep LISTEN:
netstat:用于显示网络连接、路由表、接口统计等信息。-t:显示 TCP 连接。-u:显示 UDP 连接。-l:仅显示监听状态的端口。-n:以数字形式显示地址和端口号,而不是尝试解析主机名。| grep LISTEN:将netstat的输出通过管道传输给grep,过滤出只包含“LISTEN”的行,表示当前正在监听的端口。这个命令的目的是查看系统中哪些端口处于监听状态,以便确认 Nginx 是否已正确绑定到预期的端口(例如 80 或 443)。
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 文件。这个错误通常是由于网络连接问题、访问受限或路径配置错误导致的。让我们一步步分析并解决这个问题。 可能原因及解决方案: 网络连接问题…...
补码加/减运算的具体示例
补码加法运算示例 示例:计算两个十进制数的和,35 18,假设使用8位二进制表示。 1、求原码: 35的原码:00100011 18的原码:00010010 2、求补码(对于正数,补码与原码相同࿰…...
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,缩写…...
376. Wiggle Subsequence
376. Wiggle Subsequence 代码 class Solution { public:int wiggleMaxLength(vector<int>& nums) {int n nums.size();int res 1;int prediff 0;int curdiff 0;for(int i 0;i < n-1;i){curdiff nums[i1] - nums[i];if( (prediff > 0 && curdif…...
基于 TAPD 进行项目管理
起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
Selenium常用函数介绍
目录 一,元素定位 1.1 cssSeector 1.2 xpath 二,操作测试对象 三,窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四,弹窗 五,等待 六,导航 七,文件上传 …...
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 …...
jmeter聚合报告中参数详解
sample、average、min、max、90%line、95%line,99%line、Error错误率、吞吐量Thoughput、KB/sec每秒传输的数据量 sample(样本数) 表示测试中发送的请求数量,即测试执行了多少次请求。 单位,以个或者次数表示。 示例:…...
Linux系统部署KES
1、安装准备 1.版本说明V008R006C009B0014 V008:是version产品的大版本。 R006:是release产品特性版本。 C009:是通用版 B0014:是build开发过程中的构建版本2.硬件要求 #安全版和企业版 内存:1GB 以上 硬盘…...
Oracle11g安装包
Oracle 11g安装包 适用于windows系统,64位 下载路径 oracle 11g 安装包...
论文阅读:Matting by Generation
今天介绍一篇关于 matting 抠图的文章,抠图也算是计算机视觉里面非常经典的一个任务了。从早期的经典算法到如今的深度学习算法,已经有很多的工作和这个任务相关。这两年 diffusion 模型很火,大家又开始用 diffusion 模型做各种 CV 任务了&am…...
绕过 Xcode?使用 Appuploader和主流工具实现 iOS 上架自动化
iOS 应用的发布流程一直是开发链路中最“苹果味”的环节:强依赖 Xcode、必须使用 macOS、各种证书和描述文件配置……对很多跨平台开发者来说,这一套流程并不友好。 特别是当你的项目主要在 Windows 或 Linux 下开发(例如 Flutter、React Na…...
