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

nginx服务器安装和部署代理

文章目录

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.mrgr.cn/news/28911.html

相关文章:

  • Weapons Armor PBR Pack 1 - Fantasy RPG 武器护甲游戏模型
  • 【3D打印】常用Gcode和相关示例
  • a,b,c中的最大值
  • 万字长文看懂Flink的架构及原理
  • PAT甲级-1055 The World‘s Richest
  • 关于STM32项目面试题01:电源篇
  • Vue2知识点
  • C++对象拷贝时的优化编译
  • LLamaindex基本使用
  • 06-1_间隙锁和临键锁的锁定范围
  • JVM 调优篇7 调优案例4- 线程溢出
  • COMDEL电源CPS500AS RF13.56MHZ RF Generator手侧
  • 好代码网同款wordpress主题,完全开源无加密可二开
  • 优惠充值话费api对接如何选择对接平台?
  • 最短路径算法
  • JavaScript考核详解
  • 淘宝npm镜像源更新后,如何正常使用npm命令
  • 使用C++程序编写5 个浮点数,求平均值后输出
  • STL相关简介
  • 削峰+限流:秒杀场景下的高并发写请求解决方案