Linux-nginx(安装配置nginx、配置反向代理、Nginx配置负载均衡、动静分离)

关于代理

正向代理:

客户明确知道自己访问的网站是什么

隐藏客户端的信息

目录

关于代理

一、Nginx的安装与配置

1、安装依赖

2、安装nginx

(1)上传压缩包到目录 /usr/nginx里面

(2)解压文件

(3)进入到nginx的文件夹下面 进行默认的配置  ./configure

(4) Make && make install

(5)Whereis nginx

(6)启动nginx

(7)查询nginx进程

(8)此页面表示成功

二、配置反向代理

1、打包vue项目

2、反向代理

三、反向代理2

1、同时代理两个时,根据访问的路径跳转到不同端口的服务器中

2,路径的正则表达式

四、Nginx配置负载均衡

1、克隆

2、启动项目

3、Nginx配置负载均衡

4、负载均衡的策略配置

1、轮询(默认)

2、weight

3、ip_hash

4、fair(第三方)

五、动静分离

六、配置nginx开机启动

前后端连接


客户端和代理服务器  一起的

正向代理最大的特点是客户端非常明确要访问的服务器地址

它代理的是客户端,代客户端发出请求

反向代理

客户户访问一个网站

 隐藏服务端的信息

服务端和代理服务器 一起的

反向代理的作用:

(1)保证内网的安全,通常将反向代理作为公网访问地址,Web服务器是内网

(2)负载均衡,通过反向代理服务器来优化网站的负载

一、Nginx的安装与配置
1、安装依赖

gcc安装

yum install -y gcc-c++

PCRE安装:pcre是一个perl库,包括perl兼容的正则表达式库,nginx的http模块使用pcre来解析正则表达式,所以需要安装pcre库。

安装命令:yum install -y pcre pcre-devel

zlib安装:zlib库提供了很多种压缩和解压缩方式nginx使用zlib对http包的内容进行gzip,所以需要安装

安装命令:yum install -y zlib zlib-devel

OpenSSL安装:penssl是web安全通信的基石,没有openssl,可以说我们的信息都是在裸奔,所以需要安装

安装命令:yum install -y openssl openssl-devel

如果以上命令执行比较麻烦可以执行如下命令

yum install -y gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel

2、安装nginx
(1)上传压缩包到目录 /usr/nginx里面

或者联网直接下载:

wget -c https://nginx.org/download/nginx-1.15.10.tar.gz

(2)解压文件

tar -zxvf nginx-1.15.10.tar.gz

(3)进入到nginx的文件夹下面 进行默认的配置  ./configure

(4) Make && make install

(5)Whereis nginx

查看nginx的位置

(6)启动nginx

切换到 cd /usr/local/nginx/ sbin/ 下

./nginx 启动 (前题防火墙必须关)

./nginx -s reload 重新加载

 ./nginx -s quit 此方式停止步骤是待nginx进程处理任务完毕进行停止。

[./nginx -s stop:此方式相当于先查出nginx进程id再使用kill命令强制杀掉进程。(粗暴)

(7)查询nginx进程

ps aux|grep -v grep|grep nginx

ps -ef|grep -v grep|grep nginx

(8)此页面表示成功

当问nginx默认的端口号是80

二、配置反向代理
1、打包vue项目

 (1)修改配置文件        目的:防止路径出错

(2)路由模式:

Src/router/index.js

进行打包

这是打包好的dist

2、反向代理

将dist上传到linux的文件里

vim nginx.conf修改配置

修改完保存后重新加载

http://192.168.195.33/可以直接访问页面

vim nginx.conf修改配置

访问 192.168.195.33的时候直接指向的是 192.168.195.34:8080

当我们访问nginx服务器的时候  直接指向的是 192.168.195.33:8080 这个地址

        location /test2 {
          proxy_pass http://192.168.159.34:8899/;

        }

3.代理本地localhost:8080/

本地IP地址为172.16.2.76,启动本地的项目

linux是能通本地http://172.16.2.76:8080/user

本地也能通linux中的ip地址

修改nginx.conf的location

浏览器有数据代表成功

三、反向代理2

启动nginx

/usr/local/nginx/sbin/nginx

1、同时代理两个时,根据访问的路径跳转到不同端口的服务器中

nginx.conf添加一个linux的IP地址项目(启动好已打包好的java的jar包Linux03中

添加好后保存退出vim,启动nginx或者重新加载nginx(/usr/local/nginx/sbin/nginx -s reload)

打开项目可以看到不同的地址的页面 192.168.195.33:8080

访问ngnix的test路径的时候,代理到 172.16.2.76:8080

 访问ngnix的默认路径的时候,代理到 172.16.2.76:8080

2,路径的正则表达式

1、= :用于不含正则表达式的 uri 前,要求请求字符串与 uri 严格匹配,如果匹配 成功,就停止继续向下搜索并立即处理该请求。

2、~:用于表示 uri 包含正则表达式,并且区分大小写。

3、~*:用于表示 uri 包含正则表达式,并且不区分大小写。

4、^~:用于不含正则表达式的 uri 前,要求 Nginx 服务器找到标识 uri 和请求字 符串匹配度最高的 location 后,立即使用此 location 处理请求,而不再使用 location 块中的正则 uri 和请求字符串做匹配。 注意:如果 uri 包含正则表达式,则必须要有 ~ 或者 ~* 标识。

四、Nginx配置负载均衡
1、克隆

克隆两个虚拟机这里可以称为服务器(改好IP地址)

一个用于启动nginx,两个用于运行项目

2、启动项目

两个服务器分别4启动项目

3、Nginx配置负载均衡

(1)nginx.conf配置

在http下配置这个(分别为两个启动项目的ip)

aaa为名字,可以更改,改后location的也要改

location ,配置好后重新启动nginx

为了区分两个项目也可以更改一些数据

打开项目,注意访问的是http://192.168.195.33/user

通过代理默认轮询的访问34和35这两个项目

第一次访问

第二次访问,然后依次轮换

4、负载均衡的策略配置
1、轮询(默认)

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

2、weight

(如果有10次访问就会访问9次34,1次35)

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

指定轮询几率,weight 和访问比率成正比,用于后端服务器性能不均的情况

3、ip_hash

每个请求按访问 ip 的 hash 结果分配,这样每个访客固定访问一个后端服务器,可以解决 session 的问题。 例如:

upstream aaa{

ip_hash;

server 192.168.159.34:8080 ;

server 192.168.159.34:8081 ;

}
4、fair(第三方)

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

upstream aaa{

fair;

server 192.168.159.34:8080 ;

server 192.168.159.34:8081 ;

}
五、动静分离

Nginx 动静分离简单来说就是把动态跟静态请求分开,不能理解成只是单纯的把动态页面和 静态页面物理分离。严格意义上说应该是动态请求跟静态请求分开,可以理解成使用 Nginx 处理静态页面,Tomcat 处理动态页面。动静分离从目前实现角度来讲大是纯粹把静态文件独立成单独的域名,放在独立的服务器上,也是目前主流推崇的方案;

配置静态资源:

(1)约定:

静态资源 location / {}

可以访问的到,但数据

(2)也可以不遵循约定

location /名字的时候{

root  

}

必须在root对应的目录下面有这个 名字  的文件夹,root 后面目录就不用写这个文件夹了

 location /dist {
            root   /usr/pro;
            index  index.html index.htm;
        }

访问时也需要加这个名字

(3)也可以任意写名字

起别名,必须把root换成alias,后面的目录正常写

location /aaa {
            alias   /usr/pro/dist;
            index  index.html index.htm;
        }

alias 访问aaa的时候 其实访问的是 /usr/pro/dist

访问

六、配置nginx开机启动

切换到/lib/systemd/system/目录,创建nginx.service文件vim nginx.service

cd /lib/systemd/system/

vim nginx.service

添加内容如下:

[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx  -c /usr/local/nginx/conf/nginx.conf
ExecReload=/usr/local/nginx/sbin/nginx -s  reload
ExecStop=/usr/local/nginx/sbin/nginx  -s stop
PrivateTmp=true
[Install]
WantedBy=multi-user.target
配置之后需要使文件生效
systemctl daemon-reload
退出并保存文件,执行systemctl enable nginx.service使nginx开机启动
#开机自启动
systemctl enable nginx.service
#停止开机自启动
systemctl disable nginx.service
#查询当前状态
systemctl status nginx.service
#启动服务
systemctl start nginx.service
#重新启动服务
systemctl restart nginx.service
#停止服务
systemctl stop nginx.service
#重新加载配置
systemctl reload nginx.service
前后端连接

配置好后可以关掉进程重新启动测试

前端需要传数据,main.jsURL改为192.168.195.33/mypro/,然后将前端项目打包上传到linux就可以了

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

String在VS与Linux下的区别

目录 一、string的成员 1.VS 2.Linux 二、string的扩容机制 1. VS 2.Linux 一、string的成员 string是C标准库中的一个类模板,用于表示和操作字符串 string在 Windows 与 Linux 中的成员不是相同的 1.VS 4个成员:_str , _size , _capacity 和…

【一文详解】Java多线程和并发知识点详细总结【万字总结】

Java并发编程 并发编程的三个特性 原子性 一次操作或者多次操作,要么所有的操作全部都得到执行并且不会受到任何因素的干扰而中断,要么都不执行。 在 Java 中,可以借助synchronized、各种 Lock 以及各种原子类实现原子性。 synchronized…

MySQL(五)——多表查询

上期文章 MySQL(四)——约束 文章目录 上期文章多表关系一对多(多对一)多对多多表外键关系可视化一对一 多表查询概述笛卡尔积多表查询分类连接查询 内连接隐式内连接显式内连接 外连接左外连接右外连接 自连接联合查询 union&am…

python-基础篇-变量

文章目录 变量的基本使用目标01. 变量定义1) 变量演练1 —— iPython2) 变量演练 2 —— PyCharm3) 变量演练 3 —— 超市买苹果思考题 02. 变量的类型2.1 变量类型的演练 —— 个人信息2.2 变量的类型2.3 不同类型变量之间的计算1) **数字型变量** 之间可以直接计算2) **字符串…

Python基础第四篇(Python函数)

文章目录 一、函数介绍二、函数的定义三、函数的参数与返回值四、函数说明文档五、函数的嵌套六、变量域七、函数案例1.源代码2.读出结果 在程序设计领域,函数成为一个不可或缺的角色,它们为我们提供了精练、高效和易于管理的编程方式。本篇博客将带您深…

CentOS 7安装Java并配置环境

一、安装Java环境 1、检查系统是否安装Java [rootlocalhost ~]# java -version 2、更新系统软件包 [rootlocalhost ~]# yum update #遇到[y/n],选择y并回车,耐心等待下载完毕,之后系统会自动检验更新的软件包遇到 /var/run/yum.pid 已被锁定 /var/…

【动态规划】【数学】【C++算法】805 数组的均值分割

作者推荐 【动态规划】【数学】【C算法】18赛车 本文涉及知识点 动态规划 数学 805 数组的均值分割 给定你一个整数数组 nums 我们要将 nums 数组中的每个元素移动到 A 数组 或者 B 数组中,使得 A 数组和 B 数组不为空,并且 average(A) average(B)…

nuclei安装;linux上 以及使用教程

kali安装go环境_go1.17 kali安装-CSDN博客Ubuntu完美解决Github网站打不开问题 - 一抹烟霞 - 博客园 (cnblogs.com) All releases - The Go Programming Language 然但是上面两个我似乎都没用到网上的教程 也不适用 一个网不好 一个apt没找到包 然后我先试试了版本 结果 我的…

BGP Origin 属性控制选路试验

一、拓朴图: 二、配置步骤: 1、配置 IP 2、配置 IGP,我们这里用了静态,互相宣告了对端接口和 Loopback 0 3、配置 BGP 4、在 R1 上通过 BGP 宣告 1.1.1.1,查看 R2 的路由,发现两条 1.1.1.1 的路由&#x…

Vue中的组件

在应用程序的开发中,组件是不可缺少的。在Vue的使用中,同样也会用到组件。   vue组件的一般知识点:   1、组件的名字唯一;   2、组件以Html形式书写;   3、组件可以复用;   4、组件可以嵌套&…

postgresql(Windows)初始化数据库教程

省流:本文章内容讲的是如何初始化postgresql数据库环境,前提是已经安装好postgresql数据库,安装步骤参考postgresql(Windows)安装教程 # 开始:安装postgresql-12.14-2-windows-x64.exe完成后进行初始化数据…

gin中间件篇

1. 全局中间件 所有请求都经过此中间件 package mainimport ("fmt""time""github.com/gin-gonic/gin" )// 定义中间 func MiddleWare() gin.HandlerFunc {return func(c *gin.Context) {t : time.Now()fmt.Println("中间件开始执行了&quo…

《Linux高性能服务器编程》笔记04

Linux高性能服务器编程 本文是读书笔记,如有侵权,请联系删除。 参考 Linux高性能服务器编程源码: https://github.com/raichen/LinuxServerCodes 豆瓣: Linux高性能服务器编程 文章目录 Linux高性能服务器编程第09章I/O复用9.1 select系统调用9.2 po…

JVM之java内存区域[1](程序计数器、栈)

文章目录 版权声明零 运行时数据区一 程序计数器1.1 加载阶段1.2 执行阶段1.3 多线程情况 二 栈2.1 java虚拟机栈2.2 java虚拟机栈帧的组成2.2.1 局部变量表2.2.2 操作数栈2.2.3 帧数据 2.3 栈内存溢出2.4 设置帧大小2.5 本地方法栈 版权声明 本博客的内容基于我个人学习黑马程…

如何快速打开github

作为一个资深码农,怎么能不熟悉全球最大的同性交友社区——github呢,但头疼的是github有时能打开,有时打不开,这是怎么回事? 其实问题出在github.com解析DNS上,并不是需要FQ。下面提供一个方法,…

C++:基于C的语法优化

C:基于C的语法优化 命名空间命名空间域域作用限定符展开命名空间域 输入输出缺省参数全缺省参数半缺省参数 函数重载参数类型不同参数个数不同参数类型的顺序不同 引用基本语法按引用传递返回引用引用与指针的区别 内联函数autoauto与指针和引用结合 范围for循环nul…

官方版2345加速浏览器(好用的浏览器分享)

官方版2345加速浏览器(好用的浏览器分享) 2345加速浏览器拥有智能拦截骚扰广告,识别欺诈网站,云收藏夹等功能,高速上网、不假死、不卡机,是一款强大的多功能网页浏览器。 使用2345加速浏览器,您可以轻松应对…

DHCP配置(路由器,交换机)

DHCP接口地址池配置 拓扑 PC配置DHCP点击应用。 路由器配置命令 <Huawei>sy Enter system view, return user view with CtrlZ. [Huawei]int g0/0/1[Huawei-GigabitEthernet0/0/1]ip address 10.1.1.1 24[Huawei-GigabitEthernet0/0/1]q[Huawei]dhcp enable Info: T…

【日常聊聊】边缘计算的挑战和机遇

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a; 日常聊聊 ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 边缘计算的挑战和机遇 一&#xff1a;数据安全与隐私保护 二&#xff1a;网络稳定性与可靠性 三&#xff1a;实时性与性能优…

电压检测芯片适用于哪些应用领域?

原文链接&#xff1a; 电压检测芯片适用于哪些应用领域&#xff1f; - 知乎 (zhihu.com) 电压检测基本涉及到电子世界的方方面面。 我上一份工作是做无人机飞控研发&#xff0c;无人机在使用过程中是需要事件监测电压的&#xff0c;还需要针对电压对航行进行预估&#xff0c;…
最新文章