반응형 nginx6 Nginx 다른 사이트로 리다이렉트할 때 request_uri 변조하여 rewrite 하기 회사에서 앱 버튼을 눌렀을 때 웹사이트 A의 웹뷰를 보여주는 기능이 있다. 웹사이트를 리뉴얼하게 되어 B라는 사이트를 신설했는데, 앱에 웹뷰를 띄울 때 타겟 URL이 A로 제한되어 있었기 때문에 앱 업데이트가 불가피했다. 앱 업데이트를 피하기 위해선 A의 nginx단에서 들어온 요청을 B로 던져주는 것이 필요했다. 단순히 rewrite만 쓰면 해결되지만, 여기서 문제가 A -> B로 이동할 때 path가 약간 다르다는 점이었다. 즉, https://A.com/app/path/에서 https://B.com/path/ 처럼 세부 path 가 달라져야 했다. 이럴 때에는 location 안에서 request_uri에 대한 조건문을 활용해볼 수 있다.location / { # 어떤 특정 location .. 2024. 8. 6. Nginx - index 페이지 기본 탐색기 적용하기 server { ... content ... location / { autoindex on; } } fancy index를 활용하면 날짜 포맷도 바꿀 수 있음 sudo apt-get -y install libnginx-mod-http-fancyindex server { ... content ... location / { autoindex on; fancyindex on; fancyindex_time_format "%Y-%m-%d %H:%M:%S"; } } reference : https://installati.one/install-libnginx-mod-http-fancyindex-ubuntu-18-04/?expand_article=1 2024. 2. 29. Nginx 프록시 대상에게 Client IP 정보 넘겨주기 location { ... proxy_set_headerX-Real-IP$remote_addr; proxy_set_headerX-Forwarded-For$proxy_add_x_forwarded_for; ... } 위와 같이 세팅하면 proxy 대상 서버에서는 x-forwarded-for header를 읽으면 IP가 찍혀 있다. 2024. 2. 20. Nginx Response header 커스터마이징하기 response header에 Server 항목을 보면, Server: nginx x.x; 처럼 nginx version이 명시되는 경우, 보안상 좋지 않기 때문에 해당 Server 헤더 값을 커스터마이징 할 필요성이 있다. 이런 경우 추가적인 패키지를 받아서 해결할 수 있다. > sudo apt-get update > sudo apt-get install nginx-extras nginx 서버 세팅 파일에서는, location ... { server_tokens off;# removed pound sign more_set_headers 'Server: MySite'; } 처럼 처리할 수 있다. 2022. 2. 4. Nginx 설정으로 분리된 Web, WAS 연결하기 가장 기초적인 단계로는 우분투 서버 한 대에 nginx 설정을 하고, 같은 공간에 서버 프로그램도 둬서 릴리즈를 하는 경우가 있지만, 이런 경우 Web, WAS(Web Application Server)가 분리되지 않아 보안이 취약할 수 있다. 보통 Web과 WAS는 다른 Zone으로 분리되어 있으며, WAS는 내부망으로 설정하여 외부에서 어떠한 접속도 하지 못한다. WAS 로는 DMZ Zone 에 있는 Web으로부터 걸러 들어온 요청만 들어올 수 있게 설계하는 것이 가장 좋다. 이는 다음에 AWS Web, WAS 분리에서 다뤄보겠다. 우선 Web, WAS 가 분리되어 있다고 하고, WAS는 이전 글에 작성한대로 어플리케이션이 이미 실행중이라고 가정한다. nginx 설정은 아래와 같이 할 수 있다. su.. 2020. 11. 27. Ubuntu 16.04 Flask, django uwsgi 서비스 등록하기 Flask, django로 개발을 마친 후에 우분투 기반으로 서버를 가동하고 싶을 때, 사전 작업으로 기존에 쓰던 app.py 혹은 manage.py 를 사용하지 않고, 서버용 스크립트를 따로 만든다. 나는 보통 네이밍을 wsgi_{environment}.py 로 만드는데, 스크립트는 기존 앱과 거의 비슷하게 생겼지만, 해당 서버용 스크립트는 기존 디버그 환경과는 다른 변수로 세팅하는 목적이 있다. (환경 변수로 커버할 수 있으면 같은 것 써도 무방하긴 할 듯..) 우선 ubuntu 에서 uwsgi 설치를 해야 한다. pip3 install uwsgi 그 다음 서비스에 관련된 정보를 넣을 dev.ini 파일을 만든다 [uwsgi] module = wsgi:app # wsgi.py 에서 app 으로 정의된.. 2020. 11. 27. 이전 1 다음 반응형