专业IT网络知识平台,分享IT百科知识、生活百科知识解答!

易企推科技
易企推科技

Nginx超简单教程,入门看这篇就够了

来源:小易整编  作者:小易  发布时间:2024-03-20 08:30
摘要:一Nginx简介1.1什么是NginxNginx是一个高性能的http和反向代理服务器,其特点是占用内存小,并发能力强。Nginx专为性能优化而开发,性能是其最重要的考量,能经受高负载的考验,有报告表明能支持高达50000个并发连接数...
一 Nginx简介1.1 什么是Nginx

Nginx是一个高性能的http和反向代理服务器,其特点是占用内存小,并发能力强。Nginx专为性能优化而开发,性能是其最重要的考量,能经受高负载的考验,有报告表明能支持高达50000个并发连接数。

Nginx超简单教程,入门看这篇就够了

1.2 反向代理

正向代理:在浏览器中配置代理服务器,通过代理服务器进行互联网访问。

反向代理:将请求发送到反向代理服务器,由反向代理服务器去选择目标服务器获取数据后,再返回给客户端,此时反向代理服务器和目标服务器对外就是一个服务器,暴漏的是代理服务器地址。

1.3 负载均衡

如果请求数过大,单个服务器解决不了,我们增加服务器的数量,然后将请求分发到各个服务器上,将原先请求集中到单个服务器的情况改为请求分发到多个服务器上,就是负载均衡。

1.4 动静分离

为了加快服务器的解析速度,可以把动态页面和静态页面交给不同的服务器来解析,加快解析速度,降低原来单个服务器的压力。

二 Nginx的安装

Nginx需要几个依赖包,分别是pcreopensslzlib,在安装nginx之前需要先安装这几个依赖。

2.1 安装pcre依赖

使用命令下载pcre压缩包

1wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz
登录后复制

解压压缩文件

1tar -xvf  pcre-8.37.tar.gz
登录后复制

进入解压后的名录,执行以下命令

1./configure
登录后复制

使用以下命令进行编译安装

1make && make install
登录后复制

查看安装的pcre版本号

1pcre-config --version
登录后复制2.2 安装openssl,zlib等依赖
1yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
登录后复制2.3 安装nginx

nginx官网下载nginx,官网地址:nginx.org/download/;

将压缩包拖到服务器上;

使用命令tar -xvf nginx-1.12.2.tar.gz解压压缩包;

使用命令./configure检查;

使用命令make && make isntall编译安装;

安装成功后,在usr会多出来一个文件夹,local/nginx,在nginxsbin文件夹下有启动脚本。

2.4 启动nginx

/usr/local/nginx/sbin文件夹下,使用以下命令启动

1./nginx
登录后复制登录后复制

然后浏览器访问服务器ip,nginx默认端口是80,出现以下页面则证明nginx安装成功;

2.5 Nginx常用的命令

使用这些命令时需要进入/usr/local/nginx/sbin文件夹

查看nginx的版本号

1./nginx -v
登录后复制

启动nginx

1./nginx
登录后复制登录后复制

关闭nginx

1./nginx -s stop
登录后复制

重新加载nginx

1./nginx -s reload
登录后复制2.6 Nginx的配置文件

nginx的配置文件在/usr/local/nginx/conf中的nginx.conf。我们将nginx.conf中注释的内容删除一下。

 1#user  nobody; 2worker_processes  1; 3 4#pid        logs/nginx.pid; 5 6events { 7    worker_connections  1024; 8} 910http {11    include       mime.types;12    default_type  application/octet-stream;1314    sendfile        on;15    #tcp_nopush     on;1617    #keepalive_timeout  0;18    keepalive_timeout  65;1920    #gzip  on;2122    server {23        listen       80;24        server_name  localhost;2526        location / {27            root   html;28            index  index.html index.htm;29        }30    }31}
登录后复制

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

1.全局块

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

1worker_processes  1;
登录后复制

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

2.events块

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

1worker_connections  1024;
登录后复制

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

3.http全局块

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

三 Nginx配置反向代理3.1 ngix代理流程

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

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

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

147.104.xxx.xxx www.javatrip
登录后复制

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

3.3 在nginx配置请求转发
1  server {2        listen       80;3        server_name  localhost;45        location / {6            root   html;7            index  index.html index.htm;8        }9  }
登录后复制

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

 1server { 2    listen       80; 3    server_name  47.104.xxx.xxx; 4 5    location / { 6        root   html; 7        proxy_pass http://127.0.0.1:8080; 8        index  index.html index.htm; 9    }10}
登录后复制

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

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

3.4 根据请求后缀分发

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

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

 1server { 2    listen       7001; 3    server_name  47.104.xxx.xxx; 4 5    location ~ /dev/ { 6        proxy_pass http://127.0.0.1:8080; 7    } 8 9    location ~ /prod/ {10        proxy_pass http://127.0.0.1:8081;11    }12}
登录后复制

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

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

= 严格匹配。如果这个查询匹配,那么将停止搜索并立即处理此请求。

~ 为区分大小写匹配(可用正则表达式)

!~为区分大小写不匹配

~* 为不区分大小写匹配(可用正则表达式)

!~*为不区分大小写不匹配

^~ 如果把这个前缀用于一个常规字符串,那么告诉nginx如果路径匹配那么不测试正则表达式。

四 Nginx配置负载均衡4.1 什么是负载均衡

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

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

4.2 配置nginx.conf

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

1upstream myserver{2    server 127.0.0.1:8080;3    server 127.0.0.1:8081;4}
登录后复制登录后复制

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

 1server { 2    listen       80; 3    server_name  47.104.xxx.xxx; 4 5    location / { 6        root   html; 7        proxy_pass http://myserver; 8        index  index.html index.htm; 9    }10}
登录后复制4.3 测试效果

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

4.4 nginx支持的几种负载策略

轮询(默认):每个请求按时间顺序逐一分配到不同的服务器,如果服务器down了,会自动剔除。

1upstream myserver{2    server 127.0.0.1:8080;3    server 127.0.0.1:8081;4}
登录后复制登录后复制

weight(权重):默认为1,权重越高,分配的请求越多。

1upstream myserver{2    server 127.0.0.1:8080 weight=1;3    server 127.0.0.1:8081 weight=2;4}
登录后复制

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

1upstream myserver{2    ip_hash;3    server 127.0.0.1:8080;4    server 127.0.0.1:8081;5}
登录后复制

fair(第三方):按后端响应时间进行分配,响应时间越短分配的请求越多。

1upstream myserver{2    server 127.0.0.1:8080;3    server 127.0.0.1:8081;4    fair;5}
登录后复制

由于动静分离在实际开发中也不常用,就不再写了。本篇文章做为一个nginx入门,到这里就基本完结了。最后留给大家一个问题思考一下:如何保证nginx的高可用?

以上就是Nginx超简单教程,入门看这篇就够了的详细内容,更多请关注易企推科技其它相关文章!


本文地址:网络知识频道 https://www.hkm168.com/jiqiao/1151446.html,易企推百科一个免费的知识分享平台,本站部分文章来网络分享,本着互联网分享的精神,如有涉及到您的权益,请联系我们删除,谢谢!


网络知识
小编:小易整编
相关文章相关阅读
  • 用U盘轻松实现一键重装系统的小白装机教程

    用U盘轻松实现一键重装系统的小白装机教程

    在现代社会,电脑已经成为人们生活中不可或缺的工具。然而,由于各种原因,我们有时候需要重装电脑系统来解决一些问题或提升性能。但是,对于一些小白用户来说,重装系统可能是一项困难的任务。因此,本文将介绍一款小白一键重装系统的u盘装机教程,帮助小白...

  • CSS颜色设置方法:HEX、RGB、HSL的简单对比

    CSS颜色设置方法:HEX、RGB、HSL的简单对比

    css中,颜色值有多种表示方法,例如颜色名、十六进制颜色、rgb()、hex()、hsl()等等。那你知道hex、rgb和hsl之间有什么区别吗?下面本篇文章就来给大家简单对比一下hex、rgb、hsl,看看它们区别。不知道你是否了解HE...

  • 在 Windows 11 中使任务栏透明的 6 种简单方法

    在 Windows 11 中使任务栏透明的 6 种简单方法

    随着操作系统向公众发布,有关windows11的功能和整体性能的信息一直在互联网上流行。尽管该操作系统存在一些错误,但人们仍在寻找对其进行自定义并使其感觉更像自己的方法的方法。Windows11提供了多种选项来更改系统外观,但除了颜...

  • 如何设置Nginx代理服务器以在多台服务器之间实现负载均衡?

    如何设置Nginx代理服务器以在多台服务器之间实现负载均衡?

    如何设置Nginx代理服务器以在多台服务器之间实现负载均衡?引言:在现代互联网应用程序中,服务器负载均衡是保证应用程序高可用性、高性能和可扩展性的重要因素之一。Nginx是一个高性能的开源代理服务器,具有强大的负载均衡功能。本文将介绍如何利...

  • 百度智慧课堂怎么使用?百度智慧课堂使用教程

    百度智慧课堂怎么使用?百度智慧课堂使用教程

    百度智慧课堂怎么使用?百度智慧课堂是一款可以再网上带给你丰富的线上学习服务的线上学习软件,很多名师教授在其中免费授课,是很多人在线提升自己的重要渠道,不过很多新用户并不懂得该如何正确使用该软件,下面就由小编为大家带来有关百度智慧课堂的使用教...

  • 解析如何解锁iPhone屏幕的教程,帮你解决手机被锁定的问题

    解析如何解锁iPhone屏幕的教程,帮你解决手机被锁定的问题

    你是否曾经遇到过忘记iphone的锁屏密码的情况?或者是否遭遇过熊孩子乱试密码导致iphone被锁定一个小时的情况呢?如果你曾经有类似的经历,需要快速解锁屏幕,那么可以考虑使用苹果屏幕解锁工具。这款工具是专为苹果用户设计的,可以帮助解锁苹果...

  • 在 Windows 11上更改文件类型的 3种最简单方法

    在 Windows 11上更改文件类型的 3种最简单方法

    操作系统可以使用相应项目的文件扩展名识别和打开任何文件。但是,如果文件格式不正确,文件有时可能无法打开。因此,您需要更改文件类型以使Windows使用适当的应用程序打开它。在本文中,我们将为您提供有关如何更改文件类型Windows11...

  • win7系统修复的详细教程

    win7系统修复的详细教程

    win7系统怎么修复呢?我们平时在使用电脑的过程中难免会遇到一些系统问题,有些系统问题比较严重,我们就需要对系统进行修复,修复系统的方法有不少,下面小编就跟大家分享一下win7系统修复的详细教程,感兴趣的小伙伴们快来看看吧!1、在开机启动的...

  • 周排行
  • 月排行
  • 年排行

精彩推荐