반응형

Development/Environment 27

HTTPS에서 경고 없이 HTTP 리소스를 호출하는 방법

인증서가 있는 사이트에서 인증서가 없는 사이트를 호출할 때 mixed content 오류가 발생합니다. 우선 인증서가 있는 사이트에서 인증서가 없는 사이트를 호출하는 것은 문제가 될 수 있으므로, 인증서를 사용하는 것이 가장 좋은 방법입니다. 그러나 내부에서만 사용하는 사이트이거나 인증서를 구매할 수 없는 환경이라면 아래와 같은 방법으로 해결할 수 있습니다. 기본적인 Nginx 설정 방법에 대한 지식이 없어도 아래 설정을 따라만 해도 가능합니다. Nginx로 proxy_pass 설정하기 인증서가 있는 사이트라면, 해당 인증서를 사용해서 Nginx 설정을 하여 우회할 수 있습니다. Nginx가 중개자 역할이 되어 보안 연결을 호출한 것처럼 위장할 수 있습니다. Nginx 설정 server { # liste..

Nginx 환경 설정으로 원하는 자원(CSS,JS,이미지)만 캐싱하기

Nginx 설정 (수정 전) server { listen 80; location / { auth_request /auth; proxy_pass https://front_new; } #인증 location = /auth { ... } } 문제점 Nginx 환경 설정으로 자원(CSS,JS,이미지)만 캐싱한 이유 Angular 프로젝트의 웹서버로 Nginx를 사용하고 있습니다. 메인 화면에서 로그인이 되지 않은 상태면 로그인 url로 넘기고 있는데, 문제는 이 과정에서 Nginx에서 설정한 auth_request가 호출되지 않고 브라우저 캐시로 인해 redirect 되고 있습니다. 예를 들어 'example.com/' 을 호출하면 'example.com/login' 으로 redir..

메모리가 부족한 AWS Lightsail에서는 스왑 공간을 활용하자

AWS Lightsail을 사용중이라면 보통 개발용서버 또는 간단한 용도일텐데, 조금만 무거운 작업을 실행하면 메모리 부족 현상을 만나게 됩니다. (저는 React 빌드를 하려고 하는데 메모리 부족 현상을 만났습니다.) 이를 해결하기 위해서 swap space를 활용해 디스크의 일부를 가상 메모리로 사용하여 물리적인 메모리 공간이 부족할 때 시스템이 사용할 수 있는 추가적인 메모리로 활용했습니다. swap space swapfile 생성 sudo fallocate -l 2G /mnt/swapfile 경로는 원하는 경로로 지정하면 됩니다. swapfile 권한 설정 sudo chmod 600 /mnt/swapfile swap space 설정 sudo mkswap /mnt/swapfile swap 활성화 s..

AWS Lightsail에서 파이썬 여러 버전 관리 및 사용 :: pyenv

pyenv 여러 버전의 Python을 사용하기 위해서 pyenv를 사용했습니다. AWS Lightsail에서는 pyenv를 설치하기 위해서 사전에 설치해야 할 패키지가 있습니다. 먼저 설치해야 할 패키지 sudo yum install @development zlib-devel bzip2 bzip2-devel readline-devel sqlite sqlite-devel openssl11 openssl11-devel xz xz-devel libffi-devel findutils tk-devel -y 각 패키지가 필요한 이유 @development 이 패키지 그룹은 일반적인 개발 도구 및 라이브러리(예: gcc, make 등)를 포함하고 있습니다. Python을 소스에서 빌드하려면 이러한 도구가 필요합니다...

AWS Lightsail에서 React 빌드&배포 시 멈추는 현상 (메모리 부족)

원인 AWS Lightsail에서 테스트 삼아 React를 빌드하려고 했는데 빌드가 완료되지 않고 계속 멈추는 현상이 발생했다. 내 인스턴스의 RAM은 512MB인데, React는 빌드 시 규모가 조금만 커져도 메모리 부족으로 빌드가 멈춰버리는 현상이 생기는 것이다. 아마 Lightsail 뿐만 아니라, 다른 서버도 RAM 용량이 부족하면 같은 현상을 겪을 것이다. 해결 방법 스왑메모리 설정 부족한 RAM 용량을 DISK의 용량으로 대체하는 방법이다. 당연히 DISK를 사용하는 것이기 때문에 성능면에서는 현저하게 떨어지지만 메모리 부족으로 인해 빌드가 중단되는 현상은 해결할 수 있다. 운영용으로는 부적합하지만 테스트 할 때에는 사용하기 좋다. $ sudo dd if=/dev/zero of=/mnt/swa..

Amazon Linux 서버에서 Selenium 사용하기

AWS Amazon Linux 2 환경에서 google-chrome-stable 패키지로 설치하려 했으나, “gpg-key” 관련 오류가 지속적으로 발생하고, 이를 무시하려고 해도 “Segmentation Fault” 오류가 발생 해당 오류를 해결하려고 많은 시간이 소요되어 기록함. 서버 환경 NAME="Amazon Linux" VERSION="2" ID="amzn" ID_LIKE="centos rhel fedora" VERSION_ID="2" PRETTY_NAME="Amazon Linux 2" ANSI_COLOR="0;33" CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2" HOME_URL="https://amazonlinux.com/"명령어 $ cat os-release 로..

Nginx :: 이중화 과정에서 발생한 오류들 정리

Nginx 이중화 하면서 발생한 오류들 정리 Address already in use 사용하려는 포트가 이미 사용중인 경우 사용중인 포트 확인하기 (만약 사용중인 포트가 꼭 필요한 포트라면 다른 포트로 우회해도 됨) $ netstat -lntp 중지시켜도 상관이 없다면 프로세스 중지시키기 $ kill -9 [pid번호] Permission denied 포트 권한이 없어서 발생하는 오류 포트가 열려있는데도 오류가 발생한다면 아래 CentOS 보안 정책에 의해 막혔을 수도 있음. 포트를 추가해보고 재시도 포트 추가 $ semanage port -a -t http_port_t -p tcp [포트 번호] 포트 확인 $ semanage port -l | grep http_port_t unable to verify..

Nginx :: 이중화, SSL, WebSocket

각 서버의 포트별로 나누어 이중화 하는 방법 데이터베이스 이중화는 MySQL/MariaDB :: 단방향, 양방향 이중화 (Replication) 에서 확인할 수 있습니다. 테스트 서버 정보 대상서버: 0.0.0.1 대상포트: 5000, 5010, 5020 Nginx 환경 설정 (기본) SSL 인증없이 HTTP로 접속하는 경우 upstream serv_a { server 0.0.0.1:5000; server 0.0.0.1:5000 backup; } upstream serv_b { server 0.0.0.1:5010; server 0.0.0.1:5010 backup; } upstream serv_c { server 0.0.0.1:5020; server 0.0.0.1:5020 backup; } server {..

SSL :: crt와 key 파일로 pfx 만들기

pfx 파일을 사용해야만 하는 경우가 생겼습니다. 가지고 있는 crt 파일과 key 파일로 pfx 파일을 만드는 방법 CentOS 7, OpenSSL 1.0.2k-fips 코드 openssl pkcs12 -export -in [crt파일] -inkey [key파일] -out [pfx파일] openssl pkcs12 -export -in aaa.crt -inkey aaa.key -out aaa.pfx 이후 암호를 입력하면 되는데, 암호는 필수가 아니라서 입력하지 않아도 된다. 참고자료 🔥 Export Certificates and Private Key from a PKCS#12 File with OpenSSL

nginx :: [warn] the "ssl" directive is deprecated 오류 해결

오류 nginx 설정하는 과정에서 인증서를 추가하고 재시작 했더니 인증서 추가한 부분에 모두 경고가 발생 nginx: [warn] the "ssl" directive is deprecated, use the "listen ... ssl" directive instead in /etc/nginx/conf.d/default.conf:22 nginx: [warn] the "ssl" directive is deprecated, use the "listen ... ssl" directive instead in /etc/nginx/conf.d/default.conf:40 nginx: [warn] the "ssl" directive is deprecated, use the "listen ... ssl" directi..

반응형