Linux의 Springboot+Vue+Nginx 배포 온라인 서버
SpringBoot
SpringBoot은 크로스 도메인 제한을 닫을 수 있습니다. 전제 조건은 백엔드를 개발하거나 백엔드에 도움을 요청할 수 있다는 것입니다.
WebMvcConfigurer 인터페이스 구현
설정 클래스를 작성하여 mvc 설정 인터페이스를 실현하다
@Configuration
public class WebMvcConfiguration implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")//
.allowedOrigins("*")//
.allowCredentials(true)//
.allowedMethods("GET", "POST", "PUT", "DELETE")//
.maxAge(3600);//
}
}
위의 방법을 통해springmvc는 전역을 허용할 수 있습니다
Spring Security
Spring Security를 권한으로 도입했다면 Security 설정 클래스에서 크로스 필드를 허용해야 합니다
private CorsConfigurationSource CorsConfigurationSource() {
CorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedOrigin("*"); // ,* , ip “localhost:8080”, “,” ;
corsConfiguration.addAllowedHeader("*");//header, header, token, * token;
corsConfiguration.addAllowedMethod("*"); // ,PSOT、GET
((UrlBasedCorsConfigurationSource) source).registerCorsConfiguration("/**",corsConfiguration); // url
return source;
}
...
@Override
protected void configure(HttpSecurity http) throws Exception {
//cors
http.cors().configurationSource(CorsConfigurationSource());
...
}
이 두 개를 설정하면 백엔드 차원에서 크로스오버 문제를 해결할 수 있습니다.물론 Nginx로 크로스 도메인 접근을 실현하고 싶습니다
Nginx
설치 프로세스를 생략합니다.직접 구성 파일 시작
user root; # 403 , nobody root, nginx
worker_processes auto;
events {
worker_connections 1024;
}
http {
...
server {
# nginx 80
listen 80;
server_name localhost;
#
location / {
root html/dist;
index index.html index.htm;
}
# springboot
location /api/ {
# : /api/login
# Nginx : http://127.0.0.1:9000/login
proxy_pass http://127.0.0.1:9000/;
# springboot ip
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_set_header Connection "";
}
주의!!!Vue의 baseURL은 proxy_에 영향을 미칩니다.pass
Vue
하면, 만약, 만약...
axios.defaults.baseURL = 'http://127.0.0.1:9000/api'
위의 에이전트를 거친 후 방문은
axios.defaults.baseURL = 'http://127.0.0.1:9000/http://127.0.0.1:9000/api'
그래서 baseURL을
axios.defaults.baseURL = '/api'
Linux 방화벽
1, 오픈 포트
firewall-cmd--zone=public--add-port=9000/tcp--permanent#오픈 9000 포트
firewall-cmd--zone=public--remove-port=9000/tcp--permanent#9000 포트 닫기
firewall-cmd --reload# 구성 즉시 적용
2. 방화벽의 모든 열린 포트 보기
firewall-cmd --zone=public --list-ports
3. 방화벽 닫기
만약 개방할 포트가 너무 많아서 번거롭다면 방화벽을 닫고 안전성을 스스로 평가할 수 있다
systemctl stop firewalld.service
4. 방화벽 상태 보기
firewall-cmd --state
5, 모니터링 포트 보기
netstat -lnpt
아리운
아리운 서버 보안 그룹 9000 포트 띄우기
마침내 성공하였다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
LVM에서 논리 볼륨 크기 확장 시도며칠 전 저희 부서에서 관리하던 데이터베이스 서버의 용량이 100%에 이르러 세상을 떠났기 때문에 저는 새로운 디스크를 추가하여 LVM으로 논리 볼륨의 크기를 확장하고 회복했습니다. 하지만 이 일은 모르는 단어와 지...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.