Nginx安装、卸载教程(含Window、Linux版、Docker版)

article/2025/11/6 20:09:38

目录

一、下载

二、Linux版安装

2.1 编译安装之前

2.2 编译安装

2.3 启动Nginx

2.4 关于防火墙

2.5 安装成系统服务

三、Linux版卸载(彻底)

3.1 检查一下Nginx服务是否在运行

3.2 停止Nginx服务

3.3 查找、删除Nginx相关文件

3.4 再使用yum清理

四、Docker安装Nginx

五、如何通过nginx访问我们的项目


以Nginx开源版为例,进行演示

安装包下载地址:http://nginx.org/

一、下载

进入后下载对应的即可。下载速度还是很快的,本身文件就不大。下载完成直接解压就行。

至于windows版本的,直接双击运行nginx.exe文件即可启动

然后访问本机的80端口即可。

如果出现访问不了的情况,可以检查一下防火墙,或者以管理员权限运行。

window版本使用太简单了,这里一笔带过了。

二、Linux版安装

2.1 编译安装之前

  1. 将压缩包(nginx-1.21.6.tar.gz)放在任意指定的linux目录下,如/root

  2. 解压缩文件(解压到当前路径)

    tar -zxvf nginx-1.21.6.tar.gz

    备注:

    也可以解压缩到指定目录,比如

    tar -zxvf nginx-1.21.6.tar.gz -C /usr/local/nginx

    前提是/usr/local/nginx路径要存在,所以可以提前创建相应文件夹,比如在/usr/local目录下 mkdir nginx ,创建nginx文件夹

  3. 然后进入解压后的安装包中,准备编译安装

    cd /root/nginx-1.21.6

2.2 编译安装

编译安装到指定路径下,此路径不写也是默认安装到这里

./configure --prefix=/usr/local/nginx
make
make install

如果出现警告或报错

(一)提示

checking for OS
Linux 3.10.0-693.el7.x86_64 x86_64
​
checking for C compiler ... not found
​
​
./configure: error: C compiler cc is not found

安装gcc,c语言编译器

yum install -y gcc

-y 表示不提示直接进行安装

(二)提示

./configure: error: the HTTP rewrite module requires the PCRE library.
You can either disable the module by using --without-http_rewrite_module
option, or install the PCRE library into the system, or build the PCRE library
statically from the source with nginx by using --with-pcre=<path> option.

安装perl库

yum install -y pcre pcre-deve

(三)提示

./configure: error: the HTTP gzip module requires the zlib library.
You can either disable the module by using --without-http_gzip_module
option, or install the zlib library into the system, or build the zlib library
statically from the source with nginx by using --with-zlib=<path> option.

安装zlib库

yum install -y zlib zlib-devel

接下来再执行

make
make install

2.3 启动Nginx

进入安装好的目录 /usr/local/nginx/sbin,然后执行下面对应的方法即可启动、停止等

./nginx 			启动
./nginx -s stop 	快速停止
./nginx -s quit 	优雅关闭,在退出前完成已经接受的连接请求
./nginx -s reload   重新加载配置

2.4 关于防火墙

关闭防火墙

systemctl stop firewalld.service

禁止防火墙开机启动

systemctl disable firewalld.service

ok,这样就不用担心访问不到服务了。当然了,如果你不想关闭防火墙,也可以放行80端口,这样也能访问到nginx。 

放行端口

firewall-cmd --zone=public --add-port=80/tcp --permanent

重启防火墙

firewall-cmd --reload

2.5 安装成系统服务

每次重启系统或者停止Nginx后,如果要重启Nginx,需要进入Nginx的安装目录,执行对应的指令。这样做如果你觉得麻烦,也可以将Nginx配置环境变量,然后就可以再任意地方执行它的命令了。

或者还有一种方式,就是将Nginx安装成为Linux的系统服务。这样更简洁了。 

具体方法如下:

创建服务脚本,该路径下都是系统级的服务

vi /usr/lib/systemd/system/nginx.service

服务脚本内容:

[Unit]
Description=nginx - web server
After=network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/nginx/logs/nginx.pid
ExecStartPre=/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf
ExecStart=/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s stop
ExecQuit=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true[Install]
WantedBy=multi-user.target

重新加载系统服务

systemctl daemon-reload

这样就搞定了,然后我们可以通过systemctl命令来启动停止Nginx了。

启动服务

systemctl start nginx.service

开机自启动

systemctl enable nginx.service

三、Linux版卸载(彻底)

3.1 检查一下Nginx服务是否在运行

ps -ef | grep nginx

3.2 停止Nginx服务

/usr/sbin/nginx -s stop

查看端口占用情况:

netstat -lntp

3.3 查找、删除Nginx相关文件

whereis nginx

  查看Nginx相关文件:

 find查找相关文件

find / -name nginx 

依次删除find查找到的所有目录:

rm -rf /usr/sbin/nginx

3.4 再使用yum清理

yum remove nginx

ok Nginx 卸载完成!

四、Docker安装Nginx

其实学过Docker就很简单了

拉取nginx镜像,具体的版本好可以取dockerhub官网查看。不写版本号默认最新版本

docker pull nginx:1.22.1

运行一个nginx容器:

docker run --name some-nginx -d -p 8080:80 some-content-nginx

ok,这样就启动起来了。

但是,我们需要修改配置文件的话,还得进入容器内部,不太方便,所以我们一般会在运行容器的时候选择将容器内的一些目录挂载到宿主机上。

因为不同的docker容器,它的映射内部端口号、以及内部的结构这些,你不熟悉的话大概率是不知道的,所以最好的方法也是取dockerhub下面查看如何运行。

下面可以先停止掉当前容器并删除,然后我们重新进行挂在运行。

当然你也可以选择不删除(这里不演示此方法的后续操作)。

在运行之前记得先创建一下文件,否则直接生成会生成文件夹

touch /mydata/mynginx/conf/nginx.conf
docker run -d \
--name mynginx \
-p 80:80 \
-v /mydata/mynginx/html:/usr/share/nginx/html \
-v /mydata/mynginx/conf/nginx.conf:/etc/nginx/nginx.conf \
nginx:1.22.1

这个时候你发现根本无法访问,而且你通过docker ps命令发现容器根本没有启动起来。即使再docker start mynginx也无法启动

这是怎么回事呢?

其实这种问题很常见,原因就是:我们不是使用的后台运行命令嘛(-d),而要使用后台运行就必须有一个前台进程。因为没有前台进程,所以就会自动停止。

那为什么会没有前台进程呢?其实就是因为我们选择将容器内部的文件挂载出来,导致了容器内部没有了该文件。

所以我们需要在宿主机的挂在路径上添加上对应的文件。这个文件你可以去官网下载对应的压缩包,然后解压出来,然后上传到服务器对应的挂在目录即可。

然后我们再docker start mynginx即可运行成功。

但是可能报错404,原因是我们一股脑的直接复制过来了。没有修改配置文件。

因为nginx.conf配置文件中80端口下的资源路径root根目录写的是相对位置的html。

由于挂载的原因,导致可能无法识别,所以一定要写容器内部nginx是全路径。

不能写宿主机的挂载路径。因为我们nginx是按照在容器的,这些配置都是在容器中的。server_name为localhost表示的是容器的位置,不上宿主机的位置。

只不过我们启动容器的时候将它映射到宿主机的端口了而已。

 

 

五、如何通过nginx访问我们的项目

其实要懂这部分,最好是系统学习Nginx。

我们还是像之前一样通过docker的方式运行我们的web项目

至于怎么将web项目做成docker镜像可以去看docker镜像相关的讲解笔记。这里不详细阐述。

或者我们直接将打包好的jar包丢到服务器上,然后直接java -jar的方式运行也是可以的。

比如这里我们就生成好了一个springboot项目的docker容器并且启动运行了。对外暴露的端口是3800。

我们通过3800端口即可访问到该项目。实际在公网服务器中,我们是需要开放3800端口才可以访问到的。虚拟机中也一样,这里我们是关闭了防火墙。所以任何端口都能开放。

我们使用了nginx,目的就是希望访问都打到nginx服务器上,通过nginx反向代理到我们的服务器地址3800,以达到更好的访问效果。所以实际开发中,并不会暴露真实的后端接口。

下面开整,核心就在配置文件。我将原本注释的直接删掉了。

worker_processes  2;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;sendfile        on;keepalive_timeout  65;server {listen       80;server_name  localhost;location / {proxy_pass http://192.168.17.110:3800;}}
}

 

 

 

 


http://chatgpt.dhexx.cn/article/4X5jmy45.shtml

相关文章

Nginx卸载

1.首先输入命令 ps -ef | grep nginx检查一下nginx服务是否在运行。 [rootlocalhost /]# ps -ef |grep nginx root 3163 2643 0 14:08 tty1 00:00:00 man nginx root 5427 1 0 14:50 ? 00:00:00 nginx: master process nginx nginx 542…

完全卸载nginx及安装的详细步骤

前言 在开局配置Nginx时有可能会配置错误&#xff0c;报各种错误代码。看不懂或者懒得去看这个报错时&#xff0c;其实最简单的方式是卸载并重装咯。今天就带大家一起学习下&#xff0c;如何彻底卸载nginx程序。 一、卸载NGINX 卸载nginx程序的详细步骤 1、停止Nginx软件 …

【Nginx】彻底卸载Nginx以及安装Nginx的详细教程

今天尚硅谷出了新版的Nginx教程&#xff0c;感觉之前的教程有点浅所以我决定再看一遍&#xff0c;然后开始看之前要把之前的Nginx卸载掉。在安装教程对应版本的Nginx&#xff0c;这样看教程的时候错误可能会少一点。 目录 一、卸载Nginx 1、检查一下nginx服务是否在运行 2、…

三点求圆算法

圆的一般方程&#xff0c; 三个点确定三条方程&#xff0c;为了求出四个未知数再写一个在圆上的点凑成行列式 由克拉默法则得&#xff0c;齐次方程有非零解&#xff0c;那么行列式为零&#xff1a; 把行列式按第一行展开后可以得出 这个行列式怎么算就不说了。

通过点拟合圆

通过点拟合圆 三点确定一个圆多点拟合一个圆 三点确定一个圆 参考代码: matlab空间三点求圆心 代码中使用的算法原理是&#xff1a;三个点确定两个线段&#xff0c;圆心位于两个线段的中垂线上&#xff0c;所以圆心坐标符合两个中垂线的性质&#xff0c;具体推导如下&#xff…

如何判断点是否在圆弧上

如何判断点是否在圆弧上 已知一个圆弧三点&#xff0c;A(起点)&#xff0c;B(中点)&#xff0c;C(结束点)。 可以求出圆心、半径 红色的分别是圆上的起点、中点、结束点。 1、首先判断圆心到某点P的距离&#xff0c;是否等于半径。 如果不等于半径&#xff0c;则不在圆上…

空间三点确定圆心坐标及半径

问题&#xff1a; 已知空间三点坐标&#xff1a; P 1 ( x 1 , y 1 , z 1 ) P_{1}(x_{1}, y_{1} ,z_{1}) P1​(x1​,y1​,z1​) P 2 ( x 2 , y 2 , z 2 ) P_{2}(x_{2}, y_{2} ,z_{2}) P2​(x2​,y2​,z2​) P 3 ( x 3 , y 3 , z 3 ) P_{3}(x_{3}, y_{3} ,z_{3}) P3​(x3​,y…

空间三点定圆的解算过程

记得去年在上海船厂期间一次员工要我们检测一个圆形构件&#xff0c;用全站仪在一圆形构件的同一高度上测得三个点&#xff0c;然后算出构件的圆心坐标和半径&#xff0c;数学模型如下&#xff1a; 已知空间三点的坐标为&#xff08;x1,y1,z1&#xff09;,(x2,y2,z2),(x3,y3,z3…

三点定圆推导公式

不共线的三个点可以确定一个圆。 下图是用Graph画的一个很粗糙的图片用于方便理解。 紫色的线分别为AB的中垂线和AC的中垂线。 两个中垂线的交点就是圆心。 圆心到三个点的距离都相等。 推导公式 参考博客&#xff1a;三点确定一个圆的计算方法 设圆心坐标O为 ( x 0 , y …

空间3点求三点所在空间圆的圆心空间坐标

参考:http://blog.sina.com.cn/s/blog_648868460100h2b8.html(这个博主还有很多关于工程测量的知识和空间几何计算的知识) 已知空间三点的坐标为(x1,y1,z1),(x2,y2,z2),(x3,y3,z3),求这三个点所确定的空间圆的圆心坐标和半径。 分析可得约束条件:1、三点共面2、三点到空…

三点定圆(弧)

在计算机图形编程或数控加工编程中&#xff0c;通常需要通过给定的三点来确定一个圆弧&#xff0c;也就是要得到圆弧的半径、圆心&#xff0c;以及判断圆弧的方向 如图所示&#xff0c; 为给定的三点&#xff0c;连接AB 和BC &#xff0c;分别作AB 和BC 的中垂线&#xff0c;…

已知三点求圆心和半径

https://blog.csdn.net/youhuakongzhi/article/details/86474619 https://blog.csdn.net/qq_43572555/article/details/103470968 很简单的推导&#xff0c;以后用的时候就不用浪费时间了&#xff0c; 圆的一般方程为&#xff1a; 三个已知点为(x1,y1) (x2,y2) (x3,y3) …

由三个点的坐标确定圆和球的圆心和半径

利用三个平面或者空间的点位坐标可以求出该平面圆或者球的圆心或者球心和半径 import numpy as np from numpy.linalg import det # 由圆上三点确定圆心和半径# INPUT # p1 : - 第一个点坐标, list或者array 1x3 # p2 : - 第二个点坐标, list或者array 1x3 # p3 : - 第…

三个点坐标求解一个圆

clear all; clc; close all; %已知随bai便三点&#xff0c;不在同一条du直线上zhi的三点确定一个圆&#xff1f; A1[0 0.05]; A2[0.01 0.06]; A3[0 0.07]; %求圆心坐dao标zhuan A[A1-A2;A2-A3]; B([sum(A1.^2-A2.^2); sum(A2.^2-A3.^2)])/2; if det(A)~0 O(A\B);%O[x y]是圆心坐…

三点确定圆的半径_51CAE_新浪博客

近日通过CAE软件分析弹性体折叠过程中的半径变化趋势&#xff0c;已经从分析结果文件中提取了弯折区域三点的运动轨迹&#xff0c;设想将弯折区域近似为圆弧并通过三点计算得出圆的半径。经网上查找一翻&#xff0c;发现一篇博客有比较详细的计算公式&#xff0c;由于不能直接转…

圆弧方向判断方法和三点确定一个圆的计算方法

圆弧方向判断方法设p1(x1,y1) p2(x2,y2) p3(x3,y3) 求向量 p12(x2-x1,y2-y1) p23(x3-x2,y3-y2) 则当 p12与p23的叉乘&#xff08;向量积&#xff09; p12 x p23 (x2-x1)*(y3-y2)-(y2-y1)*(x3-x2) 为正时&#xff0c;p1-p2-p3 路径的走向为逆时针&a…

判断一个点是否在圆内(三点确定一个圆)

三角形的外接圆圆心是任意两边的垂直平分线的交点。 三角形外接圆圆心叫外心。 /// <summary>/// Returns true if the point (p) lies inside the circumcircle made up by points (p1,p2,p3)/// </summary>/// <remarks>/// NOTE: A point on the edge is …

三个点确定一个圆

首先假设圆心为(x0, y0)&#xff0c;半径为r。则这个圆可以表示为&#xff1a; (x−x0)2(y−y0)2r2​ 假设知道的三个点为(x1, y1)&#xff0c;(x2,y2)&#xff0c;(x3,y3)。那么&#xff1a; (x1−x0)2(y1−y0)2r2 (x2−x0)2(y2−y0)2r2 (x3−x0)2(y3−y0)2r2 消去 r2 后变成 …

三点确定一个圆的计算方法

最近在看recast&detour源码的时候有遇到许多数学上的算法问题&#xff0c;特此记录&#xff0c;以便以后查看。 推导过程 问题&#xff1a; 求点p1 p2 p3三点确定的圆的 圆心c 和 半径r 。 思路&#xff1a; 为了方便求解&#xff0c;将坐标系原点平移到p1点。 即新的…

三点确定一个圆(Apple HDU - 6206)(计算几何+高精度)

传送门 三点确定一个圆的计算方法 设一个圆的圆心坐标为(x0,y)&#xff0c;半径为r。那么这个圆的方程可以写成 (x-x0)^2(y-y0)^2r^2 在这个圆上随便取三个点&#xff0c;设这三个点的坐标分别为(x1,y1),(x2,y2),(x3,y3)。那么有 公式(1)(2)相减&#xff0c;(1)(3)相减经过…