配置Nginx解决跨域问题

Nginx 中将前端请求中的所有以 "/apiUrl" 开头的路径代理到 http://192.12.200.101:9813

例如:

/apiUrl/login ===> http://192.12.200.101:9813/login

配置nginx环境

  • 进入Nginx 的配置文件编辑界面:
python 复制代码
sudo nano /etc/nginx/conf.d/default.conf
  • 开始编辑 default.conf
bash 复制代码
server {
    listen       80;
    server_name  localhost;
    # 这里配置,配置如下
    location /apiUrl/ {
        rewrite ^/apiUrl(/.*)$ $1 break; # 路径重写
        proxy_pass http://192.12.200.101:9813; # 代理请求转发的目标地址
        add_header Access-Control-Allow-Origin *; # 表示允许任何域的请求访问资源。
        add_header Access-Control-Allow-Methods *;# 定义允许跨域请求的 HTTP 方法
        proxy_set_header Content-Type "application/x-www-form-urlencoded; charset=UTF-8"; # 设置代理请求时的 HTTP 请求头部信息。
     }

    #charset koi8-r;
    access_log  /var/log/nginx/host.access.log  main;
    error_log  /var/log/nginx/error.log  error;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        try_files $uri $uri/ /index.html;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

纯净版:这里复制

bash 复制代码
location /apiUrl/ {
        rewrite ^/apiUrl(/.*)$ $1 break;
        proxy_pass http://192.12.200.101:9813;
        add_header Access-Control-Allow-Origin *;
        add_header Access-Control-Allow-Methods *;
        proxy_set_header Content-Type "application/x-www-form-urlencoded; charset=UTF-8";
     }
  • 重启nginx
bash 复制代码
sudo service nginx restart

注意:

如果想/apiUrl/login ===> http://192.12.200.101:9813/apiUrl/login

这里路径匹配规则 /apiUrl/,如下图:

/apiUrl ----匹配到的路径----> /apiUrl,/apiUrl1,/apiUrl2

/apiUrl/ ----匹配到的路径--只有 /apiUrl

允许多个信任域名进行跨域访问,你可以在 Access-Control-Allow-Origin 头部中设置多个域名:
多个域名时:双引号或单引号内,使用逗号隔开;

bash 复制代码
add_header Access-Control-Allow-Origin "https://your-allowed-domain-1.com, https://your-allowed-domain-2.com, https://your-allowed-domain-3.com";

自定义允许跨域请求的 HTTP 方法:

bash 复制代码
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS, DELETE';

nginx官方文档--rewrite

相关推荐
宁zz6 小时前
乌班图安装jenkins
运维·jenkins
大丈夫立于天地间7 小时前
ISIS协议中的数据库同步
运维·网络·信息与通信
rainFFrain7 小时前
单例模式与线程安全
linux·运维·服务器·vscode·单例模式
xujiangyan_8 小时前
nginx的反向代理和负载均衡
服务器·网络·nginx
@郭小茶9 小时前
docker-compose方式部署docker项目
运维·docker·容器
自由鬼9 小时前
开源虚拟化管理平台Proxmox VE部署超融合
linux·运维·服务器·开源·虚拟化·pve
电星托马斯11 小时前
Linux系统CentOS 6.3安装图文详解
linux·运维·服务器·程序人生·centos
啞謎专家11 小时前
CentOS中挂载新盘LVM指南:轻松扩展存储空间,解决磁盘容量不足问题
linux·运维·服务器
s_little_monster11 小时前
【Linux】进程信号的捕捉处理
linux·运维·服务器·经验分享·笔记·学习·学习方法
一大Cpp11 小时前
Ubuntu与本地用户交流是两种小方法
linux·运维·ubuntu