리눅스 서버 세팅을 하다가 NginX를 설치하고, 리버스 프록시 설정을 해줄 필요가 생겼다.
설치하기 전에 NginX 와 리버스 프록시에 대해 간략히 알아보자.
1.NginX 란?
Nginx 는 일종의 웹서버로서 흔히들 아는 Apache 웹서버와는 다르게
비동기 이벤트 기반 구조로 동작한다.
이로 인해 서버에 부하가 발생 시 성능 예측이 쉬운 편이다.
무엇보다, 내 기준으로는 Apache Web Server 보다 환경설정이 쉬운 편이었다.
2.Reverse Proxy 란?
리버스(역방향) 프록시, 즉 프록시 서버는 일종의 중계 서버이다.
클라이언트가 외부에서 서버로 접근해올 때, 프록시 서버는 내부 서버의 정보를 알고 있으므로,
클라이언트를 올바른 자리로 이동시켜주는 역할이라고 하겠다.
예를 들어
손님(클라이언트), 식당 종업원(프록시 서버), 식당 내부 상황(내부 서버)
이런 가정일 때,
손님이 들어오면 식당 종업원이 맞아, 빈 자리로 안내한다.
즉 식당종업원이라는 프록시 서버가 판단하여 내부 서버의 적당한 자리로 이동시킨다는 것이다.( 맞나 ..? )
1.NginX 설치 (CentOS)
만약 안될 경우, epel repository가 비활성이 의심되므로 활성화를 해준다.
2. Nginx 설치 경로
2-1) 최상위 경로로 이동하여 다음 명령어를 쓴다.
2-2) nginx 로 가서 파일 리스트를 조회하면 다음과 같이 나오는 데, 눈 여겨볼 것은 conf.d 디렉토리이다.

3. conf.d 로 접근하여 default.conf 조회 (없을 경우 파일을 만들어주세요.)

4. default.conf 파일 수정(중요)
server {
listen 80 default_server; // 설정 포트
server_name m.proxy.com; // 사용자에게 유입될 도메인
location / {
proxy_pass http://m.proxy.com:3000; // 실제 사용될 도메인(내부서버)
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_buffer_size 128k;
proxy_buffers 4 256k;
proxy_busy_buffers_size 256k;
}
}
최초 유입 도메인인 m.proxy.com 으로 접근되면,
실제 사용될 내부서버인 m.proxy.com:3000으로 이동시킨다.
그에 따른 프록시 헤더값이며, 필요한 것이 있을 때마다 추가해주면 되겠다.
버퍼 사이즈를 설정한 이유는 버퍼를 설정하지 않을 경우 접근시간이 초과되 502 에러가 나오는 경우가 있어
설정했다.
5. Nginx 재시작
5-1) 현재 Nginx 상태 확인
이상이 있을 경우 에러코드가 발생하고, 없을 경우 success 라고 메시지가 나올 것이다.
5-2) Nginx 재시작
별 이상이 없으면 여기서 끝나겠지만, 필자가 삽질을 하도 많이해서
그에 따른 대처방법을 작성하겠다.
* 삽질
1.site-available, site-enable 폴더 부재
구글링을 해보니 대부분 위와 같은 폴더 기준으로 설정을 하라고 하는데,
나의 경우 NginX 버전이 안 맞는 건지 없었다.
최근버전의 경우 conf.d 폴더 안에 있는 *.conf 폴더로 설정하는 거 같아
default.conf 폴더로 진행했다.
2. Bad not GateWay(502) 에러
1차적으로 default.conf 파일에 버퍼사이즈를 조정하면 된다고 언급되있지만,
나의 경우 해결되지 않았다.
위와 다른 문제가 있어 이방법으로 해결했다.
* 원인 SELinux 의 네트워크 보안 문제
리눅스 커널 모듈에서 기본적으로 httpd 에 의해
네트워크 연결 기본값이 false 로 되어 있다.
그러므로 우린 이것을 true 로 바꿔주면 된다.
위와 같은 명령어를 작성하니 쉽게 해결 !
오랜만에 NginX 를 설정해보니 과거와 다른 점이 많아
삽질을 많이 했다.
이걸 보시는 분은 삽질을 덜 하시길...
1단계는 끝났고, 마지막 2단계를 향해 가보자.
지난 포스팅에 이어 진행해보자. https://blog.naver.com/ohks486/222832867066 요즘 웹사이트들은 보안인...
blog.naver.com
'서버 > 리눅스' 카테고리의 다른 글
[리눅스] 터미널 세션 종료 후 프로그램 실행 (0) | 2025.02.11 |
---|---|
[Nginx] HTTPS 를 적용해보자-02 (Feat.SSL, CertBot) (0) | 2025.02.11 |
[리눅스] DDoS 공격 방어 (0) | 2025.02.11 |
[Nginx] 악성봇 & 스팸봇 차단 (0) | 2025.02.11 |
[리눅스] 사용자 계정 추가하기 (0) | 2025.02.11 |