• 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。

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

  • 相关阅读:
    带权并查集
    Dungeon Master (luo 三维 BFS )
    迷宫问题 (最短路径保存输出)
    Aggressive cows (北京大学ACM-ICPC竞赛训练暑期课 )
    滑雪 (北京大学ACM-ICPC竞赛训练暑期课 )
    棋盘问题 (北京大学ACM-ICPC竞赛训练暑期课 )
    简单的整数划分问题 ( 北京大学ACM-ICPC竞赛训练暑期课 )
    马走日 (DFS)
    蓝桥杯 (计算路径)
    最长单词 (分割字符串)(蓝桥杯-算法提高)
  • 原文地址:https://www.cnblogs.com/yanggb/p/13975918.html
Copyright © 2020-2023  润新知