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--第三方规则,按应用服响应时间来分配请求,响应时间短的优先分配

 

 

 

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值