nginx服务器安装和部署代理

news2024/9/21 16:42:11

文章目录

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.coloradmin.cn/o/2144737.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++:输入输出,字符串,命名空间

1.输出斐波那契数列的前20项 #include <iostream>using namespace std;int main() {int a[20];int i;for(i0;i<20;i){if(i<2){a[i]1;cout<<a[i]<<ends;}else{a[i]a[i-1]a[i-2];cout<<a[i]<<ends;}}return 0; } 2.输入一个字符&#xff0…

Java泛型(“代码模板”,一套代码套用各种类型)

1.什么是泛型 a.定义 i.如果不用泛型定义&#xff0c;在使用ArrayList时需要为每个class编写特定类型代码。 ii.泛型就是定义一种模板&#xff0c;既实现了编写一次&#xff0c;万能匹配&#xff0c;又通过编译器保证了类型安全。 iii.编写模板代码来适应任意…

python调用c++动态链接库,环境是VS2022和vscode2023

目录 前言&#xff1a;配置环境&#xff1a;基础夯实&#xff08;对于ctypes的介绍&#xff09;&#xff1a;1. 加载共享库2. 定义函数原型3. 调用函数4. 处理数据结构5. 处理指针6. 错误处理7. 使用 ctypes.util总结 效果展示&#xff1a;操作步骤(保姆级教学)一在VS中创建dll…

【LGR-200-Div.4】洛谷入门赛 #27 A - H题解,包含(C++, Go语言)

前言&#xff1a; 本文为【LGR-200-Div.4】洛谷入门赛 #27 A - H题解 我只是一个只会各种暴力法的蒟蒻&#xff0c;这场比赛没有参加&#xff0c;是比赛完去写的&#xff0c;但是那个题目昨天晚上才能提交&#xff0c;导致拖久了一点 最后面贴一个Go语言的&#xff0c;反正也没…

前端分段式渲染较长文章

实现思路&#xff1a; 1. 后端返回整篇文章。 2. JavaScript 分段处理&#xff1a;将文章按一定的字符或段落长度分割&#xff0c;然后逐步将这些段落追加到页面上。 3. 定时器或递归调用&#xff1a;使用 setInterval 或 setTimeout 来控制段落的逐步渲染。 代码实现示例 …

2024年企业必备10款源代码加密软件!保护公司源代码 !

随着科技的发展&#xff0c;企业的数据安全性变得愈发重要&#xff0c;特别是源代码——企业的核心资产之一。源代码一旦泄露&#xff0c;可能带来不可估量的损失&#xff0c;导致竞争优势丧失、知识产权泄露&#xff0c;甚至对企业的未来生存造成威胁。因此&#xff0c;确保源…

Centos中关闭swap分区,关闭内存交换

概述&#xff1a; Swap 分区是 Linux 系统中扩展物理内存的一种机制。Swap的主要功能是当全部的RAM被占用并需要更多内存时&#xff0c;用磁盘空间代理RAM内存。Swap对虚拟化技术资源损耗非常大&#xff0c;一般虚拟化是不允许开启交换空间的&#xff0c;如果不关闭Swap&…

城市脉络下的空间句法:整合度与选择度的深度解析

上回写过一篇&#xff0c;基于空间句法的路网整合度、选择度分析&#xff0c;当时碍于篇幅和侧重点&#xff0c;主要讲了如何安装sDNA这个插件来实现路网的整合度、选择度分析&#xff0c;并且分析部分也只是画了几条简单的线段&#xff0c;这次我们深化一下原理和指标的解析&a…

手势识别-Yolov5模型-自制数据集训练

1、源码下载&#xff1a; 大家可以直接在浏览器搜索yolov5即可找到官方链接&#xff0c;跳转进github进行下载&#xff1a; 这里对yolov5模型补充说明一下&#xff0c;它是存在较多版本的&#xff0c;具体信息可在master->tags中查看&#xff0c;大家根据需要下载。这些不同…

2024.9.18 作业

将配置桥接网络的过程整理成文档&#xff0c;发csdn 放资源里了 思维导图&#xff1a;

0基础带你入门Linux之简介

1.Linux和Windows对比 Window很明显的特征就是有C盘、D盘登各种磁盘 我们通过点击不同的盘符&#xff0c;点击里面存储的文件进行查阅的操作 而Linux则很简单&#xff0c;只有一个根目录&#xff0c;也可以说只有一个盘&#xff0c;整个系统所有的东西都是在根目录下的 我们可…

C/C++中哪些数据存放于栈区、堆区、静态区、常量区的详细说明

文章目录 1. 栈区&#xff08;Stack&#xff09;2. 堆区&#xff08;Heap&#xff09;3. 静态区&#xff08;Static&#xff09;4. 常量区&#xff08;Read-Only or Constant Section&#xff09;总结&#xff1a;栈&#xff08;Stack&#xff09;的生长&#xff1a;堆&#xf…

js中apply,call,bind的区别与用法

在JavaScript中&#xff0c;所有的函数再被调用的时候都会默认传入两个参数&#xff0c;一个是this&#xff0c;还有一个是arguments。在默认情况下this都是指当前的调用函数的对象。但是有时候我们需要改变this的指向&#xff0c;也就是说使函数可以被其他对象来调用&#xff…

【数据可视化】Arcgis api 4.x 专题图制作之分级色彩,采用自然间断法(使用simple-statistics JS数学统计库生成自然间断点)

1.效果 2.实现 2.1 分级色彩 分级色彩是在GIS制图中&#xff0c;通过不同颜色等级来表示数据量级差异的符号化方法&#xff0c;帮助用户直观识别和比较数据的大小。 2.2 分级方法 在GIS中进行分级色彩制图时&#xff0c;可以选择不同的分级方法来表示数据的分布和变化&#xf…

好用又便宜的电商分账系统

多部门联合治税的背景下&#xff0c;合规运营是企业的首要任务。确保税务合规不仅能避免法律风险&#xff0c;还能提升企业的信誉和运营效率&#xff0c;电商分账系统是电商行业必备的合规工具。今天&#xff0c;商淘云为您分享选择性价比高的电商分账系统的三大规则&#xff0…

鸿蒙Harmony应用开发,数据驾驶舱登录页面的实现

鸿蒙Harmony应用开发&#xff0c;数据驾驶舱登录页面的实现 ​ 首先我们有个Splash 过渡页面来判断当前是用户是否登录&#xff0c;我们先从preferences中获取token是否存在。如果不存在直接跳转登录即可&#xff0c;如果存在的情况我们再去获取下用户的信息看看token是否过期…

探索音乐的新边界——AI写歌的奇妙呈现

在音乐的世界里&#xff0c; 创新总是令人充满期待。 对于没有创作灵感、毫无创作水平的小孩&#xff0c;走进一个充满惊喜的音乐平台 —— &#xff08;Suno&#xff09; 看看AI 写歌的神奇魅力。S为我们提供了一个丰富多彩的音乐世界&#xff0c; 从新歌推荐到各种风格的音…

Vmware虚拟机无法打开内核设备“\\.\Global\vmx86“的解决方法

我的问题是在一次系统更新后&#xff0c;导致虚拟机无法使用的。我的虚拟机只有方法三解决了问题。 一、方法一 以管理员身份打开cmd&#xff0c;依次执行以下命令&#xff1a; net start vmci net start vmx86 net start VMnetuserif二、方法二 按 WinR 键&#xff0c;运行…

用好这几个AI抠图工具,既省心又省力!

在设计、摄影和数字创作的世界里&#xff0c;抠图虽然常见&#xff0c;却往往让人感到繁琐。不过&#xff0c;随着人工智能的飞速发展&#xff0c;许多可爱的AI抠图工具应运而生&#xff0c;轻松高效地解决了这一难题&#xff01;下面就来看看几款超级实用的AI抠图工具&#xf…