zoukankan      html  css  js  c++  java
  • nginx解决跨域问题

    背景:由于公司有个项目是.net写的,但是开发人员已经离职好久了。老项目也不怎么变动就没有招新人,于是乎就把项目交接给了一位php开发人员。

              今天那位php开发人员跑过来,说https://wap.abc.com/域名要增加功能,因为第三方有调整了。但是之前的.net代码又不敢动,域名在程序里面还是写死的。

              就是说  1.不能换域名;

                          2. 在原来的项目下增加新功能

                          3.已经没有.net开发人员,还有php开发者要如期完成。

              方法:新功能用php写比如:https://wap.abc.com/php-func/, 然后第三方访问https://wap.abc.com/php-func/就用php处理,php项目在https://asm.test.com/

              剩余其他的访问地址还是用原来.net处理。

              最后只需要解决访问 https://wap.abc.com/php-func 就交给https://asm.test.com/处理返回返回数据

    因为所以的web请求都必须经过nginx代理,所以上面的需求实现由nginx代理处理就可以了。

    so,nginx配置如下:

    [root@192-168-100-100 net.conf]# more wap.abc.conf 
    server {
        listen       80;
        server_name  wap.abc.com;
        access_log  /var/log/nginx/wap.abc.log main;
        set $web_url $host;
        ##add###
        location ^~/phpfunc/ {
           rewrite ^/phpfunc/(.*)$ /$1 break;
           proxy_pass         http://asm.test.com;
           }
        ###end####
        location / {
            proxy_pass         http://net.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;
            set $domain default;
            }
    }
    

      ps:还有其他解决方案,比人开发人员可以写一个html放在.net项目下面,然后通过html实现跨域访问,还有其他网上说的一些方法

    测试get和post请求都是正常的,访问的https://wap.abc.com/php-func/下面的方法 都会让 https://asm.test.com/ 下面的方法处理 方法名相同

    什么情况下是跨域:两个url只要协议、域名、端口有任何一个不同,都被当作是不同的域,相互访问就会有跨域问题。

  • 相关阅读:
    第1次作业
    第0次作业
    总结报告
    第14、15周作业
    第七周作业
    第六周作业
    第四周作业
    第四次作业
    第三次作业
    2018第二次作业
  • 原文地址:https://www.cnblogs.com/xiewenming/p/7445251.html
Copyright © 2011-2022 走看看