Hostwinds 튜토리얼

에 대한 검색 결과:


목차


전제 조건
Nginx 구성
Nginx 구성 테스트

SSL을 사용하는 Nginx 역방향 프록시

태그 : Cloud Servers,  SSL,  VPS 

전제 조건
Nginx 구성
Nginx 구성 테스트

Nginx는 강력한 도구입니다. 여러 응용 프로그램, 웹 사이트,로드 균형 조정 된 응용 프로그램 등을 사용할 수 있습니다. 이러한 유연성은 거의 인간이 읽을 수있는 구성 파일을 사용하는 상대적으로 간단한 구성 시스템에 의해 전원이 공급됩니다. 이 안내서는 SSL을 사용하여 NGINX 역방향 프록시를 설정하는 방법을 보여줍니다. Hostwinds 클라우드 VPS.

전제 조건

이 가이드는 명령 줄을 통해 Linux 기반 시스템을 사용하는 일반적인 이해를 맡고 다음 전제 조건을 더 가정합니다.

  • Ubuntu 18.04
  • 비 루트 사용자
  • 원하는 리버스 프록시 포트에서 실행되는 앱 (이 가이드에서는 포트 3000으로 가정)
  • 원하는 도메인에 대한 DNS A 이름 레코드
  • 도메인 용 SSL 인증서

Nginx 구성

Nginx-full 패키지의 기본값은 동적 공유 가상 호스트 환경입니다. 각 가상 호스트에 대한 구성 파일은 여기에서 사용할 수 있습니다.

/etc/nginx/sites-available/

이 위치에는 다음과 같은 파일이 있습니다. 기본 기본 템플릿으로 사용할 수 있습니다. 그러나이 가이드에서 새 구성 파일을 수동으로 만들고 필요에 따라 채우십시오. 일단 루트가 아닌 사용자로 로그인 한 후이 명령을 실행하여 프로세스를 시작하십시오.

sudo touch /etc/nginx/sites-available/domain.tld

교체하십시오 도메인 - TLD. 실제로 사용하고있는 도메인으로.

그런 다음 우리는 필요한 작업을 수행하도록 해당 파일을 수정하여 해당 파일을 수행합니다. 우리는 사용할 것입니다 정력 이 가이드에서 텍스트 편집기로. 당신은 사용할 수 있습니다 나노 또는 개인 취향에 따라 다른 텍스트 편집기.

sudo vim /etc/nginx/sites-available/domain.tld

이제 파일 이이 파일에 다음 텍스트를 추가하십시오. 지시 된 텍스트를 수정하여 도메인을 참조하거나 앱에서 앱이 사용 중이고 SSL 인증서 경로를 참조하십시오. 이 파일은 역방향 프록시의 주요 구성이됩니다.

###
# This Section listens on port 80 for your domain and rewrites the request 
# to HTTPS for us
###

server {
listen 80;
server_name domain.tld www.domain.tld; # Edit this to your domain name
rewrite ^ https://$host$request_uri permanent;
}

###
# This is all the configuration declarations that help SSL Function.
###

server {
listen 443 ssl;

server_name domain.tld;
# Edit this to your domain name

ssl_certificate /etc/letsencrypt/live/domain.tld/fullchain.pem;       
# If you use Lets Encrypt, you should just need to change the domain. 

ssl_certificate_key /etc/letsencrypt/live/domain.tld/privkey.pem;     
# If you use Let's Encrypt, you should just need to change the domain.

ssl_session_cache builtin:1000 shared:SSL:10m;                        
# Defining option to share SSL Connection with Passed Proxy

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;                                  
# Defining used protocol versions. 

ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4; 
# Defining ciphers to use. 

ssl_prefer_server_ciphers on;                                         
# Enabling ciphers

access_log /var/log/nginx/access.log;                                 
# Log Location. Can be anywhere. Make sure the nginx user defined in /etc/nginx/nginx.conf has r/w permissions

###
# This is the juicey part of the config file, handing off relevant data to 
# our back-end app running on port 3000
# Nothing should need to be changed here, unless port 3000 is not the port 
# you're using. 
# Furthermore, if you're using a socket to serve your app (PHP comes to 
# mind), you can define a unix:.sock location here as well
###

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:3000;
proxy_read_timeout 90;
}
}

파일을 저장하고 텍스트 편집기를 종료하십시오.

Nginx 구성 테스트

이제 구성이 생성되었으므로 Nginx에로드시 파일을 확인하도록 지시해야합니다. 심볼릭 링크를 만들 것입니다.

sudo ln -s /etc/nginx/sites-avaialable/domain.tld /etc/nginx/sites-enabled/domain.tld.conf

다음으로 Nginx 시스템 서비스를 다시 시작하기 전에 구성을 테스트합니다.

sudo nginx -t

그 후 테스트를 실행하고 성공하면 다음 메시지를 출력해야합니다.

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

이제 구성 파일이 크래시를 일으키지 않으므로 NGINX 서비스를 다시 시작하고 앱을 테스트 해 봅시다.

sudo systemctl restart nginx

이제 정의 된 포트에서 실행중인 앱에 대한 액세스 권한이 있습니다. 도메인 - TLD. 이전에 생성 된 Nginx 구성 파일에 설명 된대로.

작성자 Hostwinds Team  /  유월 14, 2019