728x90
간단하게 Nginx로 특정 URL 별로 Upstream 처리하는 방법에 대해 작성해 보겠습니다.
1. 경로이동
- 리눅스 서버에 nginx를 설치하였다면, 아마 아래 경로에 nginx.conf 파일이 있을 겁니다.
cd /etc/nginx
1.1. 경로 못찾음
- 만약 nginx.conf 파일의 경로를 못 찾겠다면, 아래 명령어를 이용하여 찾아볼 수 있습니다.
find /etc/ -type f -name "nginx.conf"
2. nginx.conf 편집
- 편집기를 열어 nginx.conf를 수정합니다.
vi nginx.conf
2.1. location 설정
- location 경로를 설정하고 proxy pass 할 upstream 서버를 지정해 줍니다.
user root;
#process수 자동증가
worker_processes auto;
error_log /var/log/nginx/error.log error;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 4096;
#gzip on;
include /etc/nginx/conf.d/*.conf;
# upstream 서버1
upstream view_server {
ip_hash;
server 서버IP:포트 weight=1 max_fails=3 fail_timeout=30s;
}
# upstream 서버2
upstream api_server {
ip_hash;
server 서버IP:포트 weight=1 max_fails=3 fail_timeout=30s;
}
server {
listen 80;
server_name 도메인 또는 IP(Port는 생략);
keepalive_timeout 60s;
location ~ /api {
# 위에서 지정한 upstream 서버 맵핑
proxy_pass http://api_server;
proxy_set_header Host 도메인 또는 IP(Port는 생략);
# 실제 사용자 IP 전달
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Real-IP $remote_addr;
proxy_redirect off;
}
location / {
# 위에서 지정한 upstream 서버 맵핑
proxy_pass http://po_web;
proxy_set_header Host 도메인 또는 IP(Port는 생략);
# 실제 사용자 IP 전달
proxy_set_header X-Forwarded-For $remote_addr;
proxy_set_header X-Real-IP $remote_addr;
proxy_redirect off;
}
}
}
2.2. alias 설정
- alias를 이용해 CDN 서버 추가 구성도 가능합니다.
server {
...
location /cdn/image {
alias /nas/imageFile
}
...
}
2.3. 이중화 설정
- Upstream 도 이중화 구성이 가능합니다.
upstream api_server {
ip_hash;
server 127.0.0.1:8081 weight=1 max_fails=3 fail_timeout=30s;
server 127.0.0.1:8082 weight=1 max_fails=3 fail_timeout=30s;
}
감사합니다.
728x90
'도구 및 환경 > Server' 카테고리의 다른 글
[SVN] org.apache.subversion.javahl.ClientException: Authorization failed svn: 인증 실패 (1) | 2024.08.01 |
---|---|
[SVN] 리눅스 SVN Repository 간단하게 생성하기 (0) | 2024.08.01 |
[NGINX] 멀티 도메인 Redirect Host 유지하기 (0) | 2024.07.23 |
[Gitlab] 시놀로지 NAS Gitlab external_url 설정 (0) | 2024.07.22 |