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

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.kler.cn/news/308285.html

相关文章:

  • [论文笔记] CSFCN
  • SpringSecurity原理解析(六):SecurityConfigurer 解析
  • 拖拽排序的实现示例demo
  • Mysql调优之性能监控(一)
  • C++11(5)
  • 5G毫米波阵列天线仿真——CDF计算(手动AC远场)
  • 服务器究竟该怎么防范UDP泛洪攻击?
  • 【计算机网络】TCP 协议——详解三次握手与四次挥手
  • 中秋节程序员一般在干啥?
  • 管道焊缝质量数据集——good和bad两种标签,0为good.1134个图片,有对应的xml标签和txt标签,可用于yolo训练
  • LLMs之SuperPrompt:SuperPrompt的简介、使用方法、案例应用之详细攻略
  • 初赛笔记2
  • linux使用命令行编译qt.cpp
  • 【LeetCode每日一题】——LCR 078.合并 K 个升序链表
  • SpringSecurity原理解析(八):CSRF防御解析
  • Java集合框架 迭代器
  • 麒麟操作系统搭建Nacos集群
  • 面试经典150题——最后一个单词的长度
  • 基于双向RRT算法的三维空间最优路线规划matlab仿真
  • 云服务器开放端口
  • 短信验证码倒计时 (直接复制即可使用) vue3
  • 今日leetCode 242.有效的字母异位词
  • 【二叉树进阶】二叉搜索树
  • 视频格式转为mp4(使用ffmpeg)
  • 小程序面试题八
  • 【百日算法计划】:每日一题,见证成长(014)
  • 【SQL Server】清除日志文件ERRORLOG、tempdb.mdf
  • 如何快准稳 实现MySQL大表历史数据迁移?
  • linux文件系统权限详解
  • 服务器——装新的CUDA版本的方法