首页 > 编程知识 正文

nginx反向代理转发请求 带宽,nginx反向代理转发端口

时间:2023-05-04 16:23:44 阅读:158945 作者:2412

我最近刚接触到nginx,在网上查了相关资料,发现最多见的形容nginx的词是反向代理,什么是反向代理? 因为一直不太理解,所以在网上查了反向代理。 以下是百度百科对反向代理的说明。

Reverse Proxy方式是指用代理服务器接收互联网上的连接请求,将请求转发给内部网络上的服务器,将从服务器得到的结果返回给请求互联网上连接的客户端的方式,代理服务器可以对外进行反向处理

在上述说明中,nginx反向代理的含义很容易理解。 也就是说,nginx相当于代理服务器。 客户端发出请求不是直接由tomcat服务器接受处理,而是经由nginx、nginx传送到tomcat服务器的tomcat处理完成并返回结果后,也可以经由nginx、nginx发送给客户端在整个过程中,nginx似乎作为真正的服务发挥作用,但事实并非如此。 nginx只是起到了传输的作用。

反向代理的特性可以通过让nginx直接处理不需要服务器处理的静态资源(HTML、JS、CSS等),让服务器处理JSP等来减轻服务器的压力。

让我们看一下使用nginx代理传输tomcat的示例。

1 .环境安排

安装nginx。 有关安装说明,请参考在Linux系统上安装nginx

安装tomcat。 tomcat的安装很简单。 直接用压缩包解压就可以了,这里不再详细说明。

2 .运行环境

nginx安装完成并启动后,在浏览器中直接输入Linux系统的IP地址,可以访问以下内容:

3 .配置分析

看了这个,你有兴趣知道为什么直接输入IP就可以访问nginx,是由哪里构成的吗? 查看nginx配置文件,缺省情况下,nginx文件夹下通常有conf文件夹,其中包含nginx.conf。 打开后,具有以下配置:

此代码是配置文件中的服务器,一个服务器相当于一个代理服务器,并且可以配置多个服务器。

一些属性分别意味着:

listen表示当前代理服务器的访问端口号,默认值为80个端口。 如果要配置多台服务器,则必须更改此处的默认端口。 如果不更改,则不知道访问哪个代理服务。

server_name :指示代理服务必须传输的地址,默认值为localhost。

位置—表示匹配客户端发送请求的路径。 其中“/”表示所有请求的路径都匹配。

root :表示请求匹配后,将在此文件夹中查找相应的文件。 root对以后处理静态资源很重要。

index :如果代理未指定主页,则缺省情况下进入index设置并查找主页。 可以设定多个。 如果找不到第一个主页,请访问第二个主页。

error_page :表示发生错误后访问的相关错误页,以下location也是与错误处理相关的配置:

PS :刚才说的nginx.conf路径可以在安装时由conf-path=组成。 我在安装过程中指定了/etc/nginx/nginx.conf路径。 但是,我在默认路径下找配置文件。 确实可以找到,但是nginx服务使用的不是这个,而是安装时指定的配置文件。 所以,在后来的操作中变成了悲剧。 不管怎么更改配置文件都没有反应。 一开始我觉得哪里布置错了,浪费了好几个小时的时间,所以在这里要注意。 闲话不多说,接下来进入正题。

3 .设置传输tomcat

传输tomcat配置很简单,只需在原始配置的基础上更改两个位置,如下所示:

在此设置的proxy_pass属性表示代理路径,nginx可以直接转发到此链路。

PS :如果只配置了一个服务器,则server_name可以有也可以没有。 系统不加载此配置。 如果有多个服务器,则必须配置server_name,并且nginx服务将根据其配置进行匹配。

更改配置后,不要匆忙重新启动nginx服务。 我该怎么办? 有要配置的东西吗? 不,当然,nginx支持热部署。 这意味着更改配置文件后,不需要重新启动服务。 只要重新加载nginx就可以了,应该很方便吧。 如果希望在加载配置之前检查配置文件中是否有语法错误,可以键入nginx -t检查错误。 如下所示。

下次刷新刚访问nginx的页面时,您发现访问的页面变成了要传输的tomcat。 页面如下。

页面效果与直接输入http://172.16.21.92:8080/的效果相同。

4 .动、静资源分离

以上说明了nginx反向代理的特性,可以在客户端访问静态资源时不请求tomcat服务器,减轻服务器的压力。 要实现此功能,必须按如下所示配置nginx.conf的server配置:

上面的代码中添加了用于过滤静态文件的location配置。 当客户端请求这些静态文件时,nginx将传输到/usr/local/ROOT/文件夹下。 根文件夹是从Tomcat web apps复制的,因此不需要请求服务器。

此时,再次刷新了访问nginx的页面,发现页面没有变化,但点击tomcat主页“Security Considerations HOW-TO”进行连接,发现了报纸404的错误。 下图:

为什么会这样呢? 原因是这个html网页在tomcat的webapps内的docs文件夹下,但是在根文件夹下设定静态资源传输路径,nginx找不到html文件,所以报告404错误。 此外,还验证了配置的静态资源与服务分离也没有问题。

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