nginx 를 사용 하여 개발 과정 에서 의 크로스 필드 문 제 를 해결 합 니 다.
vue 전단 프로그램 을 개발 할 때 저 희 는 여러 개의 프로젝트 를 만 들 것 입 니 다. 예 를 들 어 사용자 관 리 는 하나의 응용 프로그램 이 고 시스템 관 리 는 하나의 응용 프로그램 입 니 다. 이렇게 여러 개의 응용 프로그램 은 반드시 여러 개의 포트 를 열 어야 합 니 다. 그러면 문제 가 발생 합 니 다. 저 희 는 로그 인 한 후에 token 을 생 성 합 니 다. 이 token 은 브 라 우 저의 localstorage 에 저장 합 니 다. 그러면 token 은 서로 다른 응용 프로그램 에서 공유 할 수 없습니다.로그 인 후에 다른 응용 프로그램 에서 이 token 을 읽 을 수 있 기 를 바 랍 니 다.
해결 방안
우 리 는 nginx 를 사용 하여 이 문 제 를 해결 할 수 있 습 니 다. nginx 의 역방향 에이전트 기능 을 이용 하여 우 리 는 서로 다른 문맥 경 로 를 통 해 서로 다른 응용 프로그램 으로 전송 할 수 있 습 니 다. 그러면 우 리 는 도 메 인 이름 을 통 해 서로 다른 응용 프로그램 에 접근 할 수 있 습 니 다. 그러면 도 메 인 간 의 문 제 는 자 연 스 럽 게 해결 할 수 있 습 니 다.
nginx 프로필 설정 은 다음 과 같 습 니 다.
location /jpaas {
proxy_set_header Host $host;
proxy_pass http://localhost:8002;
}
location /api/ {
proxy_set_header Host $host;
proxy_pass http://localhost:9900/;
}
이렇게 해서 저 희 는 방문 / jpaas / 를 통 해 요청 을 전달 합 니 다.http://localhost:8002/jpaas
프 록 시 주의pass 설정, 뒤에 있 는 지 /
요청http://localhost:port/문맥
하면, 만약, 만약...http://localhost:port 문맥
VUE 프로그램 개조
기본 값 은 컨 텍스트 가 없 기 때문에 프로그램 을 수정 해 야 합 니 다.
vue. config. js 수정
const vueConfig = {
publicPath: "/jpaas",
기본적으로 이게 없어 요. publicPath 의, 우 리 는 하 나 를 추가 합 니 다.
또한 proxy 도 제거 할 수 있 습 니 다:
devServer: {
// development server port 8000
port: 8002,
/*
proxy: {
'/api': {
//target: 'http://139.186.65.108:9900',
//target: 'http://129.28.157.247:9900',
target: 'http://localhost:9900',
pathRewrite: { '^/api': '' },
ws: false,
changeOrigin: true
}
}*/
},
이 곳 의 proxy 는 주석 을 달 수 있 습 니 다. 그의 뜻 은 / api 의 요청 을 백 엔 드 의 게 이 트 웨 이 로 전송 하 는 것 입 니 다. 우 리 는 위 에서 nginx 를 통 해 통일 적 으로 처리 하기 때문에 이 걸 로 도 메 인 을 뛰 어 넘 는 문 제 를 처리 할 필요 가 없습니다.
경로 설정 수정
export default new Router({
mode: 'history',
base: "/jpaas",
scrollBehavior: () => ({ y: 0 }),
routes: constantRouterMap
})
여기에 베이스 가 하나 추가 되 었 습 니 다.
이렇게 해서 우 리 는 하나의 nginx 를 통 해 여러 응용의 크로스 도 메 인 문 제 를 실현 했다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.