zoukankan      html  css  js  c++  java
  • nginx配置静态文件和服务代理

    需要把前后端分离的项目部署到服务器,前端静态资源通过nginx代理访问,接口请求代理到指定端口的服务上,先看配置:

    server {
        listen       4040;
        server_name  127.0.0.1;
        
        location / {
           root   /opt/demo/static;
           index  index.html index.htm;
        }
        
        location /api {
          proxy_pass   http://127.0.0.1:4041/;
        }
    }
    

    nginx代理端口4040, 后台服务端口4041. 这个要注意了,nginx监听的端口不能与服务端口相同

    /根目录 --被代理到--> /opt/demo/static路径下

    那么在static下的静态资源就可以直接被访问了,形式: http://127.0.0.1:4040/index.html

    下面重点来了!!!

    所有以api开头的请求--被代理到-->4041端口

    也就是说 http://127.0.0.1:4040/api/test 会访问到后台服务.这里面有个关键点

    http://127.0.0.1:4041/http://127.0.0.1:4041 是有区别的!!!

    假如请求是: http://127.0.0.1:4040/api/test

    • 加/ --被代理到--> http://127.0.0.1:4041/test
    • 不加/ --被代理到--> http://127.0.0.1:4041/api/test

    也就是说,加了/会被代理到指定的路径,不加/会被代理到指定路径+api的路径下!!!

    你品,细细的品!


    记录下线上nginx配置:

    location /api {
      proxy_pass   http://127.0.0.1:4041/;
      proxy_redirect off;
      proxy_set_header Host $host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
      proxy_max_temp_file_size 0;
      proxy_connect_timeout 300s;
      proxy_send_timeout 300s;
      proxy_read_timeout 300s;
      proxy_buffer_size 4k;
      proxy_buffers  4 32k;
      proxy_busy_buffers_size 64k;
      proxy_temp_file_write_size 64k;
      index  index.html index.htm;
      client_body_buffer_size 128k;
    }
    
  • 相关阅读:
    datatime模块
    快速幂
    | 与|| ,& 与&&
    sql----order by
    pandas iterrows()
    黄包车比赛 python学习
    右键git-bash不能使用
    17flask分页
    16flask错误处理
    15跨站请求伪造
  • 原文地址:https://www.cnblogs.com/linyufeng/p/13361640.html
Copyright © 2011-2022 走看看