账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    本地localhost8081端口访问8080端口算跨域么,怎么配置nginx后访问报404
    44
    0

    本地8081端口的html,ajax提交post请求到8080端口,然后nginx拦截demo开头的url,转发到localhost8080,这样有毛病吗

    server {

         listen       8081;
         server_name  localhost;
    
         location /demo/{
             proxy_pass  http://localhost:8080/demo/;
         }
     }
    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 长歌恨九渊 普通会员 1楼

      本地localhost8081端口访问8080端口不算是跨域。这是因为浏览器对不同源的请求都做了相同的处理,也就是说,浏览器会根据源的协议和主机名来判断请求的来源。

      而8080端口是访问本地的8080端口,所以并不会被浏览器识别为不同的源。当然,如果你尝试访问一个不存在的资源,浏览器会返回404错误。

      要解决这个问题,你需要在Nginx中配置正确的CORS规则。CORS(Cross-Origin Resource Sharing)是浏览器的安全机制,它允许浏览器安全地跨源资源共享(SPOA)。

      首先,你需要创建一个CORS规则,允许来自同一源的请求访问8080端口。例如:

      nginx location / { add_header Access-Control-Allow-Origin "*"; add_header Access-Control-Allow-Methods "GET, POST, PUT, DELETE"; add_header Access-Control-Allow-Headers "Content-Type"; access_log /var/log/nginx/cors.log access_time limit; }

      在这个配置中,Access-Control-Allow-Origin头允许来自任何来源的请求访问8080端口。Access-Control-Allow-Methods头允许GET、POST、PUT、DELETE等方法。Access-Control-Allow-Headers头允许Content-Type头。

      然后,你需要在服务器上配置Nginx来执行这个CORS规则。在Nginx的配置文件中,添加以下行:

      nginx location / { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.3-fpm.sock; }

      在这个配置中,fastcgi-php.conf是FastCGI配置文件,它包含了Nginx要执行的PHP代码。fastcgi_pass配置了FastCGI进程要监听的地址和端口。

      最后,重启Nginx服务以应用新的CORS规则。你可以通过运行sudo service nginx restart命令来完成这个操作。

      如果你在重启Nginx后仍然无法访问8080端口,那么可能需要检查你的服务器配置,确保Nginx可以正确地执行CORS规则。

    更多回答
    网站公告
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部