운영 및 유지보수 엔진스 Docker+Nginx를 사용하여 단일 페이지 애플리케이션을 배포하는 방법

Docker+Nginx를 사용하여 단일 페이지 애플리케이션을 배포하는 방법

May 15, 2023 pm 07:40 PM
docker nginx

개발에서 배포까지, 실습

단일 페이지 애플리케이션을 개발할 때 빌드를 실행한 후

npm run build
로그인 후 복사

는 dist 디렉터리에 index.html을 생성하므로 이 index.html을 서버에 배포하는 방법 ?

디렉터리 구조

  • dist/: 프런트 엔드에서 생성된 정적 파일

  • docker/: 미러링에 필요한 구성 파일

Docker+Nginx를 사용하여 단일 페이지 애플리케이션을 배포하는 방법

nginx 구성

몇 가지 구성 포인트 먼저, gzip은 리소스를 압축하여 대역폭을 절약하고 브라우저 로딩 속도를 향상시킵니다.

webpack은 이미 구성 중에 .gz 압축 패키지 생성을 지원하지만 nginx
gzip on;
gzip_disable "msie6";
# 0-9 等级,级别越高,压缩包越小,但对服务器性能要求也高
gzip_comp_level 9;
gzip_min_length 100;
# gzip 不支持压缩图片,我们只需要压缩前端资源
gzip_types text/css application/javascript;
로그인 후 복사

를 통해 활성화할 수도 있습니다. 그런 다음 API 역방향 프록시를 구성해야 합니다. 백엔드 서비스

server {
 listen 8080;
 server_name www.frontend.com;

 root /usr/share/nginx/html/;

 location / {
 index index.html index.htm;
 try_files $uri $uri/ /index.html;
 # 禁止缓存 html,以保证引用最新的 css 和 js 资源
 expires -1;
 }

 location /api/v1 {
 proxy_pass http://backend.com;
 }
}
로그인 후 복사

전체 구성은 다음과 같습니다

worker_processes 1;

events { worker_connections 1024; }

http {
 ##
 # basic settings
 ##

 sendfile on;
 tcp_nopush on;
 tcp_nodelay on;
 keepalive_timeout 65;
 types_hash_max_size 2048;

 include /etc/nginx/mime.types;
 default_type application/octet-stream;

 ##
 # logging settings
 ##

 access_log /var/log/nginx/access.log;
 error_log /var/log/nginx/error.log;

 ##
 # gzip settings
 ##

 gzip on;
 gzip_disable "msie6";
 gzip_comp_level 9;
 gzip_min_length 100;
 gzip_types text/css application/javascript;

 server {
 listen 8080;
 server_name www.frontend.com;

 root /usr/share/nginx/html/;

 location / {
  index index.html index.htm;
  try_files $uri $uri/ /index.html;
  expires -1;
 }

 location /api/v1 {
  proxy_pass http://backend.com;
 }
 }
}
로그인 후 복사

Docker 구성

여기서는 좀 더 간단합니다. 기본 이미지를 기반으로 우리가 작성한 nginx.conf 및 index.html을 이미지에 복사하세요

from nginx:alpine

copy nginx.conf /etc/nginx/nginx.conf
copy dist /usr/share/nginx/html
로그인 후 복사

Write the makefile

위의 준비가 완료되면 명령을 작성하여 이미지 패키징을 수행할 수 있습니다

먼저 이미지에 이름과 포트 번호를 지정합니다

app_name = spa_nginx_docker
port = 8080
로그인 후 복사

build를 통해 이미지를 패키징합니다

build:
 cp docker/dockerfile .
 cp docker/nginx.conf .
 docker build -t $(app_name) .
 rm dockerfile
 rm nginx.conf
로그인 후 복사

이미지 시작 배포를 통해

deploy:
 docker run -d -it -p=$(port):$(port) --name="$(app_name)" $(app_name)
로그인 후 복사

마지막으로 이미지를 중지하고 정리하는 단계가 있습니다

stop:
 docker stop $(app_name)
 docker rm $(app_name)
 docker rmi $(app_name)
로그인 후 복사

전체 구성은 다음과 같습니다

app_name = spa_nginx_docker
port = 8080

build:
 cp docker/dockerfile .
 cp docker/nginx.conf .
 docker build -t $(app_name) .
 rm dockerfile
 rm nginx.conf

deploy:
 docker run -d -it -p=$(port):$(port) --name="$(app_name)" $(app_name)

stop:
 docker stop $(app_name)
 docker rm $(app_name)
 docker rmi $(app_name)
로그인 후 복사

전체 명령은 다음과 같습니다

# 静态资源构建
npm run build

# 镜像打包
make build

# 停止并删除旧镜像(首次可忽略)
make stop

# 镜像启动
make deploy
로그인 후 복사

위 내용은 Docker+Nginx를 사용하여 단일 페이지 애플리케이션을 배포하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
1 몇 달 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Docker는 GPU 서버를 사용하여 다시 시작합니다 Docker는 GPU 서버를 사용하여 다시 시작합니다 Apr 15, 2025 am 06:48 AM

GPU 서버에서 Docker를 사용할 때 서버 재시작은 다음과 같은 이유가 발생합니다. CUDA 버전 충돌 드라이버 문제 메모리 할당 오류 솔루션 : CUDA 버전이 업데이트 드라이버 제한 GPU 메모리 할당과 일치하는지 확인하십시오.

Docker 응용 프로그램의 도메인 이름 액세스를 구성하는 방법 Docker 응용 프로그램의 도메인 이름 액세스를 구성하는 방법 Apr 15, 2025 am 06:51 AM

Docker 환경에서 특정 도메인 이름에 액세스하도록 애플리케이션 구성 다음 단계가 필요합니다. 사용자 정의 네트워크를 작성하고 --- network 옵션을 사용하여 네트워크를 지정하십시오. 컨테이너를 실행할 때 -publish 옵션을 사용하여 응용 프로그램 컨테이너의 포트를 호스트 포트에 매핑하십시오. 호스트 시스템의 /etc /호스트 파일에 DNS 레코드를 추가하여 사용자 정의 도메인 이름을 컨테이너의 IP 주소로 해결하십시오. 사용자 정의 도메인 이름을 사용하여 응용 프로그램에 액세스 할 수 있습니다.

Docker 이미지를 가져 오는 방법 Docker 이미지를 가져 오는 방법 Apr 15, 2025 am 08:24 AM

Docker에서 이미지를 가져 오면 원격 리포지토리에서 사전 제작 된 컨테이너 이미지를 가져 와서 로컬 리포지토리로 가져 오는 것이 포함됩니다. 단계에는 다음이 포함됩니다 : 이미지를 당기 (Docker Pull) Docker Image (Docker Image) 나열 및 이미지를 로컬 리포지토리 (Docker import)로 가져옵니다.

Docker가 공개 이미지를 관리하는 데 사용하는 플랫폼 Docker가 공개 이미지를 관리하는 데 사용하는 플랫폼 Apr 15, 2025 am 07:06 AM

Docker Image Hosting Platform은 Docker 이미지를 관리하고 저장하는 데 사용되므로 개발자와 사용자가 사전 제작 된 소프트웨어 환경에 쉽게 액세스하고 사용할 수 있습니다. 일반적인 플랫폼에는 다음이 포함됩니다 : Docker Hub : Docker가 공식적으로 유지하고 거대한 미러 라이브러리가 있습니다. Github 컨테이너 레지스트리 : Github 생태계를 통합합니다. Google 컨테이너 레지스트리 : Google Cloud Platform에서 호스팅했습니다. Amazon Elastic Container 레지스트리 : AWS가 호스팅합니다. Quay.io : Red Hat에 의해

Docker Pulling Mirror를 설정하는 방법 Docker Pulling Mirror를 설정하는 방법 Apr 15, 2025 am 08:33 AM

Docker는 이미지 버전 지정, 미러 저장소, 속도 제한 풀, 인증 및 태그가없는 이미지를 포함하여 이미지를 가져올 때 설정을 사용자 정의 할 수 있습니다. 이러한 설정은 Docker Pull 명령 및 -registry, --limit -rate, -auth 및 -a를 포함한 옵션을 통해 구현할 수 있습니다.

Docker Network 연결을 중지하는 방법 Docker Network 연결을 중지하는 방법 Apr 15, 2025 am 10:21 AM

Docker Network 연결을 중지하려면 다음 단계를 따르십시오. 1. 중지 할 네트워크 이름을 결정하십시오. 2. Docker Network STOP 명령을 사용하여 네트워크를 중지하십시오. 3. 네트워크가 중지되었는지 확인하려면 정지 상태를 확인하십시오.

Docker는 MacVlan을 사용합니다 Docker는 MacVlan을 사용합니다 Apr 15, 2025 am 06:57 AM

Docker의 MacVlan은 컨테이너가 자체 MAC 주소를 가질 수 있도록하는 Linux 커널 모듈로 네트워크 격리, 성능 향상 및 실제 네트워크와의 직접 상호 작용을 가능하게합니다. MacVlan 사용은 다음과 같습니다. 1. 커널 모듈을 설치하십시오. 2. MacVlan 네트워크를 만듭니다. 3. IP 주소 세그먼트 할당; 4. 컨테이너 생성시 MacVlan 네트워크를 지정하십시오. 5. 연결을 확인하십시오.

도커 애플리케이션 개발 도커 애플리케이션 개발 Apr 15, 2025 am 07:03 AM

Docker Application Development는 컨테이너를 사용하여 응용 프로그램을 패키지 및 배포하여 격리, 이식성, 일관성, 빠른 배포 및 버전 제어를 제공합니다. 프로세스에는 코드 작성, Dockerfiles 만들기, 이미지 구축, 컨테이너 실행 및 배포가 포함됩니다. 또한 Docker 볼륨은 데이터 지속성에 사용될 수 있으며 네트워크는 컨테이너 간의 안전한 통신을 가능하게하며 오케스트레이션 도구는 대규모 배포를 관리 할 수 ​​있습니다.

See all articles