[Apache 프록시] .net6 core 설치 / apache 프록시 설정
페이지 정보
작성자 sbLAB 댓글 0건 조회 2,077회 작성일 22-03-05 17:51본문
[환경] - 개념메모 :
- Blazor WASM / Blazor Server 테스트 개발 결과, 미완의 자마린 모바일 수준과 유사하였고.
- 웹소켓으로 주고 받는 SignalR 구조 한계때문에 웹모바일/웹모두 적합하지 않다(시간낭비)
- Blazor + 윈도OS 가 아닌 Blazor+리눅스 구성할 의미가 없으나, 리눅스에서 웹사이트 구동테스트.
- C# + Visual Studio 사용이 가능하다는 매력이 있었으나, 컴파일 Publish하므로 웹에서도 dll 을 벗어날수 없음.
Linux Mint / xampp
[.net6 core 경우]
아래처럼 .net6 버전을 설치해주고....
[Linux Mint 20.3 <- Ubuntu LTS20.4 Based]
sudo apt update
sudo apt install apt-transport-https
sudo apt install dotnet-sdk-6.0 <-- sdk설치(런타임포함됨)
sudo apt install dotnet-runtime-6.0 <- 런타임만 설치할때
dotnet --info <- 설치정보
[참고] /usr/bin/dotnet <======== 실행파일 위치
닷넷코어는 kestrel 자체 웹서버를 포함하고 있다.
예를들어 blazor 에서 ok.dll 웹사이트 파일을 /home/okwind/dotnet 폴더 안에 publish 했다면..
여기에서 okwind 는 /home/okwind 이하 폴더의 사용자계정 명이며, 해당 폴더에 권한을 갖고 있다.
# dotnet ok.dll 이라고 실행하면 http://localhost:5000 http://localhost:5001 형태로 리스너가 작동된다.
그렇다고 이렇게 실제 사용할수 없으니..
kestrel 서비스를 만들어주고... 작동설정을 한다.. 아래처럼
cd /etc/systemd/system
nano kestrel-vipp.service
systemctl daemon-reload
systemctl start kestrel-okpp.service
systemctl status kestrel-okpp.service <---- Active: active (running) 작동확인
systemctl enable kestrel-okpp.service <---- 자동로드 등록
여기까지 하면 웹서버 리눅스 내부에서 실행중인 kestrel-okpp.service 서비스에 의해 http://localhost:5001 접속이 가능함..
외부에서 ok.kr 로 접속하고 싶다면?
xampp 의 apache 앞단에 두고 맡긴다.. 아래처럼..
[필요할때 예]
리눅스 서버에 nodejs 가 8000 포트로 서버구동 될때...
리눅스 서버에 .net6 으로 5000 포트에서 blazor 페이지가 구동될때..
---------------------------------------------------------
위 들을 뒤로 숨기고 웹서버 가장 앞단에 apache 를 두고..
클라에서 aa.kr 로 접속했을때 리눅스 서버에 127.0.0.1:8000 nodejs 웹서버로 패스해서 웹접속
예) 클라이언트 aa.kr/api ==> 리눅스 nodejs 웹서버에서는 127.0.0.1:8000/api 로 연결됨
apache 는 xampp(리눅스버전) 로 설치되어 있다고 하고..
기본 설치 경로는 아래임...
/opt/lampp/etc/httpd.conf <---- httpd.conf 경로
위 httpd.conf 파일에서 /opt/lampp/apache2/conf/httpd.conf 을 Include "/opt/lampp/apache2/conf/httpd.conf" 하고 있으므로,
/opt/lampp/apache2/conf/httpd.conf 파일을 수정해 주면 된다.
cd /opt/lampp/apache2/conf/
nano httpd.conf
service xampp restart
이렇게 되면... 외부에서 ok.kr 로 접속하면... 웹서버의 127.0.0.1:5000 의 대기중인 .net core blazor 웹사이트 출력
만약 구동중엔 nodejs 웹경로가 127.0.0.1:8000 이라면 그걸 넣어주면 OK!!
[효과]
아파치가 앞서 막아주니 서버단의 포트 노출등을 감춰줄 수 있을 것이고..
아파치의 웹서버의 여러옵션들로 분기도 가능할것임..
그러나.. Blazor 는 내부에서 Websocket 사용됨.. 아파치가 Websocket 도 받아줄수 있도록 설정.. 아래..
https://stackoverflow.com/questions/29792372/apache2-websockets-reverse-proxy-on-same-url
service xampp restart
댓글목록
등록된 댓글이 없습니다.