728x90
1. CentOS 7 Install
2. CentOS .NET Core Runtime Install
Microsoft package repository Install
rpm -Uvh https://packages.microsoft.com/config/centos/7/packages-microsoft-prod.rpm
Runtime Install
yum install dotnet-sdk-6.0
yum install aspnetcore-runtime-6.0
yum install dotnet-runtime-6.0
3. Apache Install
Yum package update
yum update
Apache And mod_ssl Install
yum -y install httpd mod_ssl
4. ASP .NET Project release upload
ASP .NET Core 프로젝트를 폴더 배포
배포된 프로젝트는 Linux의 /var/www/html/{프로젝트명} 으로 업로드.
5. Apache 구성
다음 경로에 {프로젝트명}.conf 파일 생성
/etc/httpd/conf.d/
<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>
아래 파일에서 주석 처리된 'ServerName' 주석을 해제하고 'ServerName localhost' 수정
vi /etc/httpd/conf/httpd.conf
설정 확인을 위한 명령어 실행(Syntax OK => 성공)
service httpd configtest
6. 서비스 구동
Apache 구동
systemctl enable httpd
systemctl restart httpd
방화벽 해제
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --reload
/var/www/html/{프로젝트명} 위치에서 웹서비스 구동
dotnet {프로젝트}.dll
permission denied error가 발생하면 다음 명령어 실행
setsebool -P httpd_can_network_connect 1
7. 서비스 등록
서비스 등록 파일 생성
sudo nano /etc/systemd/system/{프로젝트명}.service
[Unit]
Description=서비스 설명
[Service]
WorkingDirectory=/var/www/html/프로젝트명
ExecStart=/usr/bin/dotnet /var/www/html/프로젝트명/프로젝트명.dll
Restart=always
# Restart service after 10 seconds if the dotnet service crashes:
RestartSec=10
KillSignal=SIGINT
SyslogIdentifier=dotnet-example
User=apache
Environment=ASPNETCORE_ENVIRONMENT=Production
[Install]
WantedBy=multi-user.target
서비스 사용 설정
sudo systemctl enable {프로젝트명}.service
sudo systemctl start {프로젝트명}.service
sudo systemctl status {프로젝트명}.service