IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> linux 安装nginx,并配置反向代理,负载均衡 -> 正文阅读

[系统运维]linux 安装nginx,并配置反向代理,负载均衡

文章来源:https://www.gulixueyuan.com/my/course/332

一、linux安装Nginx

1.去nginx官网下载nginx压缩包,https://nginx.org

2.工具连接上linux

注意:在安装nginx之前,需要先安装上nginx的依赖包(各包的版本按情况而定)

1) pcre-8.37.tar.gz

2)? ?openssl-1.0.1.tar.gz

3)? ?zlib-1.2.8.tar.gz

4)? ?nginx-1.11.1.tar.gz

当然,安装nginx依赖可以有两种方式安装:一种是通过wget方式下载依赖包解压安装,一种是yum安装

3.综合运用来安装:

3.1.安装pcre,

linux :? ?cd /usr/src??

?下载到pcre压缩包, 解压: tar -xvf pcre-8.37.tar.gz

解压后,进入pcre-8.37 目录:cd?pcre-8.37

然后执行:? ./configure? ?(检查编译环境)

然后执行: make && make install (编译安装)? ? ? pcre-config --version 检查pcre版本号

所以在linux上安装压缩包的步骤是:下载安装包-》解压安装包-》进入解压文件目录-》执行configure-》编译安装

3.2.用yum直接下载并安装openssl、zlib

?3.3.nginx安装,把nginx压缩包放入linux, /usr/src 目录下

与pcre安装一样,解压、进入解压的目录、执行./configure检查,执行 make&make install

注意:nginx安装完毕后,我们进入 /usr/local目录下可以看到有一个nginx目录,在 /usr/local/nginx/sbin 目录下可以启动nginx(命令:? ./nginx) ,启动后,可通过

ps -ef | grep nginx 查看nginx进程,有进程则开启了nginx

在/usr/local/nginx/conf/ 可以看到有nginx的配置文件:? 主配置文件 nginx.conf?

3.4nginx安装完后,一般我们linux防火墙是默认禁止访问80端口的,

可以通过命令查看开放的端口号: firewall-cmd --list-all

设置开放的端口号:sudo firewall-cmd --add-port=8080/tcp --permanent

设置开启http服务: firewall-cmd --add-service=http --permanent

更改设置后需要重启防火墙: firewall-cmd --reload

二、nginx操作常用命令

1.启动nginx命令:cd /usr/local/nginx/sbin目录下? ? 执行 ./nginx? 启动

2.查看nginx版本:还是在sbin目录下? 执行? ./nginx -v??

3.通过查看nginx进程来确认nginx是否已经启动:? ps -ef | grep nginx

4.关闭nginx命令:还是在sbin目录下 执行? ?./nginx -s stop

5.重新加载nginx:还是在sbin目录下 执行? ?./nginx -s reload

注意:nginx重新加载作用,因为我们修改了nginx配置文件后,当前运行的进程中用的还是我们之前的配置,如果要用到修改后的配置又不影响nginx运行,那么就执行重新加载命令

三、nginx配置文件

1.nginx配置文件位置: /usr/local/nginx/conf/nginx.conf

2.nginx配置文件内部组成:三部分--全局块、events块、http块

1)全局块:从配置文件开头到events块之间的内容是全局块,主要是用于设置一些影响nginx服务器整体运行的配置指令: 如开启工作进程数: worker_processes 1;(与处理并发有关,当然开启的进程数不是越多越好,要根据cup核数来确定)

2)events块:此块涉及的指令主要是影响nginx服务器与用户的网络连接有关,开启的工作进程下能同时允许同时接收多个网络连接,worker_connections 1024; (最大用户连接数为1024个)

3)http块:是我们配置nginx使用最频繁的块,http块内部又分为: http全局块、server块

3.1http全局块:http全局块配置的指令包括文件引入、MIME-TYPE定义(mime类型定义)、日志自定义、连接超时时间、单连接请求数上限等

3.2server块:这块和虚拟机关系密切,虚拟机即从用户角度看,和一台独立的硬件主机是完全一样的,该技术产生是为了节省互联网服务器成本,每个http块可以包括多个server块,每个server块就相当于一个虚拟主机,而每个server块下又分为 server全局块和多个location块

4.1全局server块:最常见的配置是本虚拟主机的监听配置和本虚拟主机的名称、ip配置

4.2location块:一个server块可以有多个location块,这块的主要作用是基于nginx服务器接收到的请求字符串有关(例如:server_name/uri-string),对虚拟主机名称(也可以是ip别名)之外的字符串进行匹配、对特定的请求进行处理,地址定向,数据缓存和应用控制等功能,还有许多第三方模块的配置也在这里进行。

四、配置反向代理

1.准备工作(安装内部虚拟服务器,开放8080端口,本地映射网站 域名-地址)

?

反向代理请求示意图:用户请求网站,网站的代理服务器接收到请求,转发给网站的某台应用服进行处理,返回结果再转发给用户端

?注意:其中客户端访问的 www.123.com,我们win本地可以在host文件中进行配置?

?注意:我们一般在浏览器中输入网址,那么请求会先去本host检查有没有 域名对应的ip映射,如果有则直接取这个ip发请求,如果没有则去外部DNS解析获取ip,然后发请求访问目标站的服务器

2.配置nginx反向代理1

nginx配置文件位置:/usr/local/nginx/conf/nginx.conf

vim打开:配置如下图

?

配置的意思是:客户端请求服务器 192.168.17.129:80,? ?然后location进行转发至:配置的tomcat虚拟服务器 127.0.0.1:8080,可以注意到,反向代理转发时可以改变端口号,当然,数据返回时,报文数据会被nginx修改再转发给客户端

3.配置nginx反向代理2

实现效果:使用nginx反向代理,根据访问的路径跳转到不同端口的服务中,nginx监听端口为9001

访问 http://127.0.0.1:9001/edu/? ?直接跳转到 127.0.0.1:8080

访问 http://127.0.0.1:9001/vod/? ?直接跳转到 127.0.0.1:8081

准备两个tomcat服务器,一个8080端口,一个8081端口,并创建文件夹和测试页面

打开配置文件:vim /usr/local/nginx/conf/nginx.conf

在http块中,再添加一个server块,因为之前的server块是监听80端口的,现在这个server块需要监听9001端口。那也就是说不同的server块可以监听不同的端口请求。

?

?

?需要记得:使用新的端口号,那么就需要防火墙开启端口,以免端口被墙无法访问。

?另外需要说明一下:location ~ /edv/? 中的? “~ /edv/”其实就是路由的正则配置、

location [ =? | ~ | ~* | ^~] uri {? ? }

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

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

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

4) ^~ : 用于不含正则表达式的uri前,要求nginx服务器找到标识uri和请求字符串匹配度最高的location后,立即使用此location处理请求,而不再使用location块中的正则uri和请求字符串做匹配。

注意:如果uri包含正则表达式,必须有 ~? 或者 ~* 标识

五、配置nginx负载均衡

1.准备工作(反向代理服务器下配置两台相同的应用服务器,访问同一个资源(相同路径)时,代理服务器,通过不同的规则分发给应用服务器去处理请求,达到将大量请求压力分散到多台服务器来处理的目的)?

2.配置nginx配置文件

?需要说明一下:upstream myserver是定义一组服务器,服务器组名为 myserver,ip_hash是指这组服务器的分发规则,即按什么规则来将请求分配到这些服务器处理。server 115.28.63:8080 weight=1;? ?添加一个应用服务器,weight表示权重,权重值越高,表示被分配任务的次数要高yidian。

访问效果如下:多次请求,负载均衡会切换不同应用服处理

?3.nginx负载均衡分发规则:

?1)默认规则:轮询--逐个轮流分配请求,如果其中有一台宕机,那么就会自动剔除掉这台服务器。

2)权重--weight,默认是1 ,权重值越高表示被分配的请求越多

3)ip_hash: 按访问ip的hash结果分配,也就意味着一个客户端,永远只会被分配到固定的一台应用服上(可以解决session共享的问题),但是这种方式要命的是,如果某台应用服宕机了,那么nginx不会剔除这台服务器,那就意味着某一部分客户端就访问一直失败了。

?4)fiar--第三方规则,按应用服响应时间来分配请求,响应时间短的优先分配

?

?

?

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-07-17 12:19:55  更:2021-07-17 12:22:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 16:35:20-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码