Nginx: 두 판 사이의 차이

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


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


혹시 설정을 바꿨다면 우측의 명령어로 재시작해보자.
* <code>nginx -t</code> // 설정파일 확인.
|sudo nginx -t # 세팅파일이 정상인지 확인
* <code>systemctl restart nginx</code>  // 재시작.
 
=에러=


<code>sudo service nginx reload</code>
====nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Unknown error)====
|-
|인증 획득
| -d 옵션을 통해 도메인을 추가할 수 있다. 우측의 예시를 참고하자.
진행하면 리다이렉션 설정 등을 선택하게 하는데, 잘 읽고 필요에 따라 진행하자.
|<code>sudo certbot --nginx -d 도메인 -d 도메인2</code>
<code>sudo certbot --nginx -d example.com -d www.example.com</code>
|-
|확인(자동갱신)
|이 인증서는 90일동안 유효한데, certbot에서 자동으로 갱신을 해준다.
우측 명령어에서 에러가 나지 않으면 정상.


보통 <code>/etc/cron.d/</code>에 certbot이 생성된다.
===nginx: [emerg] "worker_processes" directive is not allowed here in /etc/nginx/sites-enabled/nginx_conf:1===
|<code>sudo certbot renew --dry-run</code>
위 형태의 에러는 경로가 sites-enabled에 있는 것으로 보아... 거의 사용자 설정 문제이다.
|-
|확인(평가)
|SSL 적용을 확인해주는 사이트를 통해 확인해본다.
|https://www.ssllabs.com/ssltest/
|}
[[분류:리눅스]]
[[분류:리눅스]]

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에 있는 것으로 보아... 거의 사용자 설정 문제이다.