>  기사  >  운영 및 유지보수  >  SSL을 사용하여 Nginx 역방향 프록시를 구성하는 방법

SSL을 사용하여 Nginx 역방향 프록시를 구성하는 방법

PHPz
PHPz앞으로
2023-05-13 15:19:151428검색

전제 조건

1. 백엔드 서버: 이 튜토리얼의 목적을 위해 우리는 포트 8080의 localhost에서 실행되는 Tomcat 서버를 사용하고 있습니다.

참고: - 요청 프록시를 시작할 때 애플리케이션 서버가 시작했다.

2.ssl 인증서: 서버에도 SSL 인증서를 구성해야 합니다. Let's encrypt의 암호화 인증서를 사용할 수 있으며 여기에 언급된 프로그램을 사용하여 인증서를 얻을 수 있습니다. 하지만 이 튜토리얼에서는 터미널에서

$ openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/certs/cert.key -out /etc/nginx/certs/cert.crt

명령을 실행하여 생성할 수 있는 자체 서명된 인증서를 사용합니다. SSL을 사용하여 nginx 역방향 프록시를 구성하는 다음 단계는 nginx 설치,

install nginx
입니다.

ubuntu

nginx는 기본 우분투 저장소에서 사용할 수 있습니다. 매우 쉽습니다. 다음 명령을 사용하여 설치하십시오.

$ sudo apt-get update && sudo apt-get install nginx

이제 서비스를 시작하고 시작을 위해 활성화하십시오.

# systemctl start nginx 
 
# systemctl enable nginx

이제 nginx 설치를 확인하고 웹 브라우저를 열고 시스템 IP를 URL로 입력하여 기본값을 얻을 수 있습니다. nginx 웹페이지에서 nginx가 제대로 작동하는지 확인하세요.

SSL을 사용하여 nginx 역방향 프록시 구성

이제 SSL을 사용하여 nginx 역방향 프록시를 구성하는 데 필요한 모든 것이 준비되었습니다. 이제 nginx에서 구성해야 하며 /etc/nginx/conf.d/default.conf인 기본 nginx 구성 파일을 사용합니다.

구성을 처음 변경하는 것이라고 가정하고 파일을 삭제하고 모든 이전 파일 내용을 삭제하거나 주석 처리하고 다음 항목을 파일에 배치합니다.

vi /etc/nginx/conf.d/default.conf

server { 
 
listen 80; 
 
return 301 https://$host$request_uri; 
 
} 
 
 
 
 
server { 
 
listen 443; 
 
server_name linuxtechlab.com; 
 
ssl_certificate /etc/nginx/ssl/cert.crt; 
 
 
 
 
ssl_certificate_key /etc/nginx/ssl/cert.key; 
 
ssl on; 
 
ssl_session_cache builtin:1000 shared:ssl:10m; 
 
ssl_protocols tlsv1 tlsv1.1 tlsv1.2; 
 
ssl_ciphers high:!anull:!enull:!export:!camellia:!des:!md5:!psk:!rc4; 
 
ssl_prefer_server_ciphers on; 
 
access_log /var/log/nginx/access.log; 
 
 
 
 
location / { 
 
proxy_set_header host $host; 
 
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 $scheme; 
 
proxy_pass http://localhost:8080; 
 
proxy_read_timeout 90; 
 
proxy_redirect http://localhost:8080 https://linuxtechlab.com; 
 
} 
 
}

모든 변경을 완료한 후 파일을 저장하고 종료합니다. 변경 사항을 구현하기 위해 nginx 서비스를 다시 시작하기 전에 섹션별로 구성에 대해 논의하겠습니다.

섹션 1

server { 
listen 80; 
return 301 https://$host$request_uri; 
}

여기에서는 포트 80에 대한 요청을 수신한 다음 https로 리디렉션하도록 지시합니다.

섹션 2

listen 443; 
 
server_name linuxtechlab.com; 
 
ssl_certificate /etc/nginx/ssl/cert.crt; 
 
ssl_certificate_key /etc/nginx/ssl/cert.key; 
 
ssl on; 
 
ssl_session_cache builtin:1000 shared:ssl:10m; 
 
ssl_protocols tlsv1 tlsv1.1 tlsv1.2; 
 
ssl_ciphers high:!anull:!enull:!export:!camellia:!des:!md5:!psk:!rc4; 
 
ssl_prefer_server_ciphers on;

이제 우리가 사용하고 있는 몇 가지 기본 nginx SSL 옵션은 nginx 웹 서버에 어떤 프로토콜 버전, SSL 암호화가 지원되는지 알려줍니다.

섹션 3

location / { 
 
proxy_set_header host $host; 
 
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 $scheme; 
 
proxy_pass http://localhost:8080; 
 
proxy_read_timeout 90; 
 
proxy_redirect http://localhost:8080 https://linuxtechlab.com; 
 
}

이제 이 섹션에서는 프록시와 수신 요청이 들어오면 어디로 가는지 다룹니다. 이제 모든 구성에 대해 논의했으므로 nginx 서비스를 확인한 후 다시 시작하겠습니다.

nginx를 확인하려면 다음 명령을 실행하세요.

# nginx -t

모든 구성 파일이 정상이면 nginx 서비스를 다시 시작합니다.

# systemctl restart nginx

이제 SSL nginx 리버스 프록시가 준비되었습니다. 이제 설정을 테스트하려면 웹 브라우저를 열고 URL을 입력하기만 하면 됩니다. 이제 Apache Tomcat 웹 페이지로 리디렉션됩니다.

위 내용은 SSL을 사용하여 Nginx 역방향 프록시를 구성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제