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

news/2024/7/7 21:44:16 标签: linux, nginx, 服务器
关于代理

正向代理:

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

隐藏客户端的信息

目录

关于代理

一、Nginx的安装与配置

1、安装依赖

nginx-toc" style="margin-left:160px;">2、安装nginx

nginx%E9%87%8C%E9%9D%A2-toc" style="margin-left:200px;">(1)上传压缩包到目录 /usr/nginx里面

(2)解压文件

nginx%E7%9A%84%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%8B%E9%9D%A2%20%E8%BF%9B%E8%A1%8C%E9%BB%98%E8%AE%A4%E7%9A%84%E9%85%8D%E7%BD%AE%20%C2%A0.%2Fconfigure-toc" style="margin-left:200px;">(3)进入到nginx的文件夹下面 进行默认的配置  ./configure

(4) Make && make install

nginx-toc" style="margin-left:200px;">(5)Whereis nginx

nginx-toc" style="margin-left:200px;">(6)启动nginx

nginx%E8%BF%9B%E7%A8%8B-toc" style="margin-left:160px;">(7)查询nginx进程

(8)此页面表示成功

二、配置反向代理

1、打包vue项目

2、反向代理

三、反向代理2

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

2,路径的正则表达式

四、Nginx配置负载均衡

1、克隆

2、启动项目

3、Nginx配置负载均衡

4、负载均衡的策略配置

1、轮询(默认)

2、weight

3、ip_hash

4、fair(第三方)

五、动静分离

nginx%E5%BC%80%E6%9C%BA%E5%90%AF%E5%8A%A8-toc" style="margin-left:120px;">六、配置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

nginx">2、安装nginx
nginx%E9%87%8C%E9%9D%A2">(1)上传压缩包到目录 /usr/nginx里面

或者联网直接下载:

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

(2)解压文件

tar -zxvf nginx-1.15.10.tar.gz

nginx%E7%9A%84%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%8B%E9%9D%A2%20%E8%BF%9B%E8%A1%8C%E9%BB%98%E8%AE%A4%E7%9A%84%E9%85%8D%E7%BD%AE%20%C2%A0.%2Fconfigure">(3)进入到nginx的文件夹下面 进行默认的配置  ./configure

(4) Make && make install

nginx">(5)Whereis nginx

查看nginx的位置

nginx">(6)启动nginx

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

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

./nginx -s reload 重新加载

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

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

nginx%E8%BF%9B%E7%A8%8B">(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%E5%BC%80%E6%9C%BA%E5%90%AF%E5%8A%A8">六、配置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.niftyadmin.cn/n/5337854.html

相关文章

Datawhale 强化学习笔记(三)基于策略梯度(policy-based)的算法

文章目录 参考基于价值函数的缺点策略梯度算法REINFORCE 算法策略梯度推导进阶策略函数的设计离散动作的策略函数连续动作的策略函数 参考 第九章 策略梯度 之前介绍的 DQN 算法属于基于价值(value-based)的算法,基于策略梯度的算法直接对策略本身进行优化。 将策…

对#多种编程语言 性能的研究和思考 go/c++/rust java js ruby python

对#多种编程语言 性能的研究和思考 打算学习一下rust 借着这个契机 简单的写了计算圆周率代码的各种语言的版本 比较了一下性能 只比拼单线程简单计算能力 计算十亿次循环 不考虑多线程 go/c/rust java js ruby python 耗时秒数 1:1:1:22:3:250:450 注:能启用则启…

面试2024.1.20

简单介绍下你做的项目。 这个神领物流项目是一个前后端分离的项目,前段他有3个客户端(用户端为微信小程序、司机端和快递员端为app)一个管理端(pc),后端用的技术栈用的是SpringAlibabaCloud、数据库用的是M…

AIGC时代高效阅读论文实操

大家好,我是herosunly。985院校硕士毕业,现担任算法研究员一职,热衷于机器学习算法研究与应用。曾获得阿里云天池比赛第一名,CCF比赛第二名,科大讯飞比赛第三名。拥有多项发明专利。对机器学习和深度学习拥有自己独到的见解。曾经辅导过若干个非计算机专业的学生进入到算法…

python入门,文件的编码,读取,写入,追加

目录 1.文件的编码 2.文件的读取 1.open()函数打开文件 2.rede()读取文件 3.readlines()方法 4.readline()方法 5.for循环读取 3.文件的关闭 withopen语法 4.文件的写入 1.…

Apache JMeter 5.6.3压力测试步骤详解

Apache JMeter 5.6.3压力测试步骤详解 压力测试简介软件测试概述性能测试性能测试指标性能指标推算web资源公式 1. 安装 Jmeter2. 创建测试任务2.1 创建线程组2.2 创建 HTTP 请求2.3 添加HTTP消息头管理器 3.添加查看结果监听器4. 执行测试5. 查看结果6. 非GUI模式测试7. 使用c…

中国电子学会2022年6月份青少年软件编程Scratch图形化等级考试试卷一级真题

一、单选题(共25题,共50分) 1.广场中有声控喷泉,当声音的音量大于60的时候,喷泉就会喷出水,现在的音量为30,下列哪个选项可以让喷泉喷出水?(2分) A. B. C. D. 答案解析&#x…

开源项目_一键发布 markdown 到各个平台_Wechatsync

1 使用场景 最近文章更新比较频繁,基本是日更。因此花费了相当多的时间在不同平台之间同步。时间主要消耗在:需要大致浏览一遍文章内容,另外某些平台需要手动上传图片,有时还需要调整排版。 为了解决这个问题,我选择…