반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 알고리즘
- function_template
- Heap
- singly Linked List
- 5397
- 자료구조
- connected_component
- list
- 총정리
- 13305
- deletion
- c++
- Articulation_Point
- Biconnected_Component
- data_structure
- 예제
- Critical_Path_Analysis
- red-black tree
- 문법
- 구현
- 백준
- Algorithm
- '0'
- sstream
- STL
- Pair
- qsort
- class_template
- sort
- template
Archives
- Today
- Total
- Today
- Total
- 방명록
어제의 나보다 성장한 오늘의 나
[Apache] 웹서버 리버스 프록시 설정 ( Feat. Next.js 프로젝트 ) 본문
반응형
아파치 웹 서버에 배포한 Next.JS 프로젝트를 위해서 웹서버에 리버스 프록시를 설정하였습니다.
저의 Next.JS 프로젝트를 서버에서 실행 시키면 포트는 3031 이고 경로는 루트(/)로 열리게 됩니다. 그럼 {도메인}:3031/ 로 접속하면 Next.JS 프로젝트에 접속할 수 있었습니다. 근데 이 서버에는 여러 가지 프로젝트들이 많이 있었습니다.
그래서 웹 서버 관리자가 루트 경로가 아닌 {도메인}/sw-mileage-admin 으로 접속 할 수 있기를 원했습니다. 포트는 80 이고 경로는 /sw-mileage-admin 임을 알 수 있습니다.
Why 리버스 프록시??
- 포워드 프록시 : 클라이언트 → 인터넷 으로 나가는 요청을 중개한다. 리다이렉션이 가능 하지만 나가는 요청을 리다이렉트하는 것이기에 적절하지 않다.
- 포트 포워딩 : 들어오는 요청의 IP와 포트를 변경 시킬 수 있으나 경로를 변경하기에는 적절하지 않음
- 리버스 프록시 : 외부의 요청 -> 내부 서버(들)로 전달. 들어오는 요청의 포트와 경로를 변경할 수 있으며, 여러 서버에 대한 요청을 효율적으로 관리할 수 있음.
웹 서버에 설정 파일에 코드를 추가하면 된다.
다음 세 가지만 해주면 된다.
클라이언트 접근 권한 허용
요청 경로 설정
정적 파일 경로 설정
/etc/apache2/sites-available/000-default.conf
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
# 해당 주소로의 모든 클라이언트들의 접근을 허용
<Proxy "http://localhost:3031">
Require all granted
</Proxy>
# /sw-mileage 경로로 들어오는 요청을 localhost:3031로 리디렉션
ProxyPass /sw-mileage-admin http://localhost:3031
ProxyPassReverse /sw-mileage-admin http://localhost:3031
# 정적 파일 Alias 설정 (_next)
Alias "/_next" "/home/sw_mileage/SW-Milege-Front/.next"
<Directory "/home/sw_mileage/SW-Milege-Front/.next">
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# 정적 파일 Alias 설정 (assets)
Alias "/assets" "/home/sw_mileage/SW-Milege-Front/public/assets"
<Directory "/home/sw_mileage/SW-Milege-Front/public/assets">
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
작성 후 아래 커맨드를 통해 웹 서버를 재시작 하면 적용이 된다.
sudo systemctl restart apache2
반응형
'Next.js' 카테고리의 다른 글
[NextJS] Next.js 프로젝트에서 CSS 프레임 워크 결정 하기 (0) | 2024.03.25 |
---|---|
[Next.js] Next.js와 호환되는 css와 그렇지 못한 css에 대한 고찰 (0) | 2024.03.21 |
[Next.js] getServerSideProps 에서 403 인증 에러 캐치 후 로그인 페이지로 리다이렉션 시키기 (0) | 2024.01.28 |
[Next.js] GetServerSideProps 헤더에 인증 토큰 추가 하는 방법 (쿠키 사용) (0) | 2024.01.28 |
[Next.js] 쉘 스크립트를 통한 배포 자동화 (2) | 2024.01.28 |
Comments