1. CentOS 준비
- Hyper-V에 설치
- ssh 및 기본적인 네트워크 설정을 마침 (테스트에 사용된 CentOS의 IP는 192.168.0.10으로 맞춰둠)
2. CentOS에 FTP설정
FTP와 ASP.NET Core와는 아무런 관련이 없습니다. 다만 ASP.NET Core프로젝트 파일을 위에서 만들어둔 CentOS 쪽으로 넘겨주기 위해서 FTP를 미리 설정해 둡니다.
아래 설정은 root가 FTP에 접근이 가능하며 최상위 루트 디렉터리를 포함한 모든 디렉터리에 접근할 수 있도록 하는 것입니다.
FTP를 설치합니다.
- yum -y install vsftpd
FTP를 설정합니다.
anonymous_enable=NOchroot_local_user=YESchroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_listlisten=YESlisten_ipv6=NO
- yum -y /etc/vsftpd/vsftpd.conf
FTP 사용 가능한 사용자(root)를 추가합니다.
- vi /etc/vsftpd/chroot_list
아래 파일에서 root를 제거합니다.
- vi /etc/vsftpd/ftpusers
- vi /etc/vsftpd/user_list
방화벽에 FTP와 포트를 추가합니다.
- firewall-cmd --permanent --add-service=ftp
- firewall-cmd --permanent --add-port=21/tcp
- firewall-cmd --reload
아래 파일을 다음 내용으로 수정합니다.
SELINUX=disabled
- vi /etc/selinux/config
FTP를 재시작합니다.
- systemctl enable vsftpd
- systemctl restart vsftpd
하위 디렉터리가 표시되지 않으면 그냥 서버 재부팅(왜???)
3. .NET Core Runtime 설치
Microsoft package repository 추가
- rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
Runtime 설치 (버전에 맞게 설치함에 주의)
- yum install aspnetcore-runtime-3.1
4. Apache 설치
yum 패키지 업데이트
- yum update
Apache와 mod_ssl 설치
- yum -y install httpd mod_ssl
5. FTP를 통해 웹 배포 업로드
- ASP.NET Core 프로젝트를 publish로 Framework의존성으로 배포
- 배포 결과물을 /var/www/html/{프로젝트명} 으로 업로드
- dotnet {프로젝트명}.dll 명령으로 동작확인
6. 다음 단계로 Apache구성
아래 경로에 {프로젝트}.conf 파일 생성
- /etc/httpd/conf.d
아래 파일에서 주석 처리된 'ServerName'을 주석 해제하고 'ServerName localhost'로 수정
- vi /etc/httpd/conf/httpd.conf
생성된 파일에 다음 내용 추가
<VirtualHost *:*>
RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}e
</VirtualHost>
<VirtualHost *:80>
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:5000/
ProxyPassReverse / http://127.0.0.1:5000/
ServerName {IP}
ServerAlias {IP}
ServerAdmin root@localhost
DocumentRoot /var/www/html/{프로젝트명}
ErrorLog logs/{프로젝트명}-error.log
CustomLog logs/{프로젝트명}-access.log common
</VirtualHost>
설정 확인 (Syntax OK면 성공)
- service httpd configtest
7. 서비스 구동
Apache 구동
- systemctl enable httpd
- systemctl restart httpd
웹서비스 포트의 방화벽 해제
- firewall-cmd --permanent --add-port=80/tcp
- firewall-cmd --reload
/var/www/html/{프로젝트명} 위치에서 웹서비스 구동
- dotnet {프로젝트}.dll
웹브라우저에서 서버 접속
'.NET > ASP.NET' 카테고리의 다른 글
[ASP.NET Core Web API] 파일업로드(FileUpload) (0) | 2021.03.23 |
---|---|
[ASP.NET Core Web API] DI (Dependency Injection) 구현 (Autofac) (0) | 2021.03.23 |
[ASP.NET Core Web API] JWT 인증 (6) | 2021.03.23 |
[.NET Core] DB로 부터 Model 생성하기 (MySQL/MariaDB) (0) | 2021.03.21 |
Request.Url 정리 (0) | 2019.10.02 |