apache搭建静态网站,moongoose搭建网站后台,出现的跨域问题解决

编程入门 行业动态 更新时间:2024-10-24 16:31:46

apache搭建静态<a href=https://www.elefans.com/category/jswz/34/1771113.html style=网站,moongoose搭建网站后台,出现的跨域问题解决"/>

apache搭建静态网站,moongoose搭建网站后台,出现的跨域问题解决

文章目录

  • 1,问题描述
    • 1.1,当网页和后台是不同服务时会产生跨域问题
    • 1.2,跨域问题
  • 2,nginx端口转发解决跨域问题
    • 2.1,下载并安装nginx
      • 2.1.1,解压后如下所示
      • 2.1.2,进入解压目录后,执行配置脚本
    • 2.2,编译安装
    • 2.3,nginx使用
      • 2.3.1,设置nginx开机自启动
      • 2.3.2,修改配置文件配置端口转发
      • 2.3.3,启动nginx
      • 2.3.4,发现由于80端口被apache占用了,nginx无法启动
      • 2.3.5,直接关闭apache,使用nginx托管静态网站代码
  • 3,更新动态IP到nginx配置文件

1,问题描述

1.1,当网页和后台是不同服务时会产生跨域问题

Access to XMLHttpRequest at ‘http://ubuntu:9607/login’ from origin ‘’ has been blocked by CORS policy: Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

1.2,跨域问题

同源策略会导致跨域问题
所谓"同源"指的是"三个相同"。协议相同域名相同端口相同

.html:同源
.html:不同源(域名不同)
.html:不同源(域名不同)
:81/dir/other.html:不同源(端口不同)

2,nginx端口转发解决跨域问题

2.1,下载并安装nginx

.html

2.1.1,解压后如下所示

2.1.2,进入解压目录后,执行配置脚本

./configure
HTTP rewrite 模块需要 PCRE 库的支持

sudo apt-get install libpcre3-dev
安装好PCRE 库后再次执行 ./configure

2.2,编译安装

sudo make -j
sudo make install

2.3,nginx使用

2.3.1,设置nginx开机自启动

vim /etc/rc.local
文本底部追加
/usr/local/nginx/sbin/nginx

2.3.2,修改配置文件配置端口转发

 /usr/local/nginx/conf/nginx.conf

2.3.3,启动nginx

sudo /usr/local/nginx/sbin/nginx

2.3.4,发现由于80端口被apache占用了,nginx无法启动

2.3.5,直接关闭apache,使用nginx托管静态网站代码

sudo /etc/init.d/apache2 stop

#重启nginx
sudo /usr/local/nginx/sbin/nginx -s reload

3,更新动态IP到nginx配置文件

#!/usr/bin/bash
# 为 win 设置 wsl host
# win hosts 文件路径
# 获取 wsl2 的 ip
wsl_ip=$(ifconfig eth0 | grep -w inet | awk '{print $2}')CHANGE_HOST()
{HOST_NAME=$1HOST_IP=$2win_hosts_path="/mnt/c/Windows/System32/drivers/etc/hosts"# 判断是否已存在 wsl2 的域名,如果存在则修改,否则追加if grep -wq "$HOST_NAME" $win_hosts_paththen# 此处因为权限问题没有直接用 sed 修改 hosts 文件win_hosts=$(sed -s "s/.* $HOST_NAME/$HOST_IP $HOST_NAME/g" $win_hosts_path)echo "$win_hosts" > $win_hosts_pathelseecho "$HOST_IP $HOST_NAME" >> $win_hosts_pathfi
}CHANGE_NGINX_HOST_BY_PORT()
{SERVER_PORT=$1HOST_IP=$2nginx_config_path="/usr/local/nginx/conf/nginx.conf"# 判断是否已存在 wsl2 的域名,如果存在则修改,否则追加if grep -wq "proxy_pass\|$SERVER_PORT" $nginx_config_paththen# 此处因为权限问题没有直接用 sed 修改 hosts 文件nginx_conf=$(sed -s "s/.*proxy_pass.*http:\/\/.*:$SERVER_PORT;/         proxy_pass http:\/\/$HOST_IP:$SERVER_PORT/g" $nginx_config_path)echo "$nginx_conf" > $nginx_config_pathelseecho "$SERVER_PORT is not in $nginx_conf"fi
}CHANGE_HOST "www.anweimian" $wsl_ip
CHANGE_HOST "ubuntu" $wsl_ipCHANGE_NGINX_HOST_BY_PORT "9607" $wsl_ip

更多推荐

apache搭建静态网站,moongoose搭建网站后台,出现的跨域问题解决

本文发布于:2023-12-05 22:04:52,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1665452.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:网站   静态   后台   apache   moongoose

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!