美文网首页
Linux_334_Nginx动静态分离实践思路

Linux_334_Nginx动静态分离实践思路

作者: 为宇绸缪 | 来源:发表于2022-12-13 22:01 被阅读0次

    准备好四台linux虚拟机,vmware安装即可
    四台机器的环境如下
    lb01 192.168.178.123 用于对域名的解析,作用是对请求的判断以及负载均衡

    lb02 192.168.178.124 静态服务器组
    web01 192.168.178.125 上传服务器
    web02 192.168.178.126 解析默认的动态url
    备注:需要修改hosts文件,修改www.yu.com和lb01的地址做一个解析关系

    1、当用户访问 www.yu.com/uploads,该形式的URL就判断为是上传的请求,代理服务器把该类型的请求转发给上传服务器
    2、当用户访问 www.yu.com,这种形式的URL,就让他走默认的服务器组,loaction / {}
    3、当用户访问 www.yu.com/static,该形式的URL就判断为是静态请求,转发给文件服务器组
    如上需求,有关服务器组的配置如下

    nginx实现了负载均衡的参数,主要有两个
    proxy_pass http://server_upstream/;

    配置静态服务器组
    upstream static_pools{
    server 192.168.178.124;
    }

    配置上传服务器池
    upstream upload_pools {
    server 192.168.178.125;
    }

    默认的动态服务器组
    upstream default_pools{
    server 192.168.178.126;
    }

    判断url的写法
    (1)nginx的location功能的判断
    判断当用户url是 www.yu.com/static/zhou.mp3
    location /static/ {
    proxy_pass http://static_pools; # 这是请求转发给地址池
    include proxy.conf; # 包含语法,包含一个配置文件的参数到该虚拟主机中,属于代理参数优化写法
    }
    判断用户url是www.yu.com/upload/xx.jpg
    location /upload/ {
    proxy_pass http://upload_pools;
    include proxy.conf;
    }
    # 最低级的url判断,所有的请求就都走这里了
    location / {
    proxy_pass http://default_pools;
    include proxy.conf;
    }

    (2)使用shell语法来进行判断
    # 如果用户请求url是static开头的就做什么事
    # 如果用户的url是www.yu.com/static/a.mp4,具体请求的信息如a.mp4就会报存在分组当中,然后携带参数进行转发
    if (request_url ~* "^/static/(.*)")
    {
    proxy_pass http://static_pools/$1;
    }

    判断请求是upload时候做什么事

    if (request_url ~* "^/upload/(.*)")
    {
    proxy_pass http://uoload_pools/$1;
    }

    location / {
    proxy_pass http://default_pools;
    include proxy.conf;
    }

    有关代理参数的优化写法
    1、之前未优化的写法
    server {
    listen 80;
    server_name _;
    proxy_pass http://www_pools;
    proxy_set_header Host host; proxy_set_header X-Forwarded-Forremote_addr;
    }

    改进
    location / {
    proxy_pass http://www_pools;
    include proxy.conf
    }
    location /static/ {
    proxy_pass http://static_pools;
    include proxy.conf
    }
    只需要在外部的nginx.conf同级目录,创建proxy.conf即可
    常见的生产使用的代理参数如下,proxy.conf内容
    proxy_set_header Host host; proxy_set_header X-Forwarded-Forremote_addr;
    proxy_connect_timeout 60;
    proxy_send_timeout 60;
    proxy_read_timeout 60;
    proxy_buffer_size 4k;
    proxy_buffers 4 32k;
    proxy_busy_buffers_size 64k;
    proxy_temp_file_write_size 64k;

    location /static/ {
    proxy_pass http://static_pools;
    include proxy.conf;
    }

    相关文章

      网友评论

          本文标题:Linux_334_Nginx动静态分离实践思路

          本文链接:https://www.haomeiwen.com/subject/agbcqdtx.html