nginx - 1 - 기본 설정
nginx
실 행 될 때의 설정 은 nginx.conf
이 파일 에서 온 것 입 니 다. 기본 값 은 이 경로 에서: /etc/nginx/nginx.conf
(CentOS 의 경우) 이지 만 운영 체제 와 설치 방식 에 따라 차이 가 있 습 니 다. nginx -t
이 명령 을 통 해 이 경 로 를 볼 수 있 습 니 다.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
의 설정 이 정상 적 인지 테스트 하 는 것 입 니 다. 출력 은 nginx.conf
의 절대 경 로 를 가지 고 있 습 니 다.물론 다른
nginx.conf
을 사용 하고 싶다 면 nginx -c
뒤에 사용 할 파일 의 경 로 를 사용 하면 됩 니 다. 예 를 들 어:sudo nginx -c /home/user/nginx.conf
nginx
에 대한 모든 명령 은 nginx -h
또는 nginx -?
을 통 해 도움말 을 볼 수 있 습 니 다.2. 파일 형식 설정
가장 기본 적 인 설정 형식 은 다음 과 같 습 니 다.
events {
}
http {
server {
}
}
이 빈 설정 으로 바로 사용 할 수 있 습 니 다.
nginx
을 시작 해서 검증 할 수 있 습 니 다.sudo nginx
$ curl -I 127.0.0.1
HTTP/1.1 200 OK #
Server: nginx/1.11.5
nginx
기본 값 으로 로 컬 80
포트 를 감청 한 다음 파일 경 로 는 /usr/share/nginx/html
입 니 다.다음은 완전한 설정 으로 설명 하 겠 습 니 다.
user nobody; # simple directive
worker_processes 1; # simple directive
events { # context directive
worker_connections 512; # simple directive
}
http { # context directive
server { # context directive
listen *:80; # simple directive
server_name ""; # simple directive
root /usr/share/nginx/html; # simple directive
}
}
설정 파일 은
directives
(명령) 으로 구성 되 어 있 습 니 다. simple directive
과 context directive
두 문법 이 같 습 니 다. 다른 것 은 context directive
의 내용 은 {}
에 포함 되 고 simple directive
의 끝 은 분점 ;
입 니 다.2.1 단순 지시 어 (단순 명령 어)
문법:
name parameters ;
매개 변 수 는 여러 개 일 수도 있 고 키 형식
key=value
일 수도 있 습 니 다. 예 를 들 어:listen *:80;
listen *:80 ssl backlog=511;
결말 의 분점
;
을 잊 지 마라. 그렇지 않 으 면 잘못 보고 할 것 이다.2.2 context directive (환경 명령)
문법 은 Simple directive 와 비슷 하고 다른 context directive 에 도 포함 되 며 다른 명령 도 계승 할 수 있 습 니 다. 예 를 들 어:
server {
root /usr/share/nginx/html;
location /foo {
root /usr/share;
}
}
/foo
에 정의 root
디 렉 터 리 가 없 으 면 외부 디 렉 터 리 를 사용 합 니 다.정 의 를 내리 면 자신 이 정의 하 는 것 을 사용 할 것 이다.간단 한 명령 은 Context 명령 에 만 포 함 됩 니 다. 그 중에서 전체 파일 의 가장 바깥쪽 에 기본적으로 내 현적 인 main context 명령 이 있 습 니 다. 구체 적 인 명령 조 회 는 홈 페이지 에서 준 Alphabetical index of directives 를 볼 수 있 습 니 다. 예 를 들 어 보기
location
:Syntax: location [ = | ~ | ~* | ^~ ] uri { ... } #
location @name { ... }
Default: — #
Context: server, location # Context,
3. 상용 명령
3.1 이벤트 명령
nginx 는 이벤트 구동 형 서버 입 니 다. 이
events
명령 은 이벤트 구동 과 관련 된 것 을 설정 할 수 있 습 니 다. 예 를 들 어 최대 연결 수 등 입 니 다. 예 를 들 어:events {
worker_connections 512; #
}
events
명령 이 있 고 하나 밖 에 없 으 며 가장 바깥쪽 에 있어 야 한다. open file
로 보고 모든 프로 세 스 의 이 조작 에 limit 이 있 습 니 다. 연결 수 를 늘 리 려 면 시스템 정의 maximum number of open files allowed
를 향상 시 켜 야 합 니 다. HTTP
명령 은 HTTP 서버 와 관련 된 것 을 정의 하고 가장 바깥쪽 에 만 놓 을 수 있 습 니 다.Server
구체 적 인 가상 서버 설정 을 정의 하 는 것 으로 HTTP 등 사용 가능 한 Context 명령 에 넣 어야 합 니 다.보통 HTTP
과 Server
는 함께 나타 나 며 여러 개 Server
를 포함 할 수 있다. 일반적으로 통용 되 는 명령 을 HTTP
꼭대기 층 에 두 고 비 공용 적 인 것 은 Server
명령 에 넣는다.http {
server {
listen *:80; # 80
server_name ""; # Host header,
root /usr/share/nginx/html; # .
}
}
예 를 들 어
http://127.0.0.1/foo/test.html
의 요청 으로 얻 은 것 은 /usr/share/nginx/html/foo/test.html
입 니 다.3.3 Listen 명령
어떤 포트 를 감청 합 니 다. 예 를 들 어:
listen 127.0.0.1:8000;
listen 127.0.0.1;
listen 8000;
listen *:8000;
listen localhost:8000;
listen [::]:8000; # IPv6
listen [::1]; # IPv6
listen *:443 ssl;
listen 127.0.0.1 default_server accept_filter=dataready backlog=1024;
3.4 Server_name 명령 어
server 이름, 즉 도 메 인 이름 을 설정 합 니 다. server 명령 아래 에 만 놓 을 수 있 습 니 다. 어댑터 와 정규 로 일치 할 수 있 습 니 다. 기본 값 은 비어 있 습 니 다.
server {
server_name example.com www.example.com;
server_name example.com *.example.com www.example.*; #
server_name ~^(www\.)?(.+)$; #
}
~
는 뒤쪽 이 정규 임 을 나타 낸다. 요청 한 루트 디 렉 터 리 를 설정 합 니 다. 예 를 들 어 설정 은 다음 과 같 습 니 다.
server {
listen *:80;
root /usr/share/nginx/html;
}
주소 가
http://127.0.0.1/test.html
인 요청 이 오 면 실제로 /usr/share/nginx/html/test.html
여기 로 분 석 됩 니 다.가: 그럼 이 요청
http://127.0.0.1/?
이 오 면 어디로 해석 되 나 요?/usr/share/nginx/html
디 렉 터 리 에 있 는 index.html
을 분석 합 니 다. 이것 은 기본 값 입 니 다. index
명령 을 통 해 변경 할 수 있 습 니 다.server {
listen *:80;
root /usr/share/nginx/html;
index ADifferentIndexFile.html; # index html , .
}
3.6 위치 명령
이 명령 은 서로 다른 요청 을 설정 할 때 대응 하 는 설정 입 니 다. 예 를 들 어
127.0.0.1/test/hello.html
과 127.0.0.1/formal/hello.html
두 요청 은 이 명령 설정 을 통 해 서로 다른 곳 으로 분 석 됩 니 다.location /test/ {
root /usr/share/nginx/test;
}
location /formal/ {
root /usr/share/nginx/formal;
}
이 명령 은 더 많은 고급 설정 을 지원 합 니 다. 상세 한 설명 은 다음 과 같 습 니 다.
이 명령 은
server
또는 location
명령 에 만 있 을 수 있다.4. 여러 가상 호스트 설정
nginx 는 여러 개의 server 모듈 을 설정 하여 서로 다른 사 이 트 를 host 할 수 있 도록 합 니 다. 이것 이 바로
virtual hosting
입 니 다. 예 를 들 어:server {
listen 80;
server_name example.com;
}
server {
listen 80;
server_name foobar.com;
}
상기 에서 우 리 는 두 개의 server 모듈 을 정 의 했 는데 감청 하 는 것 은 모두 80 포트 이 고 도 메 인 이름 은 각각
example.com
과 foobar.com
이 며 이 두 모듈 은 완전히 독립 된 것 이다.우선 이 도 메 인 이름 들 은 컴퓨터 의 IP 에 연결 되 거나, 컴퓨터 의 hosts 를 수 동 으로 수정 하 셔 도 됩 니 다.
일치 규칙
여러 개의 server 를 정 한 후에 nginx 는 어떻게 일치 합 니까?
server_name
, 가장 일치 하 는 모듈 로 분석 합 니 다. server_name
일치 하지 않 으 면 기본 모듈 로 분 석 됩 니 다. 기본 값 은 첫 번 째 이 고 명령 으로 기본 모듈 listen 80 default_server;
을 수정 할 수 있 습 니 다. server_name
는 정규 로 정의 할 수 있 기 때문에 구체 적 인 매 칭 은 홈 페이지 에서 볼 수 있 습 니 다.5. 시작 관련
5.1 시작
CentOS 에서 nginx 의 시작 은 두 가지 방식 이 있 습 니 다.
sudo nginx # 1
systemctl start nginx # 2
nginx 가 시 작 될 때 기본적으로 프로 세 스 가 연 결 됩 니 다:
master worker
.$ ps aux | grep nginx
root 24484 0.0 0.0 85772 1312 ? Ss 1:38 0:00 nginx: master process
nobody 24485 0.0 0.0 85992 2004 ? S 1:38 0:00 nginx: worker process
그 중에서
master
는 설정 파일 을 읽 고 불 러 오 며 worker
프로 세 스 를 제어 합 니 다. worker
는 요청 을 진정 으로 처리 합 니 다.워 커 프로 세 스 의 수량 에 대해 서 는
worker_processes
명령 을 통 해 설정 할 수 있 습 니 다. 기본 값 은 1
이 고 보통 CPU 의 핵심 수 로 설정 되 어 있 으 며 worker_processes auto
를 통 해 자동 으로 설정 할 수 있 습 니 다.1024 이하 포트 를 연결 하려 면 루트 권한 이 필요 합 니 다.
5.2 프로필 다시 불 러 오기
nginx 가 실행 되 고 있 지만 nginx. conf 파일 이 수정 되 었 습 니 다. 업데이트 가 필요 합 니 다. 이렇게 할 수 있 습 니 다.
sudo nginx -s reload
이렇게 하면 닫 고 다시 시작 할 필요 가 없다.
5.3 탈퇴
탈퇴 는 이렇게 할 수 있 습 니 다:
sudo nginx -s quit
sudu nginx -s stop
Reference
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.