> 백엔드 개발 > C#.Net 튜토리얼 > ASP.NET Core 프로그램을 Linux 프로덕션 환경에 게시하는 방법에 대한 자세한 설명

ASP.NET Core 프로그램을 Linux 프로덕션 환경에 게시하는 방법에 대한 자세한 설명

Y2J
풀어 주다: 2017-04-20 09:12:08
원래의
2117명이 탐색했습니다.

이 기사는 주로 Linux 프로덕션 환경에 대한 ASP.NET Core 프로그램 릴리스를 자세히 소개합니다. 관심 있는 친구는 이를 참조할 수 있습니다.

이 기사에서는 Ubuntu 14.04 서버에 ASP.NET Core 애플리케이션을 배포하는 방법을 소개합니다. 요청을 Kestrel 서버로 전달하는 역방향 프록시 서버 뒤에 ASP.NET Core 애플리케이션을 배치하겠습니다. 이 외에도 웹 애플리케이션이 데몬으로 시작되는지 확인합니다. 고가용성을 보장하려면 프로그램 충돌 시 프로그램을 복구하는 데 도움이 되는 프로세스 관리 도구를 구성해야 합니다.

장:

  • 준비

  • 지원서 복사

  • 역방향 프록시 서버 구성

  • 애플리케이션 모니터링

  • 애플리케이션 실행

  • 관찰 로그

  • 애플리케이션 보안 유지

준비

1. Ubuntu 14.04 서버에 액세스할 수 있는 sudo 권한이 있는 표준 계정

2.

애플리케이션 복사

dotnet 게시 실행

ASP.NET Core 애플리케이션을 자체 포함 디렉터리( 게시 디렉터리에 있으면 이 디렉터리의 프로그램이 서버에 업로드되어 실행됩니다. 독립형(Self-Contained) 프로그램이란 무엇입니까? 내 기사:

.NET Core 애플리케이션 유형(휴대용 앱 및 독립형 앱)을 참조하세요. 작동하기 전에 게시 디렉터리의 모든 프로그램을 FTP 도구(WinSCP 등)를 통해 서버가 지정한 디렉터리에 업로드합니다. 다음으로 프로그램을 실행하는 방법에 대한 자세한 내용은 .NET Core 1.0을 사용하여 자체 포함 콘솔 애플리케이션 만들기 문서를 참조하세요.

역방향 프록시 서버 구성

동적 웹 애플리케이션의 경우 역방향 프록시는 매우 일반적인 설정입니다. 역방향 프록시는 현재 요청을 종료하고 해당 요청을 백엔드 ASP.NET Core 애플리케이션으로 전달합니다.

역방향 프록시 서버를 사용하는 이유

웹 서버인 Kestrel은 동적 콘텐츠를 처리하는 데는 매우 능숙하지만 웹 서버만큼 성숙하지는 않습니다. 또한 이러한 서버에는 IIS, Apache 또는 Nginx가 포함됩니다. 역방향 프록시 서버는 정적 콘텐츠 처리, 캐싱, 압축 및 SSL을 포함하여 HTTP 서버에서 일부 작업을 오프로드할 수 있습니다. 역방향 프록시 서버는 전용 서버 또는 HTTP 서버와 동일한 클러스터에 배포될 수 있습니다. 이 예에서는 Nginx를 역방향 프록시 서버로 사용하고 이를 HTTP 서버와 동일한 시스템에 배포합니다.

프록시 서버 설치


sudo apt-get install nginx

Nginx 설치
sudo 서비스 nginx 시작

Nginx 시작

Nginx 구성

파일 편집: /etc/nginx/sites -사용 가능/기본값은 다음과 같습니다.

server {
 listen 80;
 location / {
  proxy_pass http://localhost:5000;
  proxy_http_version 1.1;
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection keep-alive;
  proxy_set_header Host $host;
  proxy_cache_bypass $http_upgrade;
 }
}
로그인 후 복사
는 HTTP의 기본 포트인 포트 80에서 수신합니다. HTTP 버전은 원래 요청입니다. http://localhost:5000

으로 전달됩니다.

위 구성이 완료된 후 다음 명령을 사용하여 구성 파일 구문이 올바른지 확인하세요.


sudo nginx -t

구성 구문이 그렇지 않은 경우 문제가 있는 경우 Nginx를 다시 시작하여 구성을 적용합니다.


sudo nginx -s reload

웹 애플리케이션 모니터링

Nginx는 요청을 Kestrel 서버로 전달합니다. 그러나 Kestrel은 Windows의 IIS와 다르므로 Kestrel 프로세스를 관리하지 않습니다

, 이 기사에서는 감독자를 사용하여 애플리케이션을 시작하고 시스템이 시작되거나 프로세스가 중단될 때 스스로 복구합니다.

감독자 설치:


sudo apt-get install 감독자

감독자 구성:

/etc/supervisor/ conf.d/hellomvc.conf

(새 파일)


[program:hellomvc]
command=/usr/bin/dotnet /var/aspnetcore/HelloMVC/HelloMVC.dll
directory=/var/aspnetcore/HelloMVC/
autostart=true
autorestart=true
stderr_logfile=/var/log/hellomvc.err.log
stdout_logfile=/var/log/hellomvc.out.log
environment=ASPNETCOREENVIRONMENT=Production
user=www-data
stopsignal=INT
로그인 후 복사
supervisord 다시 시작


sudo service supervisor stop
sudo service supervisor start
로그인 후 복사
웹 애플리케이션 시작

이 경우 감독자를 사용하여 애플리케이션을 관리하므로 애플리케이션이 감독자에 의해 자동으로 시작됩니다. 운영 체제가 시작되면 슈퍼바이저가 System V 초기화 스크립트를 사용하여 데몬으로 시작되고 애플리케이션이 시작됩니다.

관찰 로그

supervisord 로그


sudo tail -f /var/log/supervisor/supervisord.log

자사 애플리케이션의 로그

tail -f /var/log/hellomvc.out.log

원본 번역: Linux 프로덕션 환경에 게시
저자: Sourabh Shirhatti

위 내용은 ASP.NET Core 프로그램을 Linux 프로덕션 환경에 게시하는 방법에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿