猿问

Ngin+Node 请求代理如何区分前端静态资源代理与接口请求代理,跨域如何解决适合?

如何使用Nginx反向代理请求能够将静态资源与接口请求区分开?

本人纯前端一名,在扩展后端知识,打算使用Node+Nginx试着走后端知识,因为Node的优势在于处理I/O,所以打算将静态资源交给Nginx来代理

    # 静态资源虚拟主机

    server {

        # 侦听8130端口

        listen       8130;

        #定义使用 www.redcoat.com访问

        server_name  www.redcoat.com;


        #charset koi8-r;

        root /Users/gi/Desktop/BandApp/WWW/www.redcoat.com/dist;

        # 设定本虚拟主机的访问日志

        #access_log  logs/host.access.log  main;


        # 默认请求

        location / {

            # 定义服务器的默认网站根目录位置

            root   /Users/gi/Desktop/BandApp/WWW/www.redcoat.com/dist;

            # 定义首页索引文件的名称

            index  index.html index.htm;

        }


        # 静态文件,nginx自己处理

        location ~ ^/(images|javascript|js|css|flash|media|static)/ {

            

            #过期30天,静态文件不怎么更新,过期可以设大一点,

            #如果频繁更新,则可以设置得小一点。

            expires 30d;

        }



        # 定义错误提示页面

        error_page  404              /404.html;


        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }


    }

疑问

先上代码,这是我在Nginx中的静态资源代理配置,代码也的确生效成功了但是如果我想请求的不是静态资源,而是后台的接口了?这样子配的话,岂不是我没加一个接口都要在这里配置一条路径匹配?(正确做法是怎样的?是像我写的下面那样解决吗?)

在未得到正确做法前,我思考了一下写前端时请求后台,我想到的是将后台的域名跟前台域名区分下,做一个子域名,这样前台请求接口就可以直接请求后台的域名接口,然后在Nginx中在代理下后台域名的请求,反向的Node应用中,可是这样做前端请求后端好像跨域了(之前以为子域名不会跨域),如果这样是正确的配置方法,那跨域问题后台怎么处理合适

米脂
浏览 1148回答 2
2回答

子衿沉夜

可以把后端的请求都统一加上前缀,如 /api/
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答