일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- Ansible
- golang
- awx
- repository
- pacman
- KVM
- i3
- libvirt
- cloud-init
- archlinux
- ceph
- k8s
- Octavia
- kolla-ansible
- Arch
- port open
- terraform
- kolla
- OpenStack
- Linux
- ubuntu
- HTML
- Docker
- ceph-ansible
- yum
- grafana-loki
- Kubeflow
- Kubernetes
- nfs-provisioner
- cephadm
Archives
- Today
- Total
YJWANG
Nginx reverse proxy regexp 및 arguments 분기 본문
Nginx proxy 설정
Nginx 에서 reverse proxy 등으로 요청 분기 시 기본적으로 GET요청 시 같이 보내는 argument가 보내지지 않는다.
하여 아래와 같이 설정하면 is_args
로 인해 ?
문자가 매핑되고 $args
로 인해 뒤 arguments가 전달되게 된다.
sample configuration
location ~ ^/(pattern1|pattern2)($|/.*) {
proxy_pass http://test.server.com/$1$2$is_args$args;
}
Upstream Sample
upstream backend {
server 10.95.90.20:30080 fail_timeout=5s;
server 10.95.90.21:30080 fail_timeout=5s;
}
server {
listen 8088;
location /test1 {
proxy_pass http://backend/test1;
}
location /test2 {
proxy_pass http://backend/test2;
}
error_page 404 /404.html;
location = /40x.html {
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
}
}
if 분기
header 와 hosts도 같이 넘어가도록 설정
아래와 같이 하면 parameter도 같이 넘어감
location ~ ^/(a|b|c)($|/.*) {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header Host $host;
if ( $request_uri ~ "/api/(a|b)($|/.*)" ) {
set $behindC $2;
proxy_pass https://test.com/cc$behindC;
}
if ( $request_uri ~ "/(c)($|/.*)" ) {
set $behindD $2;
proxy_pass https://test,com/dd$behindD;
}
}
rewrite 분기
요청 url rewrite하여 분기
location ~ ^/(gg/01) {
rewrite "(?i)/gg/01(/|$)(.*)" /hh/01$1$2 break;
proxy_pass http://test.com;
}
반응형