linux 里面 Nginx的安装与使用,配置文件,反向代理,负载均衡,动静分离(一篇文章讲清楚)

2021-10-25 11:58:46 浏览数 (1)

目录

  • Nginx的安装
    • 先安装相关依赖
      • 安装 pcre 依赖
      • 安装 openssl 、zlib 、 gcc 依赖
    • 安装Nginx
    • 如何进行访问?
    • 访问不到需要关闭虚拟机里面的防火墙
  • Nginx安装总结
  • Nginx的常用命令
  • Nginx的配置文件
    • 他在哪里
    • 介绍里面内容
    • 三部分组成
      • 全局块
      • events 块
      • http 块
  • Nginx实现反向代理
    • 需求(1)
    • 先安装tomcat
    • 访问的过程
    • 配置
    • 需求(2)
    • 创建8081端口的Tomcat(8082的一样)
    • 往两个Tomcat里面放项目
    • Nginx配置
    • location里面配置说明
  • Nginx实现负载均衡
    • 需求
    • 准备
    • nginx 里面负载均衡配置
    • nginx 分配服务器策略
      • 第一种 轮询(默认)
      • 第二种 weight
      • 第三种 ip_hash
      • 第四种 fair(第三方)
  • Nginx的动静分离
    • 创建一个放静态资源的目录
    • 通过静态资源配置进行访问(需求)
    • 配置
  • 总结

Nginx的安装

先安装相关依赖

安装 pcre 依赖

这个需要网上下载这个依赖之后,移动到虚拟机里面

以下这个是移动到虚拟机里面

进行解压压缩文件

代码语言:javascript复制
tar -xvf pcre-8.37.tar.gz

解压完成就有这个文件夹

进入这个文件夹,执行一个命令

代码语言:javascript复制
./configure

执行完之后,最后是这样的

如果不是这样,就是安装这个也需要其他的依赖环境,比如c的环境和c 的环境,可以这样安装这些环境

configure: error: no acceptable C compiler found in $PATH 已解决,亲测有效

configure: error: You need a C compiler for C support.[系统缺少c 环境],这样解决,亲测有效

虚拟机 里面 bash: make: 未找到命令…,这样解决

以上完成之后,就可以进行编译和安装了,编译和安装的命令是:

代码语言:javascript复制
make && make install 

出现以上的情况,就是安装好所需要的这个依赖了

查看版本

安装 openssl 、zlib 、 gcc 依赖

代码语言:javascript复制
yum -y install make zlib zlib-devel gcc-c   libtool openssl openssl-devel

以上一个命令 就可以安装成功

安装Nginx

进行解压

代码语言:javascript复制
tar -xvf nginx-1.12.2.tar.gz

检查一下

代码语言:javascript复制
make && make install

以上相当于就安装完成了,我们进入另一个目录

会自动的在这个local目录下安装Nginx这个文件夹

进入这个sbin的目录下

启动Nginx

以上就启动了

查看进程

如何进行访问?

先打开以上的文件

找到端口是80

以上就访问到了

访问不到需要关闭虚拟机里面的防火墙

先看此时虚拟机里面的防火墙,开放的端口号是什么

查看防火墙是否开启

以上显示关闭,现在重新开启

开启防火墙systemctl start firewalld

以上是开启了

现在查看开启了哪些端口

firewall-cmd --list-all

一个都没有开放,我们将80端口就行开放

代码语言:javascript复制
sudo firewall-cmd --add-port=80/tcp --permanent

新增了开放端口,要重新启动

以上就可以访问了

关闭防火墙:systemctl stop firewalld

Nginx安装总结

上传安装包进行安装之后,会自动的在另一个地方生成Nginx的文件夹

以后我们操作Nginx就是在那个地方,具体地方是:

Nginx的常用命令

使用命令,必须进入到Nginx的一个目录里面

在这个里面进行使用

进入 nginx 目录中

cd /usr/local/nginx/sbin

代码语言:javascript复制
1、查看 nginx 版本号
./nginx -v 

2、启动 nginx
./nginx
3、停止 nginx
./nginx -s stop
4、重新加载 nginx
./nginx -s reload

Nginx的配置文件

他在哪里

介绍里面内容

刚安装的Nginx,打开这个文件,里面的东西是

三部分组成

全局块

配置服务器整体运行的配置指令

比如 worker_processes 1;处理并发数的配置

events 块

影响 Nginx 服务器与用户的网络连接

比如 worker_connections 1024; 支持的最大连接数为 1024

代码语言:javascript复制
events {
    worker_connections  1024;
}

http 块

还包含两部分:

http 全局块

server 块

Nginx实现反向代理

需求(1)

我们在虚拟机里面启动一个项目,比如说是启动一个Tomcat,本来在浏览器可以用IP 端口在浏览器访问这个Tomcat,但是现在是想随便定义一个网址,就可以访问这个,也就是将真实的IP进行隐藏

先安装tomcat

在Linux上面装jdk, Tomcat软件,一步一步带你安装

访问的过程

配置

第一步 在 windows 系统的 host 文件进行域名和 ip 对应关系的配置

第二步 在 nginx 进行请求转发的配置(反向代理配置)

打开配置文件

改完配置文件,重新启动,在对应的目录下

./nginx -s reload

需求(2)

服务器里面有2个项目,都需要Nginx做反向代理,两个项目的端口号是不一样的。但是我们需要实现使用Nginx,外界访问的IP和端口是一样的,但是路径不一样,就访问不同的项目。具体是这样

代码语言:javascript复制
浏览器访问  http://

创建8081端口的Tomcat(8082的一样)

已经有一个8080端口的Tomcat了,现在再创建一个8081的

解压以上的Tomcat

创建2个文件夹,里面分别是8081端口的Tomcat和8082端口的Tomcat

两个文件夹下都放这个压缩包,之后再各个文件夹下分别解压

先进入8081

解压这个Tomcat的压缩包

解压之后是

改配置文件,将8080改为8081

保存,启动

把防火墙关闭了,就不需要一个一个放开端口了

8082端口的类似

往两个Tomcat里面放项目

我们在8081里面创建一个目录

我们在8082里面创建一个目录

以上直接根据Tomcat的IP和端口号就可以访问

Nginx配置

配置里面多加这个代码,以后同样的IP和端口号,只要后面的路径不一样,就访问不同的项目

改完配置文件,重新启动Nginx

./nginx -s stop 这个是停止Nginx

那么在浏览器里面就可以访问了

location里面配置说明

Nginx实现负载均衡

需求

两台服务器,里面的项目一样,现在使用Nginx,实现负载均衡,现在使用不同的端口号代表不同的服务器

准备

8081端口里面的项目

8082里面的项目

nginx 里面负载均衡配置

80端口,连续刷新,里面的东西是不一样的

nginx 分配服务器策略

第一种 轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器 down 掉,能自动剔除。

第二种 weight

weight 代表权重默认为 1,权重越高被分配的客户端越多

使用:

第三种 ip_hash

每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器

使用

第四种 fair(第三方)

按后端服务器的响应时间来分配请求,响应时间短的优先分配。

Nginx的动静分离

创建一个放静态资源的目录

通过静态资源配置进行访问(需求)

不是通过Tomcat进行访问,是自己通过静态资源的配置进行访问

配置

总结

0 人点赞