서버 에 nginx 를 설치 하고 HTTPS (ssl) 지원 설정

4380 단어
서버 에 nginx 를 설치 하고 HTTPS (ssl) 지원 설정
서버 환경: ubuntu 16.04
도 메 인 이름: xxxx. com
인증서 서비스: Let 's Encrypt
설치 nginx
설치 하기 전에 포트 80 관련 프로그램 을 중단 하 십시오.
포트 점용 상황 을 보고 모든 pid 를 표시 합 니 다.
sudo lsof -i :80

80 포트 를 차지 하 는 프로 세 스 를 죽 이 고 pid 에 따라
sudo kill -9 xxx

설치 nginx
sudo su
apt-get update
apt-get install nginx

설치 성공 후 nginx 관련 디 렉 터 리 는 다음 과 같 습 니 다.
/usr/sbin/nginx      
/etc/nginx              
/usr/share/nginx        
/var/log/nginx        

설치 성공 후 nginx 가 시작 되 었 는 지 확인 합 니 다. nginx 는 80 포트 를 차지 합 니 다.
sudo lsof -i :80

성공 적 으로 시작 한 것 은 다음 과 같 습 니 다. nginx 가 존재 하 는 것 을 보면 성공 을 표시 합 니 다.
COMMAND   PID     USER   FD   TYPE   DEVICE SIZE/OFF NODE NAME
nginx   17737     root    6u  IPv4 31827669      0t0  TCP *:http (LISTEN)
nginx   17737     root    7u  IPv6 31827670      0t0  TCP *:http (LISTEN)
nginx   32138 www-data    6u  IPv4 31827669      0t0  TCP *:http (LISTEN)
nginx   32138 www-data    7u  IPv6 31827670      0t0  TCP *:http (LISTEN)

성공 하지 못 하면 80 포트 를 사용 하 는 다른 프로그램 이 있 는 지 확인 하고 kill 을 제거 한 다음 다음 에 다음 문 구 를 실행 하여 nginx 를 시작 합 니 다.
nginx -s reload

상기 문 구 를 실행 하면 다음 과 같은 오 류 를 보고 할 수 있 습 니 다.
open() "/run/nginx/nginx.pid" failed (2: No such file or directory)

오류 원인 은 nginx 지정 한 실행 중인 프로 세 스 id 를 다시 시작 하 는 데 실 패 했 기 때 문 입 니 다. nginx 처음 시작 하 는 데 실 패 했 기 때문에 pid 프로 세 스 와 관련 되 지 않 았 고 다시 시작 하 는 방법 도 없습니다. 이 때 는 다음 명령 으로 nginx 를 시작 시 켜 야 합 니 다. - c 뒤의 디 렉 터 리 는 개인 nginx 설치 디 렉 터 리 에 따라 결 정 됩 니 다.
nginx -c /etc/nginx/nginx.conf

ip 주소 로 도 메 인 이름 분석
nginx 설정 폴 더 에 들 어가 기
cd /etc/nginx/conf.d
vi xxx.conf  //                

구성 내용
메모: 설정 내용 에 / / 주석 을 사용 하지 마 십시오. 한 줄 에 주석 을 달 아야 합 니 다. \ #, 붙 여 넣 을 때 / / 의 내용 을 삭제 하 는 것 을 주의 하 십시오.
server {
    listen       80;
    server_name xxxx.com;  // U  
    location / {
            root /home/ubuntu/data/nodeServer/public;   //               
            index  index.html index.htm;                //     
    }
}

설정 이 성공 한 후 실행 종료 명령 을 저장 합 니 다. test is successful 을 보면 설정 이 성공 적 임 을 표시 합 니 다.
도 메 인 이름 접근 을 입력 할 수 있 습 니 다.
nginx -t

https 인증서 설정
홈 페이지 에서 자신의 시스템 과 관련 된 설정 을 선별 한 후 다음 과 같은 설치 명령 을 받 아 순서대로 실행 합 니 다.
$ sudo apt-get update
$ sudo apt-get install software-properties-common
$ sudo add-apt-repository ppa:certbot/certbot
$ sudo apt-get update
$ sudo apt-get install python-certbot-nginx 

인증서 가 져 오기 및 설치
다음 명령 을 실행 하여 인증 서 를 가 져 옵 니 다. 이 명령 은 Nginx 프로필 을 변경 하고 다시 시작 합 니 다.
certbot --nginx

이상 잘 되면 방문https://xxxx.com 저 초록색 자물쇠 가 보 여요.
자동 연장
Let 's Encrypt 가 발급 한 인증서 의 유효기간 은 90 일 이 며, 만 료 후 다음 명령 으로 재계약 할 수도 있 고, 스스로 스 크 립 트 를 써 서 자동 으로 재계약 할 수도 있 습 니 다.
certbot renew --dry-run

수 동 으로 생 성 Let's Encrypt 된 인증서 설정 방법 은 다음 과 같 습 니 다.
nginx 서비스 정지
nginx -s stop

도 메 인 이름 인증서 생 성
메 일 은 메 일 을 검증 하 는 것 으로 자신의 유효한 메 일이 필요 하 며 힌트 를 성공 적 으로 볼 수 있 습 니 다.인증 서 는 기본적으로 /etc/letsencrypt/live/xxxx.com 경로 에서
certbot certonly --standalone --email [email protected] -d xxxx.com

설정 nginx
nginx 설정 폴 더 에 들 어가 xxxx. com 파일 을 추가 하고 파일 경 로 는 개인의 nginx 설치 경로 에 따라
cd /etc/nginx/sites-enabled/
vi xxxx.com

설정 내용, 삭제 / / 및 뒤의 내용 을 기억 하 십시오.
server {
    listen 443;
    server_name xxxx.com;
    ssl on;
    root /home/ubuntu/data/nodeServer/public;  //           
    index index.html index.htm;                //     
    ssl_certificate  /etc/letsencrypt/live/xxxx.top/fullchain.pem;   //     
    ssl_certificate_key /etc/letsencrypt/live/xxxx.top/privkey.pem;  //     
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    location / {
        index index.html index.htm;
    }
}

종료, 테스트 설정 저장
nginx -t 

성공 후 nginx 서 비 스 를 다시 시작 하면 됩 니 다.

좋은 웹페이지 즐겨찾기