Heartsuit's Simple Blog

A place to hold mainly reading notes, and some technical stuff occasionally. 这里主要是一些读书笔记、感悟;还有部分技术相关的内容。


Project maintained by heartsuit Hosted on GitHub Pages — Theme by mattgraham

入门Nginx之-静态资源服务器及跨域配置

目录[-]

简介

Notes: 补充一下,何为跨域?借用安全大神吴翰清名作《白帽子讲 Web 安全》中的一张图:

2019-04-29-CrossOrigin.jpg

即,但凡协议、主机、端口中的任一个不同,该请求便为跨域操作。

效果

2019-04-18-Appearance.gif

第一步 通过 Nginx 搭建静态资源服务器

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  logs/host.access.log  main;

    location / {
        root   E:/dist;
        index  index.html index.htm;
    }
}

Notes:

  1. Linux 下 Nginx 配置文件的默认路径:/etc/nginx/nginx.conf,通过vi /etc/nginx/nginx.conf修改。
  2. 实际项目中server_name一般采用域名,这里在本机测试,设置为 localhost。

至此,静态资源服务器已搭建完毕,nginx -s reload刷新 Nginx 配置;在浏览器访问对应的地址+端口,不出意外,应该可以正常访问到 Vue 的前端页面。然而,问题是,这些接口由于需要跨域都不能正常调用(╥╯^╰╥)。

2019-04-29-NginxStatic.png

第二步 在 Nginx 中完成跨域配置

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  logs/host.access.log  main;

    location / {
        root   E:/dist;
        index  index.html index.htm;
    }

    # Solve the CORS problem
    location /3rd  {                              # custom prefix: third party API
        rewrite  ^/3rd/(.*)$ /$1 break;           # rewrite the URL and redirect
        include  uwsgi_params;
        proxy_pass   http://www.tuling123.com/openapi/api;   # Third party API URL
    }

    location /api  {                              # custom prefix
        include  uwsgi_params;
        proxy_pass   http://your-server-ip:port;   # Server side API URL
    }
}

Notes: Vue 开发环境跨域

2019-04-19-DevCors.png

至此,便实现了基于 Nginx 的静态资源服务器及跨域配置,后续将从实例出发,逐步介绍Nginx反向代理Nginx负载均衡

Source Code: Github


If you have any questions or any bugs are found, please feel free to contact me.

Your comments and suggestions are welcome!


「说点什么吧😊~~😊」: