Nginx 访问静态资源部署之解决跨域问题。

转载https://blog.csdn.net/ouyang111222/article/details/53266107

前言:

传统的web项目,一般都将静态资源连同项目部署在容器中(如tomcat、jetty),但是有时需要把这些静态资源文件单独拿出来,ngnix这时可以来充当静态资源服务器的功能。

配置Nginx/Tengine

请先确保自己的服务器安装了Nginx或者Tengine(本文以Tengine为例)

  • 将静态资源文件拷贝到指定目录,如/home/admin

  • 配置nginx-proxy.conf文件

 server {
        listen       8089;
        server_name  localhost;
        location /resource_static/ {
            root   /home/admin/;
        }

    }

本文配置的监听端口为8089,具体是情况而定

  • 测试验证

上面配置表示输入 localhost:8089/resource_static/ 时会访问本机的/home/admin/resource_static/ 目录,在/home/admin/resource_static/下新建一个文件test.json,如下所示:

这里写图片描述

在浏览器中输入:

localhost:8089/resource_static/test.json

跨域问题

跨域问题经常会遇到,如下面的错误:

Access to Font at 'http://xxx:8089/resource_static/console/hello.ttf' from origin 'http://xxx:8089' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://xxx:8080' is therefore not allowed access.

解决方法:

        location /resource_static/ {
            add_header 'Access-Control-Allow-Origin' '*';
            add_header 'Access-Control-Allow-Credentials' 'true';
            add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
            add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
            root   /home/admin/;
        }

参考资料https://michielkalkman.com/snippets/nginx-cors-open-configuration.html

如果配置成这样

        location /resource_static/ {
            root   /home/admin/;
            add_header 'Access-Control-Allow-Origin' '*';
            add_header 'Access-Control-Allow-Credentials' 'true';
            add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
            add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
        }

                add_header 'Access-Control-Allow-Origin' '*';
                #
                # Om nom nom cookies
                #
                add_header 'Access-Control-Allow-Credentials' 'true';
                add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
nginx提示403 Forbidden是指服务器拒绝访问某个资源或执行某个操作的错误。而关于跨域问题nginx可以通过配置反向代理来解决。引用和引用都提到了nginx反向代理解决前端跨域问题。 为了解决跨域问题,可以在nginx配置文件中添加以下配置: ``` location /api { proxy_pass http://backend_server; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } ``` 上述配置将请求转发给后端服务器,并在请求头中添加必要的信息。其中,`/api`是前端访问后端接口的URL前缀,`backend_server`是后端服务器的地址。 这样配置后,在前端访问接口时,只需要将接口的URL改为`/api/接口路径`即可。 需要注意的是,配置完成后,需要重启nginx使配置生效。 以上是解决nginx提示403 Forbidden跨域问题的方法。希望对您有帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [项目部署问题:xftp无法连接服务器、Nginx403 Forbidden解决nginx反向代理解决前端跨域问题](https://blog.csdn.net/jcoiwenwfkowe/article/details/117867869)[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^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [nginx访问静态资源403 forbidden的问题](https://blog.csdn.net/weixin_43358050/article/details/127320742)[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^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值