Nginx: 두 판 사이의 차이

학교의 모든 지식. SMwiki
둘러보기로 이동 검색으로 이동
편집 요약 없음
잔글 (→‎개요)
 
(같은 사용자의 중간 판 하나는 보이지 않습니다)
28번째 줄: 28번째 줄:


==SSL 인증==
==SSL 인증==
https 주소를 사용하기 위한 인증이다.
이곳에선 비영리 인증기관인 Let's Encrypt의 인증을 certbot을 통해 자동으로 인증받는 과정을 다룰 것이다.
{| class="wikitable"
{| class="wikitable"
!과정
!의도
!설명
!설명
!방법
!방법
|-
|-
|설치
|Certot을 이용한 인증.
|저장소 등록 및 설치.
|https 주소를 사용하기 위한 인증이다.
|
 
{| class="wikitable"
비영리 인증기관인 Let's Encrypt의 인증을 certbot을 통해 자동으로 인증받는 과정.
!OS
|[[Certot]] 문서 참조.
!방법
|-
|-
|우분투 20.04
|openssl을 사용한 인증.
|<syntaxhighlight lang="bash" line="1">
|개인 ssl인증을 하게 도와주는 도구.
sudo apt-get update
|[[리눅스:openssl(ssl인증서)|openssl]] 문서 참조.
sudo apt-get install software-properties-common
sudo add-apt-repository universe
sudo apt-get update
sudo apt-get install certbot python3-certbot-nginx
</syntaxhighlight>
|}
|}
= 파일 업로드 설정 =
적절한 값을 설정해두어야 파일을 올릴 수 있다. 설정파일을 변경하든가, 사이트 설정을 변경하는 방법으로 가능.
{| class="wikitable"
!설정파일을 변경하는 경우
!설명
|-
|-
|Nginx세팅
|우분투 경로 : /etc/nginx/nginx.conf<syntaxhighlight lang="bash">
|<code>/etc/nginx/sites-available</code> 안에 있는 세팅파을을 설정해준다. 이미 서비스를 하고 있었다면 되어있을 터.
http {
(server_name 항목이 채워져 있다면 OK.)
    ...
    client_max_body_size 100M;
    ...
}


혹시 설정을 바꿨다면 우측의 명령어로 재시작해보자.
</syntaxhighlight>
|sudo nginx -t  # 세팅파일이 정상인지 확인
|우분투 경로 : /etc/nginx/sites-available/example.com<syntaxhighlight lang="bash">
server {
    ...
    client_max_body_size 100M;
    ...
}


<code>sudo service nginx reload</code>
|-
|인증 획득
| -d 옵션을 통해 도메인을 추가할 수 있다. 우측의 예시를 참고하자.
진행하면 리다이렉션 설정 등을 선택하게 하는데, 잘 읽고 필요에 따라 진행하자.


Time zone, email 등을 물어본다. 이메일을 보낸다는 내용도 있으니 잘 읽고 답하자.
## 해당 경로별 개별적으로 설정하고 싶은 경우.
|<code>sudo certbot --nginx -d 도메인 -d 도메인2</code>
server {
<code>sudo certbot --nginx -d example.com -d www.example.com</code>
    ...
|-
    location /upload {
|확인(자동갱신)
        client_max_body_size 50M;
|이 인증서는 90일동안 유효한데, certbot에서 자동으로 갱신을 해준다.
        ...
우측 명령어에서 에러가 나지 않으면 정상.
    }
    ...
}


보통 <code>/etc/cron.d/</code>에 certbot이 생성된다.
</syntaxhighlight>
|<code>sudo certbot renew --dry-run</code>
|-
|확인(평가)
|SSL 적용을 확인해주는 사이트를 통해 확인해본다.
|https://www.ssllabs.com/ssltest/
|}
|}


===에러===
* <code>nginx -t</code> // 설정파일 확인.
* <code>systemctl restart nginx</code>  // 재시작.
 
=에러=


====nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Unknown error)====
====nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Unknown error)====


=== nginx: [emerg] "worker_processes" directive is not allowed here in /etc/nginx/sites-enabled/nginx_conf:1 ===
===nginx: [emerg] "worker_processes" directive is not allowed here in /etc/nginx/sites-enabled/nginx_conf:1===
위 형태의 에러는 경로가 sites-enabled에 있는 것으로 보아... 거의 사용자 설정 문제이다.
위 형태의 에러는 경로가 sites-enabled에 있는 것으로 보아... 거의 사용자 설정 문제이다.
[[분류:리눅스]]
[[분류:리눅스]]

2024년 7월 12일 (금) 14:06 기준 최신판

개요[편집 | 원본 편집]

아파치와 같은, 유명한 웹서버.

설정파일[편집 | 원본 편집]

파일 설명
/etc/nginx/sites-availables/ 사용 예정인 설정 파일을 이곳에 보관한다.
/etc/nginx/sites-enables/ 사용할 설정파일을 이곳에 보관한다. 이곳에 있는 모든 설정파일을 작동하기 때문에 포트가 겹치는 설정파일이 있으면 에러가 난다.
의도 설명 방법
테스트 엔진엑스 작동에 대한 테스트를 수행한다.

(설정파일 등이 정상인가 파악)

sudo nginx -t

SSL 인증[편집 | 원본 편집]

의도 설명 방법
Certot을 이용한 인증. https 주소를 사용하기 위한 인증이다.

비영리 인증기관인 Let's Encrypt의 인증을 certbot을 통해 자동으로 인증받는 과정.

Certot 문서 참조.
openssl을 사용한 인증. 개인 ssl인증을 하게 도와주는 도구. openssl 문서 참조.

파일 업로드 설정[편집 | 원본 편집]

적절한 값을 설정해두어야 파일을 올릴 수 있다. 설정파일을 변경하든가, 사이트 설정을 변경하는 방법으로 가능.

설정파일을 변경하는 경우 설명
우분투 경로 : /etc/nginx/nginx.conf
http {
    ...
    client_max_body_size 100M;
    ...
}
우분투 경로 : /etc/nginx/sites-available/example.com
server {
    ...
    client_max_body_size 100M;
    ...
}


## 해당 경로별 개별적으로 설정하고 싶은 경우.
server {
    ...
    location /upload {
        client_max_body_size 50M;
        ...
    }
    ...
}
  • nginx -t // 설정파일 확인.
  • systemctl restart nginx // 재시작.

에러[편집 | 원본 편집]

nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Unknown error)[편집 | 원본 편집]

nginx: [emerg] "worker_processes" directive is not allowed here in /etc/nginx/sites-enabled/nginx_conf:1[편집 | 원본 편집]

위 형태의 에러는 경로가 sites-enabled에 있는 것으로 보아... 거의 사용자 설정 문제이다.