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只要协议、域名、端口有任何一个不同,都被当作是不同的域,相互访问就会有跨域问题。

  • 相关阅读:
    结巴分词 0.14 版发布,Python 中文分词库
    Lazarus 1.0.2 发布,Pascal 集成开发环境
    Android全屏 去除标题栏和状态栏
    服务器日志现 Android 4.2 传将添多项新特性
    Percona XtraBackup 2.0.3 发布
    长平狐 Android 强制设置横屏或竖屏 设置全屏
    NetBeans 7.3 Beta 发布,全新的 HTML5 支持
    CppDepend现在已经支持Linux
    GromJS 1.7.18 发布,服务器端的 JavaScript
    Apache OpenWebBeans 1.1.6 发布
  • 原文地址:https://www.cnblogs.com/xiewenming/p/7445251.html
Copyright © 2011-2022 走看看