I. 목표
그동안 플랫폼에 구애를 받지않는 Java 기반을 많이 활용하였는데, net core도 리눅스, 맥에서도 구동가능하여 우분투 환경에서 MSA 기반의 인증서버를 구현하는것을 목표로 한다.
II. 연구및 개발내용
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 역방향 프록시 |
4. Apache 구성
1) 환경설정
cd /etc/apache2/sites-available vi identity.mbizok.com.conf RequestHeader set “X-Forwarded-Proto” expr=%{REQUEST_SCHEME} ProxyPreserveHost On |
2) 사이트활성화
a2ensite identity.mbizok.com.conf service apache2 restart |
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: |
– 아파치 모듈 설치 및 아파치 재시작
a2enmod headers service apache2 restart |
5. Kestrel 서비스
6002 포트로 도는 API 서버를 실행하기 위해 kestrel 서비스를 만들어야 함.
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 |
2) 서비스 활성화
systemctl enable kestrel-identity.mbizok.com.service |
3) 서비스 시작
systemctl start kestrel-identity.mbizok.com.service |
4) 서비스 상태확인
systemctl status kestrel-identity.mbizok.com.service |
III. 결론
리눅스 환경에서도 이제는 Asp.Net을 이용할수 있게 되었다.