nginx 상용 설정 예 참조
nginx 를 배우 기 전에 간단하게 사용 할 수 밖 에 없 었 기 때문에 매번 nginx 를 설정 할 때마다 문 서 를 찾 아서 어떻게 설정 하 는 지 알 아 보 는 것 이 귀 찮 습 니 다. 그래서 자주 사용 하 는 nginx 설정 과 설정 의 예 를 기록 하고 그때 직접 copy 로 수정 하면 됩 니 다.
nginx 의 주요 기능 은 정적 파일 의 서버, 부하 균형, 재 작성 또는 url, 정방 향 프 록 시, 역방향 프 록 시 등 입 니 다.
여기 서 사용 하 는 nginx 버 전 은 1.16.0 입 니 다.
프로필 의 주요 구 조 는:
nginx.conf
http{
#
upstream backend {
server backend1.example.com weight=5;
server backend2.example.com:8080;
server backup2.example.com:8080 backup;
}
# 1,
server{
listen 8080;
location / {
proxy_pass http://localhost:8080;
}
}
# server 2
server{
listen 80;
location ~ \.(gif|jpg|png)$ {
proxy_pass http://backend;
}
}
# includ nginx , , server 。
include cust_conf/mainconf; # , ,
includ /data/host/config/*.conf;
}
시작 관련
윈도우 시작
cmd 명령 설치 파일 에 들 어가 기;
1. 시작:
C:\server
ginx-1.0.2>start nginx
또는 C:\server
ginx-1.0.2>nginx.exe
주: 첫 번 째 를 사용 하 는 것 을 권장 합 니 다. 두 번 째 는 cmd 창 을 계속 실행 중 이 며 다른 명령 을 수행 할 수 없습니다.참고:https://www.jianshu.com/p/01f3626cf25d
nginx 명령 행 매개 변수
많은 다른 소프트웨어 시스템 과 달리 Nginx 는 명령 행 인자 만 몇 개 있 고 설정 파일 을 통 해 완전히 설정 합 니 다.
-c
부족 한 것 대신 Nginx 에 프로필 을 지정 합 니 다.-t
실행 되 지 않 고 설정 파일 만 테스트 합 니 다.nginx 는 프로필 의 문법 적 정확성 을 검사 하고 프로필 에 사 용 된 파일 을 열 려 고 합 니 다.용법: nginx -t
이 명령 도 nginx 파일 의 위 치 를 볼 수 있 습 니 다.-v
nginx 버 전 을 표시 합 니 다.-V
nginx 버 전, 컴 파일 러 버 전, 설정 파 라미 터 를 표시 합 니 다.시작, 정지, 다시 불 러 오기 설정
nginx 를 실행 할 수 있 는 실행 가능 한 파일 을 통 해 nginx 를 직접 시작 할 수 있 습 니 다.nginx 가 시작 되면 nginx 플러스
-s
인 자 를 실행 하여 nginx 의 일부 행 위 를 제어 할 수 있 습 니 다.용법 은 다음 과 같다.nginx -s ${signal}
${signal} 은 다음 네 개의 값 을 사용 할 수 있 습 니 다:
nginx -s reload
을 통 해 다시 불 러 올 수 있 습 니 다.정적 파일 서버
전단 파일 이나 이미지 서비스의 배 치 는 일반적으로 이 기능 을 사용 합 니 다. nginx 서버 를 통 해 (sering out) 파일 을 배포 한 다음 에 사용 자 는 네트워크 에서 ip 또는 도 메 인 이름 으로 직접 접근 할 수 있 습 니 다.
1. stats - server. kanlon. com 에 접근 하여
/data/fr
아래 디 렉 터 리 를 정적 파일 로 접근 합 니 다.server {
# 81, stats-server.kanlon.com
listen 81;
server_name stats-server.kanlon.com;
charset utf8;
# index false,
autoindex off;
#
index index.html index.htm index.php;
# /img/ , /data/img/
location /img/ {
alias /data/img/;
}
location / {
root /data/fr;
}
}
접근 에 오류 가 발생 하면 logs / error. log 의 오류 로 그 를 볼 수 있 습 니 다. 실제 접근 한 파일 경 로 를 출력 합 니 다.그리고 nginx 를 테스트 할 때 여러 개의 nginx 가 시작 되 었 는 지 주의해 야 합 니 다. 그렇지 않 으 면 설정 이 바 뀌 었 을 수도 있 습 니 다.
부하 균형
nginx 를 통 해 자신 이 지정 한 서비스 도 메 인 이름 을 자동 으로 전송 하고 단일 서비스 요 구 량 을 줄 이 며 서 비 스 를 실현 할 수 있 습 니 다.
nginx 에 서 는 기본적으로 ngx 를 통 해http_upstream_모듈 모듈 구현
1. load - balancing - test. kanlon. com: 83 에 접근 하면 load - balancing - test - 1kanlon. com: 84, load - balancing - test - 2. kanlon. com: 85, load - balancing - test - 3. kanlon. com: 86 세 도 메 인 이름
그 중에서 요구
load-balancing-test-3.kanlon.com:86
는 백업 서비스 로 서 load - balancing - test. kanlon. com - 1: 84 와 load - balancing - test - 2. kanlon. com: 85 의 요구 수 분포 비율 은 1: 2 이다.# , 502,503,504,404 ,60
proxy_next_upstream http_502 http_503 http_504 http_404 error timeout invalid_header;
upstream balancing {
server load-balancing-test-1.kanlon.com:84 max_fails=1 fail_timeout=60s weight=1;
server load-balancing-test-2.kanlon.com:85 max_fails=2 fail_timeout=60s weight=2;
server load-balancing-test-3.kanlon.com:86 backup;
}
server {
# 83, load-balancing-test.kanlon.com
listen 83;
server_name load-balancing-test.kanlon.com;
# index false,
autoindex off;
#
index index.html index.htm index.php;
location / {
proxy_pass http://balancing;
}
}
server {
# 84, load-balancing-test-1.kanlon.com
listen 84;
server_name load-balancing-test-1.kanlon.com;
charset utf8;
# index false,
autoindex off;
#
index index.html index.htm index.php;
location / {
#
root /data/nginx/load-balancing/load-balancing-test-1;
}
}
server {
# 85, load-balancing-test-2.kanlon.com
listen 85;
server_name load-balancing-test-2.kanlon.com;
charset utf8;
# index false,
autoindex off;
#
index index.html index.htm index.php;
location / {
#
root /data/nginx/load-balancing/load-balancing-test-2;
}
}
server {
# 86, load-balancing-test-3.kanlon.com
listen 86;
server_name load-balancing-test-3.kanlon.com;
charset utf8;
# index false,
autoindex off;
#
index index.html index.htm index.php;
location / {
root /data/nginx/load-balancing/load-balancing-test-3;
}
}
그 중 에는 nginx 의 건강 검진 명령 이 포함 되 어 있다.
max_fails = number 는 Nginx 가 서버 와 통신 하려 는 시도 가 실패 한 횟수 를 설정 합 니 다.fail 에서timeout 매개 변수 가 정 의 된 시간 대 에 실패 한 횟수 가 이 값 에 도달 하면 Nginx 는 서버 를 사용 할 수 없다 고 생각 합 니 다.다음 failtimeout 시간 대 에 서버 는 더 이상 시도 되 지 않 습 니 다.실패 한 시도 횟수 는 기본적으로 1 입 니 다.0 으로 설정 하면 시도 횟수 를 집계 하지 않 고 서버 가 계속 사용 할 수 있다 고 생각 합 니 다.명령 을 통 해 proxynext_upstream、fastcgi_next_upstream 과 memcachednext_upstream 에서 실패 한 시 도 를 설정 합 니 다.기본 설정 시 http404 상 태 는 실패 한 시도 로 간주 되 지 않 습 니 다.
fail_timeout = time 설정 서버 가 사용 할 수 없 는 시간 대 와 실패 시도 횟수 를 집계 하 는 시간 대 입 니 다.이 기간 동안 서버 실패 횟수 가 지 정 된 시도 횟수 에 이 르 면 서버 는 사용 할 수 없다 고 여 겨 진다.
다시 쓰 거나 url 로 바 꾸 기
nginx 는 일치 하 는 url 을 다른 url 로 바 꿀 수 있 습 니 다. 주 소 를 바 꾸 는 것 을 포함 합 니 다.
rewrite - local. kanlon. com / rewrite / same / site / * * 를 rewrite - local. kanlon. com / rewrite 2 / same / site / * 로 재 설정 하고 rewrite - local. kanlon. com / rewrite / other / site 를 rewrite - other. kanlon. com / rewrite 2 / same / site 로 재 설정 합 니 다.
server {
# 88, rewrite-local.kanlon.com
listen 88;
server_name rewrite-local.kanlon.com;
charset utf8;
# index false,
autoindex off;
#
index index.html index.htm index.php;
#
location /rewrite/same/site {
rewrite ^/rewrite/same/site(.*)$ /rewrite2/same/site$1 last;
}
# , ,; permanent ( 301 ), 302
location /rewrite/other/site {
rewrite ^/rewrite/other/site(.*)$ http://rewrite-other.kanlon.com:89/rewrite2/same/site$1 permanent;
}
location /rewrite2/same/site {
default_type text/html;
return 200 "$request_uri";
}
location / {
root /data/nginx/rewrite-test/rewriter-local;
}
}
server {
# 89, rewrite-other.kanlon.com
listen 89;
server_name rewrite-other.kanlon.com;
charset utf8;
# index false,
autoindex off;
#
index index.html index.htm index.php;
location /rewrite2/same/site {
default_type text/html;
return 200 "$request_uri";
}
location / {
root /data/nginx/rewrite-test/rewriter-other;
}
}
정방 향 에이전트
정방 향 프 록 시 는 우리 가 평소에 사용 하 는 것 처럼 우리 가 방문 하 는 도 메 인 이름 은 변 하지 않 습 니 다. 단지 nginx 를 통 해 요청 과 요청 을 보 내 고 자신의 클 라 이언 트 로 돌아 갈 뿐 입 니 다.nginx 는 기본적으로 http 프로 토 콜 의 정방 향 대 리 를 지원 합 니 다. https 를 지원 하려 면 구성 요 소 를 설치 해 야 합 니 다.
nginx 설정 은 다음 과 같 습 니 다:
server {
listen 90;
server_name forward-agent.kanlon.com;
# DNS IP
resolver 8.8.8.8;
location / {
proxy_pass http://$http_host$request_uri;
}
}
그리고 자신의 컴퓨터 에 프 록 시 서버 와 포트 를 설정 하면 정방 향 프 록 시 를 완성 할 수 있 습 니 다.
역방향 에이전트
역방향 프 록 시 는 nginx 의 도 메 인 이름 을 직접 방문 하여 원래 자원 에 접근 할 도 메 인 이름 을 대체 한 다음 에 원래 자원 의 도 메 인 이름 을 되 돌려 주 는 결 과 를 얻 습 니 다.
server {
listen 91;
server_name reverse-proxy.kanlon.com;
#
location / {
proxy_pass http://127.0.0.1:8080;
}
}
참고 문서
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
리눅스 입문~컴퓨터 시스템의 하드웨어의 개요와 리눅스의 주요 기능과 그 구조의 개요~별도의 기사에서 각 Linux의 기능인 프로세스 및 메모리 관리 메커니즘에 대한 자세한 내용을 요약합니다. 입력 장치, 네트워크 어댑터를 통해 컴퓨터에서 처리를 수행하도록 요청 프로세스 관리 메모리 관리 장치 조작 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.