使用nginx部署前后端分离项目,处理跨域问题(共享cookie)

news2024/11/26 12:17:41

     1.唠嗑

 踩坑了,花费一天时间,开始对nginx配置不懂,老是弄错了配置文件,之前装的nginx ,cofnig有两个,nginx.config和nginx.config.def  ,开始配置我在nginx.config中配置的,后面一直在改def,我说怎么把配置的前端地址删掉还能访问,气得我把nginx删掉了。

后面我又找了一个安装教程,很不错(1条消息) CentOs7安装nginx【详细】_centos7 配置nginx_小二,,来杯咖啡的博客-CSDN博客icon-default.png?t=N6B9https://blog.csdn.net/qq_45316925/article/details/128957728

 按照这个教程装,我也踩坑了,我部署项目的时候,一直在nginx.1.21里面配置conf

发现把前端放入到nginx/nginx1.21/html里面报错,我放到了nginx/html里面,一直访问不了页面

后面无意中发现nginx/conf中还有config文件,原来这个才是真正的配置文件,nginx.1.21目录只是告诉安装的版本。废话不多说,后端坑多,前端正常调就好了。

2.后端跨域配置。

package com.zuodou.cors;

import org.codehaus.plexus.component.annotations.Component;
import org.springframework.context.annotation.Configuration;

import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

@Configuration
public class CorsFilter implements Filter {

    @Override
    public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws
            IOException, ServletException {
        HttpServletResponse httpResponse = (HttpServletResponse) response;
        HttpServletRequest httpRequest = (HttpServletRequest) request;

        httpResponse.setHeader("Access-Control-Allow-Origin", "服务器的nginx配置的端口");
        httpResponse.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE");
        httpResponse.setHeader("Access-Control-Allow-Headers", "*");
        httpResponse.setHeader("Access-Control-Allow-Credentials", "true");

        chain.doFilter(httpRequest, httpResponse);
    }
}

3.这个是配合jwt使用的拦截器,我原本就写的后面这点,发现走了代理就调不到接口了。

 建议全局设置

 4.上nginx配置》》》》》》》》

  server {
        listen                             8080;
        server_name                        127.0.0.1;
        #解决Router(mode: 'history')模式下,刷新路由地址不能找到页面的问题
       location / {
               root   html/zuodou/dist/;  #我放前端的目录
            index  index.html index.htm;
            try_files $uri $uri/ /index.html;
        }
    
        location ^~ /zuodou {   #这个zuodou的意思就是只要前端调用zuodou后缀的接口都会转发到2380
            proxy_pass              http://127.0.0.1:2380;  #后端接口的地址
            proxy_set_header        Host 127.0.0.1;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
    }
        
    }

最后设置一下系统服务

vim /lib/systemd/system/nginx.service

[Unit]
Description=nginx service
After=network.target

[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PrivateTmp=true

[Install]
WantedBy=multi-user.target
 

配置完成把nginx停掉

systemctl daemon-reload

systemctl start nginx

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/764644.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

scala学习手册

1. case class学习 样例类模式匹配 1.1 样例类(case class)适合用于不可变的数据。它是一种特殊的类,能够被优化以用于模式匹配。 case class MetaData(userId: String)case class Book(name: String) {def printBookName(): Unit {printl…

修改conda默认的环境安装位置

修改conda默认的环境安装位置

go语言终端交叉编译的事项windows编译其它平台软件包

交叉编译的终极版本[以此为准]: windows编译窗口目前分为cmd窗口,powershell窗口,这两个里面运行的命令不一样。 1.cmd窗口编译; 在windows10之前的系统版本上使用cmd命令行可以使用命令 CMD命令行中 在CMD命令行中编译&#…

C++-string类的模拟实现

本博客基于C官方文档当中给出的string类当中的主要功能实现,来作为参照,简单模拟实现 My-string 。 对于C当中的string类的介绍,在之前的几篇博客当中有说明,如有问题,请参照一下两个博客文章进行参考: (2…

CTF 1和0

一、 对于此类型数据,将其复制到excel中,将0所在位置背景色设置为白色,将1所在的位置设置为黑色 如图所示 二、添加定位符 对于定位符来说,同样可以在excel表中添加1,且1所在单元格为黑色表示定位符,如下…

07 - 线性表的类型定义 - 循环单向链表

前两节我们已经学习了单链表和双链表的概念以及具体的实现过程,其中有一个问题,值得注意,这样的链表有一个共同特征,就是尾节点指向 null,可以说是一次性的,像是糖葫芦。想象一下,如果此时,糖葫芦变成了手串,也就意味着头尾相连,形成闭环,这就是单向链表的另外一种形…

提高工作效率的文件管理软件实践方法

在现代社会中,高效的工作效率是保持竞争力的关键。随着信息技术的不断发展,文件管理软件成为提高工作效率的重要工具之一。 一个好的文件管理软件需要具备直观友好的用户界面。用户界面的清晰易操作让用户更便捷地找到所需文件。在软件开发的初期&#…

KMP 算法推演总结

title: KMP 算法推演总结 date: 2023-07-17 16:07:13 tags: 算法 categories:数据结构与算法 cover: https://cover.png feature: false KMP 算法推演 可先见 Fan’s Web 字符串匹配的 BF 算法、RK 算法部分,后面的 BM 算法及 KMP 算法可以搭配一起看 KMP 算法的…

ADB初识

ADB是Android Debug Bridge,是一个命令行程序。abd可以从计算机上通过USB控制Android手机设备。可以使用ADB复制文件、安装和卸载应用程序,运行shell命令等。 ADB的下载配置 Windows版本:https://dl.google.com/android/repository/platform…

ICV报告:确保城市未来产业发展成功的策略

近日,专注于前沿科技领域的国际咨询机构ICV TAnK发布了《确保城市未来产业发展成功的策略》报告。报告的主要内容包括:未来产业的背景情况和发展趋势;在城市中发展未来产业的重要性;对未来产业发展面临的五大困难和城市在发展未来…

Spring Batch之读数据库——JdbcCursorItemReader之自定义PreparedStatementSetter(三十八)

一、自定义PreparedStatementSetter 详情参考我的另一篇博客: Spring Batch之读数据库——JdbcCursorItemReader(三十五)_人……杰的博客-CSDN博客 二、项目实例 1.项目实例 2.代码实现 BatchMain.java: package com.xj.dem…

如何使用 SSH 远程控制一台 Windows 服务器

如何使用 SSH 远程控制一台 Windows 服务器 查了一下,Windows 上其实也是有 SSH 服务器的,只不过默认是没有装的,这里只需要安装一个 OpenSSH 服务器就好了。 Win10 的话,就在设置里面可以安装,从开始菜单打开“设置…

MYSQL表操作(DML,DDL)

建表并插入数据: mysql> create table worker(-> dept_id int(11) not null,-> emp_id int (11) not null,-> work_time date not null,-> salary float(8,2) not null,-> poli_face varchar(10) not null default 群众,-> name varchar(20) …

IIC的再认识

IIC介绍 关于IIC的基本概念,其实在学习89C52的时候已经大致了解过了,且由于STM32支持了IIC协议,所以在STM32中使用IIC可以直接调用HAL库的库函数: HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c,uint16_t DevAdd…

SAP ABAP 报表程序实现下载文件及上传 Excel 并解析

步骤1: 事务代码 SMW0 选择二进制数据选项点击上方按钮。 点击新建按钮输入名称和描述,上传模版文件。 案例传入 EXCEL 如下: 创建好资源库对象结果如下。 步骤2:报表效果展示 点击按钮选择上传的文件。 解析 Excel 文件结果…

酷开科技大屏营销,撬动营销新增量

5G、人工智能、元宇宙等技术的发展促使数字营销的内容、渠道、传播方式发生了一系列变化;存量竞争下,增长成为企业更加迫切、更具挑战的课题,品牌营销活动越来越围绕“生意增长”和“提效转化”的目标展开。 如今的市场环境下,产…

计算机毕业论文选题推荐|软件工程|信息管理|数据分析|系列一

文章目录 导文题目导文 计算机毕业论文选题推荐|软件工程|信息管理 (***语言)==使用其他任何编程语言 例如:基于(***语言)门窗账务管理系统的设计与实现 得到:基于JAVA门窗账务管理系统的设计与实现 基于vue门窗账务管理系统的设计与实现 等等 题目 基于requests多线程…

BERT系列算法解读:(RoBERTa/ALBERT/DistilBERT/Transformer/Hugging Face/NLP/预训练模型/模型蒸馏)

BERT(Bidirectional Encoder Representations from Transformers,基于Transformers的双向编码器表示)系列算法在自然语言处理任务中是必不可少的经典模型,当初第一代GPT模型发布的时候,坐了冷板凳,罪魁祸首…

【C++】-list的具体使用

💖作者:小树苗渴望变成参天大树🎈 🎉作者宣言:认真写好每一篇博客💤 🎊作者gitee:gitee✨ 💞作者专栏:C语言,数据结构初阶,Linux,C 动态规划算法🎄 如 果 你 …

漏洞复现畅捷通CRM SQL注入

免责声明 术文章仅供参考,任何个人和组织使用网络应当遵守宪法法律,遵守公共秩序,尊重社会公德,不得利用网络从事危害国家安全、荣誉和利益,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用…