nginx服务器安装和部署代理

news/2024/10/4 11:30:56/文章来源:https://blog.csdn.net/ngczx/article/details/142318030

文章目录

Linux下面安装nginx

nginx下载官网: [nginx: download](https://nginx.org/en/download.html)

使用yum命令安装gcc环境

yum install -y wget gcc-c++ pcre-devel zlib-devel openssl-devel//安装多个环境 wget gcc  pcre-devel 支持正则表达式  zlib-devel提供了压缩和解压缩的功能openssl-devel 提供了SLL/TLS加密功能,用于网络通信和加密操作

通过wget下载linux版本下面的nginx服务器

wget https://nginx.org/download/nginx-1.26.2.tar.gz //下载压缩包 

解压缩

tar -zxvf nginx-1.24.0.tar.gz  //解压
-z:解压缩使用 gzip 进行压缩的文件。
-x:提取归档文件中的内容。
-v:在提取过程中显示文件名,提供详细的处理信息。
-f:指定归档文件的名称。
执行此命令后,归档中的文件和目录将被解压缩到当前目录。
cd nginx-1.24.0  进入到nginx中
创建nginx的目录 mkdir -p /usr/local/nginx
配置nginx的目录
./configure    --prefix=/usr/local/nginx编译并安装make && make install./configure:这是一个用于配置 Nginx 编译选项的脚本。它检查系统环境,并生成一个适合你系统的 Makefile 文件。
--prefix=/usr/local/nginx:指定 Nginx 的安装目录。所有的 Nginx 文件将安装到 /usr/local/nginx 目录中。make:编译 Nginx 源代码。make 命令会根据 configure 生成的 Makefile 文件编译源代码,生成可执行文件和其他必要的文件。
&&:逻辑与操作符,用于将两个命令串联在一起。如果第一个命令(make)成功执行,才会执行第二个命令(make install)。
make install:安装编译后的 Nginx 文件到指定的目录(由 --prefix 选项指定的目录)。它将编译生成的文件复制到 /usr/local/nginx 目录中。

nginx项目结构

![](https://img-blog.csdnimg.cn/img_convert/f9f708ffafd0491a28f945a748b5f742.png)

配置文件、html静态文件、logs日志记录、sbin/nginx 二进制文件,用来启动和停止nginx服务。

nginx的目录结构,通过tree命令来展示。

nginx常用命令:

查看nginx的版本号:
./nginx -v

检查配置文件的正确性

./nginx -t //检验nginx文件是否配置正确

启动nginx

./nginx  访问服务器的地址,ok 启动了nginx的进程

查看nginx的进程

ps -ef | grep nginx

关于防火墙,nginx需要关闭系统的防火墙

# 查看防火墙状态
systemctl status firewalld# 关闭防火墙
systemctl stop firewalld# 开机禁用防火墙
systemctl disable firewalld
停止nginx服务   ./nginx  -s stop

启动之后会有一些临时目录这些目录存放一些临时的文件

当修改nginx配置文件之后,需要重新加载。

./nginx -s reload  //重新加载
//也可以先停止 然后重新启动

修改配置文件,变为全局的命令

配置文件

nginx的配置文件

整体分成了三块:

主要使用的是server模块。

listen: nginx监听的端口  server_name 前端服务器的地址
在 Nginx 配置文件中,location 指令用于定义如何处理特定的 URL 请求。用于匹配以 / 开头的所有请求。因为 / 是一个通配符,它会匹配所有以 / 开头的请求,因此这个 location 块几乎适用于所有的请求路径。root 指令指定了一个目录,Nginx 将在这个目录下查找请求的文件。这里 html/dist 是指定的目录路径,Nginx 会在这个目录下查找请求的文件。例如,如果请求的是 /images/logo.png,Nginx 会在 html/dist/images/logo.png 中查找文件。

反向代理服务

正向代理:**翻墙。**

反向代理:分流。作为统一的入口,反向代理服务器提供转发。

正向代理:代理服务器是在客户端设置的,反向代理代理的是在服务器设置的。

配置代理服务器:

#user  nobody;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;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 / {root html/dist;  //根目录
index index.html; //index文件
# 如果vue路由用的history模式,则添加下面的配置
try_files $uri $uri/ /index.html;
}
# 如果存在跨域,则添加下面的配置,使用代理
location /api/ {rewrite ^/api/(.*)$ /$1 break; //将api去掉
proxy_pass http://localhost:8888; //转发的代理服务器
}
}
}
//rewrite 很重要,这个地址中的api删除掉proxy_pass 是 Nginx 配置文件中 location 块的一部分,用于设置反向代理服务器。它的作用是将客户端请求转发到另一个服务器,并将该服务器的响应返回给客户端。

前端vue工程通过npm run build进行打包,打包的内容存放在了dist文件夹下面。

负载均衡

所谓[负载均衡](https://so.csdn.net/so/search?q=%E8%B4%9F%E8%BD%BD%E5%9D%87%E8%A1%A1&spm=1001.2101.3001.7020) 就是:就是把大量的请求按照我们指定的方式均衡的分配给集群中的每台服务器,从而不会产生集群中大量请求只请求某一台服务器,从而使该服务器宕机的情况。

常见的负载均衡的方式:

轮询(默认)

weight 权重

ip_hash

最少连接

docker安装nginx

上面的方法安装nginx比较繁琐,可以使用docker一键部署nginx。
# 第1步,去DockerHub查看nginx镜像仓库及相关信息# 第2步,拉取Nginx镜像
docker pull nginx# 第3步,查看镜像
docker images
# 结果如下:
REPOSITORY   TAG       IMAGE ID       CREATED         SIZE
nginx        latest    605c77e624dd   16 months ago   141MB  //查看到nginx
mysql        latest    3218b38490ce   17 months ago   516MB# 第4步,创建并允许Nginx容器
docker run -d --name nginx -p 80:80 nginx# 第5步,查看运行中容器
docker ps
# 也可以加格式化方式访问,格式会更加清爽
docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"# 第6步,访问网页,地址:http://虚拟机地址# 第7步,停止容器
docker stop nginx# 第8步,查看所有容器
docker ps -a --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"# 第9步,再次启动nginx容器
docker start nginx# 第10步,再次查看容器
docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Ports}}\t{{.Status}}\t{{.Names}}"# 第11步,查看容器详细信息
docker inspect nginx# 第12步,进入容器,查看容器内目录
docker exec -it nginx bash
# 或者,可以进入MySQL
docker exec -it mysql mysql -uroot -p# 第13步,删除容器
docker rm nginx
# 发现无法删除,因为容器运行中,强制删除容器
docker rm -f nginx
这个命令是用来启动一个 Nginx 容器的,具体解析如下:

docker run -d --name nginx -p 80:80 nginx


### 1. `docker run`
这是 Docker 命令,用来运行一个新的容器。它可以从一个镜像启动容器,并执行指定的命令。### 2. `-d`
这是**后台运行**容器的选项,表示容器会在后台运行而不会占用当前终端。### 3. `--name nginx`
这个选项用于指定容器的名称,这里将容器命名为 `nginx`,方便管理和操作容器。### 4. `-p 80:80`
这是**端口映射**的选项,用来将主机的端口映射到容器内部的端口。- 左边的 `80` 是**主机**上的端口号,表示将主机的 `80` 端口映射到容器的端口。
- 右边的 `80` 是**容器**内的端口号,Nginx 默认使用容器内的 `80` 端口对外提供服务。这样做的效果是,当你访问主机的 `80` 端口时,实际上是在访问容器内 Nginx 服务的 `80` 端口。### 5. `nginx`
这是**镜像名称**,表示使用 `nginx` 镜像来创建容器。如果本地没有这个镜像,Docker 会从默认的 Docker Hub 拉取这个镜像。### 综合解释:
这个命令会启动一个基于 Nginx 镜像的容器,容器会以 `nginx` 命名,并将主机的 `80` 端口映射到容器的 `80` 端口。同时,容器会在后台运行,你可以通过主机的 IP 地址访问这个 Nginx 服务(例如在浏览器中输入 `http://localhost` 访问)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ldbm.cn/p/443525.html

如若内容造成侵权/违法违规/事实不符,请联系编程新知网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android 11 FileProvider的使用和限制

概述: 从Android 7开始,将不允许在app之间,使用file uri,即file://的方式,传递一个file,否则会抛出异常:FileUriExposedException ,其解决方案,就是使用FileProvider,用c…

OpenCV运动分析和目标跟踪(1)累积操作函数accumulate()的使用

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 将一个图像添加到累积图像中。 该函数将 src 或其部分元素添加到 dst 中: dst ( x , y ) ← dst ( x , y ) src ( x , y ) if mask…

Davinci 大数据可视化分析

Davinci 大数据可视化分析 一、Davinci 架构设计1.1 Davinci定义1.2 Davinci 应用场景 二、Davinci 安装部署2.1 部署规划2.2 前置环境准备2.3 Davinci部署2.3.1 物料准备2.3.2 安装配置 2.4 环境变量配置2.5 初始化数据库2.5.1 创建数据库及用户 2.5.2 建表2.6 初始化配置 三、…

close_wait状态的实例:一次 MySQL 主动关闭,导致服务出现大量 CLOSE_WAIT 的全流程排查过程【个人总结】

没有实际的操作设备和条件,只能看文章来体验。文章主要是通过观察实例来说明close_wait状态的问题,一般导致close_wait状态都不是有意的,而是操作不注意就会导致此问题的出现。所以在代码书写上一定要确保不会出现问题。 事件:so…

Arduino IDE离线配置第三方库文件-ESP32开发板

简洁版可以使用uget等,将文件下载到对应文件夹下,然后安装。 esp32之arduino配置下载提速 录屏 Arduino IDE离线配置第三方库文件ESP32 资源 Linux https://download.csdn.net/download/ZhangRelay/89749063 第三方开发板 非默认支持的开发板 linu…

Linux(CentOS8)服务器安装RabbitMQ

我安装了很久都没有成功, 各种问题, 每次的异常都不一样, 现将成功安装过程做个总结 安装前工作 确保已经安装了一些基础工具和组件库 下载安装包 https://www.erlang.org/patches/otp-24.3.4.5 https://github.com/rabbitmq/rabbitmq-server/releases/download/v3.9.15/ra…

C#与Python脚本使用共享内存通信

实现的功能: C#中读取一张图像,通过共享内存传给python脚本进行处理后将图像进行存储,C#读取处理过后的图像。 C#与python通信有好几种,为什么选择共享内存? 处理图像的速度需求是1秒钟处理5张以上,通过…

Village Exteriors Kit 中世纪乡村房屋场景模型

此模块化工具包就是你一直在寻找的适合建造所有中世纪幻想村庄和城市建筑所需要的工具包。 皇家园区 - 村庄外饰套件的模型和纹理插件资源包 酒馆和客栈、魔法商店、市政大厅、公会大厅、布莱克史密斯锻造厂、百货商店、珠宝商店、药店、草药师、银行、铠甲、弗莱切、马厩、桌…

unity的学习

因为需要构建一个三维物理环境,所以学习了unity,半天就可以,非常简单清晰 1.安装 去官网下载unity hub . 然后需要下载editor,但注意已经有了vs2022就不要再下一次了,下的时候会全放c盘,再安装.c盘都装不下了. 如果美游vs2022,就先自己把vs2022安装好,再安装unity hub.(其实不…

神经网络-MNIST数据集训练

文章目录 一、MNIST数据集1.数据集概述2.数据集组成3.文件结构4.数据特点 二、代码实现1.数据加载与预处理2. 模型定义3. 训练和测试函数4.训练和测试结果 三、总结 一、MNIST数据集 MNIST数据集是深度学习和计算机视觉领域非常经典且基础的数据集,它包含了大量的手…

动态规划:07.路径问题_珠宝的最大价值_C++

题目链接:LCR 166. 珠宝的最高价值 - 力扣(LeetCode)https://leetcode.cn/problems/li-wu-de-zui-da-jie-zhi-lcof/description/ 一、题目解析 题目: 解析: 有过做前几道题的经验,我们会发现这道题其实就…

MySQL篇(窗口函数/公用表达式(CTE))

目录 讲解一:窗口函数 一、简介 二、常见操作 1. sumgroup by常规的聚合函数操作 2. sum窗口函数的聚合操作 三、基本语法 1. Function(arg1,..., argn) 1.1. 聚合函数 sum函数:求和 min函数 :最小值 1.2. 排序函数 1.3. 跨行函数…

markdown 使用技巧

文章目录 markdown使用技巧1.标题快捷键设置2.文档可读性设置 markdown使用技巧 1.标题快捷键设置 ctl 1:一级标题 ctl 2:二级标题 ctl 3:三级标题 ctl 4:四级标题 ...2.文档可读性设置 输入~~~pro 可选择代码框,并且可以选择不同的字体 ctrl shift ] : 可…

基于MicroPython的ESP32控制LED灯闪烁设计方案的Wokwi仿真

以下是一个基于MicroPython的ESP32控制LED灯闪烁设计方案的Wokwi仿真: 一、硬件准备: 在Wokwi仿真平台(https://wokwi.com/)选择ESP32开发板,添加一个LED灯,和一个220欧姆限流电阻。 二、硬件连接: 1. 将LED灯的阳极…

gin配置swagger文档

一、基本准备工作 1、安装依赖包 go get -u github.com/swaggo/swag/cmd/swag go get -u github.com/swaggo/gin-swagger go get -u github.com/swaggo/files2、在根目录上配置swagger的路由文件 //2.初始化路由router : initialize.Routers()// 配置swaggerdocs.SwaggerInfo…

Linux进程等待 | 程序替换

进程终止 一个进程退出了,无非只有三种情况: 代码跑完了,结果正确代码跑完了,结果不正确代码没跑完,程序异常退出了 代码跑完了,我们可以通过退出码获取其结果是否正确,(这个退出…

初始爬虫6

数据提取 数据提取总结 响应分类 结构化 json数据(高频出现) json模块 jsonpath模块 xml数据(低频出现) re模块 …

【OJ刷题】双指针问题6

这里是阿川的博客,祝您变得更强 ✨ 个人主页:在线OJ的阿川 💖文章专栏:OJ刷题入门到进阶 🌏代码仓库: 写在开头 现在您看到的是我的结论或想法,但在这背后凝结了大量的思考、经验和讨论 目录 1…

Rust使用Actix-web和SeaORM库开发WebAPI通过Swagger UI查看接口文档

本文将介绍Rust语言使用Actix-web和SeaORM库,数据库使用PostgreSQL,开发增删改查项目,同时可以通过Swagger UI查看接口文档和查看标准Rust文档 开始项目 首先创建新项目,名称为rusty_crab_api cargo new rusty_crab_apiCargo.t…

中标喜讯!湖北产教融合教育研究院携手湖北医药学院,共筑同等学力申硕新篇章

在深化教育改革、推动产教融合的大潮中,湖北产教融合教育研究院再传捷报!其控股子公司——武汉产教融汇教育科技有限公司,凭借卓越的技术研发实力、丰富的教育资源储备及高效的运营管理能力,成功中标湖北医药学院同等学力申硕工作…