티스토리 뷰
만약 도메인이 www.domain1.com 에서 www.domain2.com로 변경 되었고,
www.domain1.com, www.domain2.com 도메인을 모두 소유하고 있을 경우
domain1을 domain2로의 리다이렉트를 nginx에서 처리하는 방법 입니다.
nginx에서 주소를 바꿔주도록 설정 해주면 된다.
server {
listen 443;
server_name 도메인1;
return 301 도메인2$request_uri;
}
위와 같이 301코드와 함께 도메인2로 리턴을 하면 파라미터까지 추가해서 보낼 수 있다.
ex) www.naver.com/hihi→ www.daum.net/hihi
그러나 도메인1로 post요청을 보내면 308 permanent redirect 이라는 메시지와 함께 요청이 제대로 전달 되지 않는다.
확실히 어떤 이유 때문에 오류가 나는지는 모르겠지만 도메인2로 리다이렉트 될 때 리다이렉트가 될뿐
post요청을 보내지 않아서 그런거라 생각 된다.
301 Moved Permanently - HTTP | MDN
server {
listen 443;
server_name 도메인1;
if ($request_method != POST) {
return 301 도메인2$request_uri;
}
location ~* ^{
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
send_timeout 600;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $http_x_forwarded_proto;
# proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_set_header Content-Type $content_type;
proxy_pass 도메인2;
}
}
request_method 가 POST 가 아닌 다른 요청일 경우 도메인2로 redirect 시켜주고, POST 요청의 경우 proxy_pass 를 이용하여 redirect 시켜 주었다. proxy_pass 를 이용할 경우 도메인이 바뀌지 않기 때문에 POST method일때만 proxy_pass를 넣어 주었다.
proxy_set_header Host $http_host;
→ 이 옵션의 경우 넣으면 400 Request Header Or Cookie Too Large 오류와 함께 nginx로그에는 수많은 반복 로그들이 찍혔다. 이유는 모르겠다. (stackoverflow 보고 해결)
- Total
- Today
- Yesterday
- sql lite
- for-else
- 프로그래머스
- gunicorn
- taggit
- 소프트웨어 장인
- 방금그곡
- conTeXt
- 의대 신경학 강의
- 백준
- 독후감
- go
- go context
- django
- ManyToMany
- leetcode
- stdout
- 파이썬
- query
- 문자열 뒤집기
- dfs
- 팰린드롬수
- Two Scoops of Django
- Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |