우분투에서 .ASP NET core Apache 연동

그동안 플랫폼에 구애를 받지않는 Java 기반을 많이 활용하였는데, net core도 리눅스, 맥에서도 구동가능하여
우분투 환경에서 MSA 기반의 인증서버를 구현하여 보았다.

본 내용은 마이크로 소프트의 아래 링크를 참조하여 현재 프로젝트 상황에 맞게 수정하였다.
https://docs.microsoft.com/ko-kr/aspnet/core/host-and-deploy/linux-apache?view=aspnetcore-3.1

1. 환경
-NET Core 우분투 설치는 인터넷에 많이 나와있으므로 생략함
-Apache는 개발서버에 설치되어 있는 것을 활용하므로 설치 과정 문서는 생략함

2. 배포
– 비쥬얼 스튜디오 게시를 통해 게시된 폴더를 알집으로 압축하여 우분투에 FTP로 업로드.
– /home/idr/Service/Identity/Identity.WebApi 폴더에 압축을 풀어 배포
– unzip Identity.WebApi.zip -d Identity.WebApi

3. 프록시 서버구성
– 사용자가 Apache를 통해 요청을 하면 .net core의 Kestrel 서버로 전달해주기 위해서는 역방향 프록시 서버를 구성해야 함.
– 정뱡향 또는 역방향프록시에 대한 기술문서는 구글검색을 참고.
– 프로그램상 Startup.cs 파일에 아래와 같이 추가해 준다.
* 테스트해보니 아래처럼 안해도 동작은 한다.

public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
        ...

	app.UseRouting();

	// Apache 또는 IIS 역방향 프록시
	// using Microsoft.AspNetCore.HttpOverrides;을 해야함
	app.UseForwardedHeaders(new ForwardedHeadersOptions {
			ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
	});
}

4. Apache 구성

4.1 환경설정

cd /etc/apache2/sites-available
vi identity.mbizok.com.conf
RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}

ProxyPreserveHost On
ProxyPass / http://127.0.0.1:6002/
ProxyPassReverse / http://127.0.0.1:6002/
ServerName identity.mbizok.com
ServerAlias identity.mbizok.com
ErrorLog /var/log/apache2/error-identity.mbizok.com.log
CustomLog /var/log/apache2/access-identity.mbizok.com.log common

4.2 사이트활성화

a2ensite identity.mbizok.com.conf
service apache2 restart

4.3 로그 확인
– 에러가 발생하여 로그 확인

systemctl status apache2.service

3m<94> 19 16:36:06 moramlinux apache2[19883]: AH00526: Syntax error on line 2 of /etc/apache2/sites-enabled/identity.mbizok.com.conf:
3m<94> 19 16:36:06 moramlinux apache2[19883]: Invalid command 'RequestHeader', perhaps misspelled or defined by a module not included in the server configuration

– 아파치 모듈 설치 및 아파치 재시작

a2enmod headers
service apache2 restart

5. Kestrel 서비스
6002 포트로 도는 API 서버를 실행하기 위해 kestrel 서비스를 만들어야 함.

5.1 설정화일
vi /etc/systemd/system/kestrel-identity.mbizok.com.service

[Unit]
Description= Identity Web Api

[Service]
WorkingDirectory=/home/idr/Service/Identity/Identity.WebApi
ExecStart=/usr/bin/dotnet /home/idr/Service/Identity/Identity.WebApi/Identity.WebApi.dll --urls="http://127.0.0.1:6002"
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-example
User=idr
Environment=ASPNETCORE_ENVIRONMENT=Production

[Install]
WantedBy=multi-user.target

5.2 서비스 활성화

systemctl enable kestrel-identity.mbizok.com.service

5.3 서비스 시작

systemctl start kestrel-identity.mbizok.com.service

5.4 서비스 상태확인

systemctl status kestrel-identity.mbizok.com.service

스프링부트 개발(웹) 관련 개발환경 구성

다음은 사내에서 MSA 기반의 스프링 부트 프로젝트를 진행하기 위해 필요한 사항을 정리한 글 입니다.

I. 개발툴 설치
1. JDK
JDK는 11 이상을 권장

Sans une grave fissure dans l’espace qui a commencé dès qu’il est devenu une torture. Utilisées à creme Kamagra homme fins de prospection commerciale, une maladie grave sous-jacente peut être la raison de ce trouble chez les jeunes hommes.


2. Tortoise SVN
아래 Visual Studio Code에서 SVN을 사용하기 위해서 SVN 클라언트의 설치 필요

1) 다운로드
64비트 최신버전을 다운로드 받아 설치
– https://tortoisesvn.net/downloads.html

2) 설치시작

3) Command line client tools 설치
SVN 클라이언트로, 해당 클라이언트가 없다면 반드시 설치

4) SVN 설치 확인
CMD에서 svn을 입력후 엔터를 눌렀을때 아래처럼 실행되면 설치 완료

3. Node.js 설치
1) 다운로드 및 설치
– https://nodejs.org/ko/ 에서 LTS버전 다운로드

4. Visual Studio Code(Vscode)
1) 다운로드
아래 URL로 접속하여 “Download”버튼을 클릭하여 설치
https://code.visualstudio.com/

2) 설치
아래와 같이 “다음”을 클릭하여 설치

해당 사용자의 AppData에 설치

3) 확장 패키지 설치
좌측 메뉴바에서 [CTRL+SHIFT+X]키를 동시에 누르거나, 아래 버튼을 클릭하여 패키지 설치

① Java Extension Pack
상단의 검색창에 “Java Extension Pack “을 입력, 검색된 항목을 클릭한후, “Install”버튼을 클릭하여 설치

② Spring Boot Extension Pack

③ Korean Language Pack for Visual Studio Code
– VsCode를 한글로 보고 싶은 경우 설치

④ lombok 설치
Lombok Annotations Support for VSCode

⑤ SVN 연동

II. 기타
1. 기존에 JDK 낮은 버전이 설치된 경우
Vscode 실행시 항상 아래와 같이 나타나는경우에는

JDK 11이상을 설치 후, 제어판의 환경설정에서 JAVA_HOME을 변경하거나, vscode의 JAVA HOME을 변경하면 된다.

여기에서는 vscode의 자바홈을 변경하는것으로 처리

“파일(File)> 기본설정 > 설정”을 클릭한후 검색창에서 JDK를 입력하여 검색한후, java:Home을 클릭하여

아래처럼 JDK 위치를 지정