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

22 篇文章 2 订阅
13 篇文章 0 订阅

简介

  • 这里静态资源就以之前的一个项目文章地址为例,源码 Github,项目本身很简单,只是分别对第三方的服务端、自己的服务端发起请求。

  • 不论是调用第三方服务端接口,还是自己的后端服务,如果跨域未在服务器端处理,那么 Vue 部署时需要在生产环境下处理跨域。下面以 Windows 为例,采用 Nginx 两个步骤,来实现针对 Vue 项目的静态资源服务器及跨域配置。

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

2019-04-29-CrossOrigin.jpg

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

效果

2019-04-18-Appearance.gif

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

  • vue-cli搭建的项目通过npm run build进行构建,完成生产环境下的打包,生成dist静态资源目录,eg: E:/dist

  • 编辑 Nginx 配置文件,在 nginx.conf 文件中新增server节点如下(主要是root的路径指向打包后的目录)

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!

根据提供的引用内容,fastdfs-nginx-module的配置跨域可以通过在nginx配置文件中增加以下配置来实现\[3\]。具体配置如下: ``` location / { add_header Access-Control-Allow-Origin *; add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS'; add_header Access-Control-Allow-Headers 'DNT,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range'; add_header Access-Control-Expose-Headers 'Content-Length,Content-Range'; } ``` 这段配置会在响应头中添加Access-Control-Allow-Origin字段,允许所有来源的请求访问。同时,还会添加Access-Control-Allow-Methods字段,指定允许的请求方法,以及Access-Control-Allow-Headers字段,指定允许的请求头。最后,还会添加Access-Control-Expose-Headers字段,指定允许客户端获取的响应头。 请注意,这只是最简单的配置示例,实际情况中可能需要根据具体需求进行调整。 #### 引用[.reference_title] - *1* *2* [nginx配置fastdfs模块内容时报错unknown directive ngx_fastdfs_module in /usr/local/nginx/conf/nginx.conf:50](https://blog.csdn.net/Cafune_f/article/details/125571122)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [FastDFS+nginx+fastdfs-nginx-module服务器配置详解](https://blog.csdn.net/tjcyjd/article/details/69663348)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^koosearch_v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Heartsuit

别说什么鼓励,这就是互联网乞讨

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值