Designed by 77
加载资源 ......
感谢 ♥ 作者
先不感谢了

nginx静态资源反向代理

这里,我们试图搞清楚几个概念:web服务器、nginx、代理、反向代理和静态资源。

尝试获取服务器上的资源

互联网其实没有什么神秘的,简单来说就是客户端向服务器请求资源,然后服务器按照要求返回,仅此而已。

如果我现在有一台具有公网ip的centos服务器,假设我知道在该服务器上有如下路径:/statics,我要如何去获取上面的资源呢?就像打开网站一样,我们试着在浏览器输入ip/statics:

不出意外的话,你会看到上面的拒绝连接返回信息,是的,因为这时候服务器识别不了你的访问指令,也就不知道该干什么。

web服务器

上面我们虽然有了一台物理的机器,但是这台机器目前还无法理解浏览器发过来的资源请求,于是就出现了这样一种软件,这种软件被安装在服务器上,可以监听特定的端口,并对特定的请求作出相应回应,这种软件就叫做web服务器。常见的web服务器有nginx、apache等。我们可以试着再次通过浏览器访问安装了web服务器的服务器:

这时候发现服务器返回了一个html文件,上面说当前目录不能访问。虽然仍然访问不到该地址,但是至少服务器已经能够知道我们想要干什么,并且给出反应了。

代理和反向代理

现在我们知道了,web服务器就是物理服务器的库管员,所有来自客户端的请求都会先经过web服务器,然后web服务器从物理机器上获取资源后再返回给客户端,因此客户端实际上是在跟web服务器打交道,web服务器就是客户端的代理,代表客户端去物理机器上取资源。与此同时,web服务器也可以作为物理服务器的反向代理,代理物理服务器响应客户端的请求。

一个库管员的自我修养

作为一个库管员,最重要的,web服务器要知道每种资源的位置,以及,如果这不是一个简单的拿货,而是要加工处理一个零件,应该找谁。

因此我们会有这样一个配置文件,上面写着所有问题的答案,我们以nginx为例:

蓝框中写着只监听80端口的请求,其他端口不理他;

黄框中写着,如果访问的是根目录,则去根目录下找index.php等文件;

红框中写着,如果请求的是xx.php文件,则转给本地的9000端口上的人,并告9000端口上的人,用他那的index.php来找xx.php并按照他们那儿方式来处理;

绿框中写着,如果请求的是js、css或者其他的静态资源,则去相应的路径下寻找,比如,当我们的html文件中写着<link href="xxx/xxx.css" rel="stylesheet">,那么就去/usr/share/nginx/html/value/application/views/admin/下面的xxx/xxx.css找。

到这里,nginx的静态资源反向代理如何配置实现已经都阐述清楚了,下面来简单做个案例实现。

nginx静态资源反向代理的简单实现

只需要进入nginx安装目录的conf目录下,修改nginx.conf文件,在一个server{}中添加一个location路由配置即可:

server {
    listen 80;

    location /yanggb/ {
        # 映射的本地资源目录,alias必须带最后的斜杠,否则报错500
        alias D:/yanggb/;
        autoindex on;
    }
}

这样,所有放在服务的D:/yanggb/下的文件,都可以通过在浏览器上输入ip/yanggb/进行访问,比如ip/yanggb/test.html。

 

"把【想做】变成【去做】,比如想提升自己,就先看两本书,而不是把时间浪费在考虑上。"

posted @ 2020-11-15 10:26  yanggb  阅读(6209)  评论(0编辑  收藏  举报