首页 > 编程知识 正文

nginx keepalive(nginx安装配置)

时间:2023-05-06 20:04:14 阅读:103985 作者:2487

00-1010

一 Nginx简介

nginx是一款高性能的http和反向代理服务器,其特点是内存消耗小,并发性强。Nginx是专门为性能优化而开发的。性能是它最重要的考虑因素,它能承受高负荷的考验。一些报告显示,它可以支持多达50,000个并发连接。

00-1010转发代理:在浏览器中配置代理服务器,通过代理服务器访问互联网。

反向代理:请求发送到反向代理服务器,反向代理服务器选择目标服务器获取数据,然后返回给客户端。此时反向代理服务器和目标服务器对外都是一个服务器,代理服务器地址就显露出来了。

00-1010如果请求数量太大,单个服务器无法解决,我们会增加服务器数量,然后将请求分配到每个服务器,将原来的请求集中在单个服务器的情况改为分配到多个服务器,也就是负载均衡。

1.1 什么是Nginx

为了加快服务器的解析速度,可以将动态页面和静态页面交给不同的服务器进行解析,从而加快解析速度,减轻原来单一服务器的压力。

1.2 反向代理

Nginx需要几个依赖包,分别是pcre、openssl和zlib,需要在安装Nginx之前安装。

00-1010使用命令下载压缩的pcre包WGET 3358 downloads . SourceForge . net/project/PCRE/PCRE/8.37/PCRE-8.37 . tar . gz将压缩文件tar-xvf pcre-8.37.tar.gz解压缩到解压缩目录中。执行以下命令。/使用以下命令编译安装make make install查看已安装pcre的版本号:pcre-config-version

1.3 负载均衡

yum-y install make zlib zlib-develop gcc-c libtool OpenSSL OpenSSL-de Vel

1.4 动静分离

nginx官网下载nginx,官网地址:https://nginx.org/download/;把压缩好的包拖到服务器上;使用命令tar-xvf nginx-1.12.2.tar.gz解压缩压缩包;使用命令。/configure检查;使用make isntall命令编译安装;安装成功后,在usr、local/nginx中会有一个额外的文件夹,在nginx的sbin文件夹下会有一个启动脚本。

00-1010在/usr/local/nginx/sbin文件夹中,使用以下命令启动。/nginx然后浏览器访问服务器ip,nginx默认端口为80,下一页显示nginx安装成功;

二 Nginx的安装

您需要进入/usr/local/nginx/sbin文件夹才能使用这些命令。

检查nginx的版本号。/nginx -v启动nginx。/nginx关闭nginx。/nginx -s停止重新加载nginx的配置文件。/nginx-sreload

2.1 安装pcre依赖

nginx in/usr/local/nginx/conf。让我们删除nginx.conf中的注释

#用户无人;

worker _ processes 1;

#pid日志/nginx . PID;

事件{

worker _ connections 1024

}

http {

包括mime.types

default_type应用程序/八位字节流;

sendfile on

# tcp _ nopush on

# keepalive _ time out 0;

keepalive _ timeout 65

# gzip on

服务器{

听80;

server_name localhost; location / { root html; index index.html index.htm; } } }

nginx的配置文件包含三部门。

1.全局块

从配置文件开始到events块之间的内容,主要会设置一些nginx服务器整体运行的配置指令。

worke_processes 1;

这个代表nginx处理并发的关键配置,值越大,处理并发能力越强。但是会受到硬件、软件等约束。

2.events块

events块涉及的指令主要影响nginx服务器与用户网络的连接。

worker_connections 1024;

这个代表nginx支持的最大连接数。

3.http全局块

nginx服务器配置最频繁的部分。http全局块包含http块和server块。

三 Nginx配置反向代理

3.1 ngix代理流程

本地浏览器访问nginx服务器,nginx服务器反向代理tomcat服务器,当我们请求nginx的时候直接访问到tomcat。tomcat的安装这里就不在讲了,我将tomcat和nginx安装在了同一台服务器上。

3.2 配置ip和域名的绑定关系

由于我们的nginx没有域名,为了演示,因此我们在本地host文件中配置nginx服务器ip和域名进行绑定。这个host文件的具体位置在C:WindowsSystem32driversetc。在host文件中增加一句配置:

47.104.xxx.xxx www.javatrip.com

前面的ip是服务器的ip地址,后面的域名是我随便起的用于绑定这个ip的一个域名。配置好之后,我们使用域名访问一下tomcat,如果能请求到omcat默认页面,则配置成功。

3.3 在nginx配置请求转发

server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } }

我们将以上默认的配置文件做个修改:

server { listen 80; server_name 47.104.xxx.xxx; location / { root html; proxy_pass http://127.0.0.1:8080; index index.html index.htm; } }

以上这段配置的意思就是请求是47.104.xxx.xxx:80,都会转发至47.104.xxx.xxx:8080。

现在浏览器访问www.javatrip.com,发现直接转发到了tomcat上了,这样简单的反向代理就完成了。

3.4 根据请求后缀分发

我们再解压一个tomcat,端口号设置为8081,分别在两个tomcat下webapps目录下面新建dev和prod目录,然后在该目录下写一个文件。

将请求www.javatrip.com:7001/dev转发到tomcat8080,将请求www.javatrip.com:7001/prod转发到tomcat8081。现在我们的nginx监听的端口号是7001。打开nginx的配置文件,新建一个server如下:

server { listen 7001; server_name 47.104.xxx.xxx; location ~ /dev/ { proxy_pass http://127.0.0.1:8080; } location ~ /prod/ { proxy_pass http://127.0.0.1:8081; } }

然后试试效果,分别访问`www.javatrip.com:7001/dev/a.html和www.javatrip.com:7001/prod/a.html,效果如下:

其中,配置转发的时候用到了~,其含义内容如下:

= 严格匹配。如果这个查询匹配,那么将停止搜索并立即处理此请求。~ 为区分大小写匹配(可用正则表达式)!~为区分大小写不匹配~* 为不区分大小写匹配(可用正则表达式)!~*为不区分大小写不匹配^~ 如果把这个前缀用于一个常规字符串,那么告诉nginx如果路径匹配那么不测试正则表达式。

四 Nginx配置负载均衡

4.1 什么是负载均衡

负载均衡(Load Balance),意思是将负载(工作任务,访问请求)进行平衡、分摊到多个操作单元(服务器,组件)上进行执行。是解决高性能,单点故障(高可用),扩展性(水平伸缩)的终极解决方案。

现在我们想实现的效果是通过访问www.javatrip.com:7001/prod/a.html,将请求分别分发到两个tomcat上面去,首先我们在tomcat8080上新建一个prod的文件夹,里面放一个a.html的文件。这样tomcat8081和tomcat8080两个上就都有了一个prod的文件加且里面有一个a.html的文件。

4.2 配置nginx.conf

首先,在http块中配置两个tomcat的服务列表

upstream myserver{ server 127.0.0.1:8080; server 127.0.0.1:8081; }

其次,在server块中配置规则:

server { listen 80; server_name 47.104.xxx.xxx; location / { root html; proxy_pass http://myserver; index index.html index.htm; } }

4.3 测试效果

访问地址:www.javatrip.com:7001/prod/a.html,多刷新几次。发现有的请求到tomcat8080上,有的请求到tomcat8081上。

4.4 nginx支持的几种负载策略

轮询(默认):每个请求按时间顺序逐一分配到不同的服务器,如果服务器down了,会自动剔除。upstream myserver{ server 127.0.0.1:8080; server 127.0.0.1:8081; }weight(权重):默认为1,权重越高,分配的请求越多。upstream myserver{ server 127.0.0.1:8080 weight=1; server 127.0.0.1:8081 weight=2; }ip hash:每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后台服务器,可以解决session的问题。upstream myserver{ ip_hash; server 127.0.0.1:8080; server 127.0.0.1:8081; }fair(第三方):按后端响应时间进行分配,响应时间越短分配的请求越多。upstream myserver{ server 127.0.0.1:8080; server 127.0.0.1:8081; fair; }

由于动静分离在实际开发中也不常用,就不再写了。本篇文章做为一个nginx入门,到这里就基本完结了。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。