Nginx 몇 가지 용법
nginx 역방향 에이전트
nginx 역방향 프 록 시 는 두 가지 모델 이 있 습 니 다. 1. 첫 번 째 는 백 엔 드 서버 가 httpd + phop 모듈 로 이 루어 진 것 입 니 다. 바로 nap (nginx + httpd / phop module) 입 니 다. 이 환경 에서 백 엔 드 서버 는 httpd 이 고 감청 포트 는 기본적으로 80 입 니 다. nginx 는 httpd 의 클 라 이언 트 로 존재 합 니 다. 사용자 가 요청 을 보 낼 때 nginx 는 사용자 의 요청 을 받 은 다음 에 사용자 의 요청 을 읽 습 니 다.또한 사용자 의 요청 데 이 터 를 판단 하고 사용자 의 요청 에 따라 새로운 요청 을 다시 생 성하 여 해당 하 는 백 엔 드 서버 에 보 내 는 실현 절차: (1) 환경: nginx 서버 172.16.200.102, 백 엔 드 ap (httpd + phop) 서버 172.16.104.모든 가상 컴퓨터 의 iptables 와 selinux (2) 설정 역방향 프 록 시 서버 를 닫 습 니 다.
[root@localhost ~]# yum -y install nginx # nginx
[root@localhost ~]# rpm -qi nginx # 1.10.2 nginx
[root@localhost ~]# service nginx start # nginx
Name : nginx Relocations: (not relocatable)
Version : 1.10.2 Vendor: Fedora Project
...
[root@localhost ~]# vim /etc/nginx/conf.d/default.conf
listen defalut_server,default server server。 default_server , server server, default
listen 80 ;
listen [::]:80;
[root@localhost ~]# vim /etc/nginx/conf.d/nap.conf #nginx http /etc/nginx/conf.d/*.conf , server
server {
listen 80 default; # 80
server_name www.feng.com; #
location / {
index index.php index.html
}
location ~* \.html$ { # .html
root /usr/share/nginx/html
}
location ~* \.php$ {
proxy_pass http://172.16.200.104; # proxy_pass 172.16.200.104, , , , , 。locattion ,proxy_pass URL /, 。
}
}
[root@localhost ~]# nginx -t #
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@localhost conf.d]# nginx -s reload # , server
[root@localhost conf.d]# echo "172.16.200.102 index.html" > /usr/share/nginx/html/index.html # ,
(3) 배경 서버 설정
[root@localhost html]# yum -y install httpd php # httpd php
[root@localhost html]# vim /var/www/html/index.php # ,
(4) 테스트 는 브 라 우 저 를 사용 하여 172.16.200.102 / index. phop 페이지 를 방문 하여 phop 상태 페이지 를 보고 실험 성공 을 증명 합 니 다.
2. 두 번 째 는 nginx 에 phop - fpm 를 더 해 이 루어 진 것 입 니 다. phop - fpm 는 일정한 웹 서비스 기능 을 가지 고 있 습 니 다. phop - fpm 를 동적 콘 텐 츠 서버 (1) 실험 환경 으로 직접 사용 할 수 있 습 니 다. 프 록 시 서버 는 172.16.200.102 이 고 백 엔 드 서버 는 172.16.200.103 입 니 다. 다음 실험 환경 을 연결 하여 nap. conf 중의 listen 행 default 을 삭제 합 니 다.(2) 102 서버 에 / etc / nginx / conf. d 디 렉 터 리 에 파일 np. conf 를 다시 만 들 고 이 파일 에 새 server 를 만 듭 니 다.
[root@localhost conf.d]# vim np.conf
server {
listen 80 default;
server_name www.feng.com;
location / {
index index.php index.html;
}
location ~* \.html$ {
root /usr/share/nginx/html;
}
location ~* \.php$ {
fastcgi_pass 172.16.200.103:9000;
fastcgi_index index.php; #
fastcgi_param SCRIPT_FILENAME /app/html$fastcgi_script_name; # php-fpm , , 。
include fastcgi_params; #fastcgi_params , , 。
}
}
[root@localhost conf.d]# nginx -t
[root@localhost conf.d]# nginx -s reload
(3) 백 엔 드 서버 설정
[root@localhost html]# yum -y install php-fpm
[root@localhost html]# vim /etc/php-fpm.d/www.conf #
listen = 9000 # 9000
listen.allowed_clients = 172.16.200.102 # , ip
설정 이 완료 되면 시작 할 수 있 습 니 다.
[root@localhost html]# service php-fpm start
Starting php-fpm: [ OK ]
[root@localhost html]# ss -tnlp|grep 9000
LISTEN 0 128 *:9000 *:* users:(("php-fpm",3488,7),("php-fpm",3489,0),("php-fpm
",3490,0),("php-fpm",3491,0),("php-fpm",3492,0),("php-fpm",3494,0))
프 록 시 서버 의 지정 한 위치 에 대응 하 는 테스트 파일 을 작성 합 니 다.
[root@localhost html]# mkdir -p /app/html
[root@localhost html]# vim /app/html/index.php
(4) 테스트 용 브 라 우 저 로 172.16.200.102 / index. php 를 방문 하여 테스트 페이지 가 나타 나 실험 성공 을 증명 합 니 다.
nginx 캐 시
nginx 의 캐 시 기능 은 역방향 프 록 시 에서 이 루어 집 니 다. 첫 번 째 실험 nap. conf 파일 에 캐 시 내용 을 추가 하고 np. conf 파일 의 default 를 nap. conf 에 캐 시 저장 방식 으로 key / values 로 바 꿉 니 다. key 는 지정 한 URL 세그먼트 를 hash 를 거 쳐 같은 길이 의 문자열 로 메모리 에 저장 합 니 다.한편, values 는 URL 에 대응 하 는 내용 입 니 다. 디스크 에 저 장 된 계 획 된 디 렉 터 리 에 저 장 됩 니 다. 디 렉 터 리 구 조 는 hash 완 료 된 key 값 의 뒤에서 몇 자 를 하나의 디 렉 터 리 구조 로 구성 합 니 다. 예 를 들 어 디 렉 터 리 구조 levels = 2: 1: 1 을 설정 하면 첫 번 째 디 렉 터 리 는 hash 값 의 두 글자 로 구성 되 고 모든 문 자 는 16 자리 이 며 두 문 자 는 256 자리 입 니 다.1. / etc / nginx / nginx. conf 에서 캐 시 를 정의 합 니 다. http 세그먼트 에 만 쓸 수 있 습 니 다. 전역 세그먼트 에 쓰 면 오류 가 발생 할 수 있 습 니 다.
[root@localhost nginx]# vim /etc/nginx/nginx.conf
proxy_cache_path /data/ levels=2:1:1 keys_zone=procache:10m;
2. 캐 시 를 참조 하여 nap. conf 파일 로 돌아 가 방금 정 의 된 캐 시 를 참조 하여. php $의 location 세그먼트 로 수정 하고 다음 내용 을 추가 합 니 다.
proxy_cache procache; # ,procache
proxy_cache_valid 200 301 302 1h; #
proxy_cache_use_stale timeout; # 。
proxy_cache_methods GET HEAD; # 。
문법 을 검사 하고 프로필 을 다시 불 러 옵 니 다.
[root@localhost nginx]# nginx -t
[root@localhost nginx]# nginx -s reload
3. 브 라 우 저 에서 의 접근 검증http://172.16.200.102/index.php두 번 더 방문 한 다음 정 의 된 디 렉 터 리 에 하위 디 렉 터 리 가 생 성 되 었 는 지 확인 하고 캐 시 성공 을 증명 합 니 다.
[root@localhost nginx]# tree /data/
[root@localhost nginx]# tree /data
/data
├── 59
│ └── f
│ └── b
│ └── 49bbcf840980a010f6e71e9fb70bbf59
├── 6b
│ └── 7
│ └── e
│ └── 9265fb1fcece376063e2b462a4c7e76b
└── 8e
└── e
└── 1
└── d19be2f40be92a1508d8bd9f56271e8e
캐 시 성공
스케줄 링
nginx 는 두 가지 스케줄 링 방식 을 사용 할 수 있 습 니 다.
7 층 스케줄 링
7 층 스케줄 링 의 기능 은 http 방식 을 통 해 이 루어 지기 때문에 http 상하 문 에 정 의 된 것 이 므 로 먼저 정 의 를 내 린 다음 에 사용 해 야 한다. 1. 실험 환경: 스케줄 러 172.16.200.102, 백 엔 드 서버 172.16.200.104 와 172.16.200.105.백 엔 드 서버 에 httpd 2 를 설치 합 니 다. 메 인 프로필 / etc / nginx / nginx. conf 에 정의 하고 http 컨 텍스트 에 다음 과 같은 내용 을 추가 합 니 다.
upstream app {
server 172.16.200.104 weight=1 max_fails=5 fail_timeo
ut=5s; server 172.16.200.105 weight=1 max_fails=5 fail_timeo
ut=5s; }
}
3. nap. conf 파일 에서 location 세그먼트 에서 proxy 호출pass 후 URL 의 ip 주 소 를 주 설정 파일 에서 정의 하 는 그룹 이름 으로 설정 합 니 다.
location ~* \.php$ {
proxy_pass http://app;
....
}
4. 172.16.200.104 와 172.16.200.105 에 테스트 파일 추가
[root@localhost html]# echo "172.16.200.104" > /var/www/html/i
ndex.php #104
[root@localhost html]# echo "172.16.200.105" > /var/www/html/i
ndex.php #105
5. 테스트 용 브 라 우 저 로 172.16.200.102 를 방문 하여 계속 새로 고침 하거나 간단 한 for 순환
for i in {1..10};do curl 172.16.200.102;done
을 쓰 면 172.16.200.104 와 105 두 주 소 를 얻 고 교체 되 며 나타 납 니 다. 기본 값 은 rr 모드 이기 때문에 저희 도 가중치 를 주지 않 았 습 니 다.4 층 스케줄 링
4 층 스케줄 링 은 메 인 설정 파일 에서 stream {} 상하 문 에서 정 의 된 것 입 니 다. 7 층 과 비슷 합 니 다. 먼저 기능 이 같은 호스트 를 한 그룹 으로 나 누고 그룹 에서 알고리즘 을 지정 한 다음 에 서버 에서 감청 한 포트 를 지정 하면 전송 할 수 있 습 니 다. ssh 프로 토 콜: 1. 환경: 스케줄 러 172.16.200.102,백 엔 드 호스트 172.16.200.104 와 172.16.200.105 2. 메 인 프로필 / etc / nginx / nginx. conf 에 stream 컨 텍스트 를 추가 하고 stream 컨 텍스트 에서 정의 합 니 다.
stream {
upstream sshsrv {
server 172.16.200.104:22;
server 172.16.200.105:22;
}
}
3. 호출 은 정의 세그먼트 아래 에서 직접 호출 하고 다음 내용 을 추가 합 니 다.
server {
listen 22;
proxy_pass sshsrv;
}
4. sshd 서비스 172.16.200.102 감청 20 포트 를 닫 습 니 다. 그러나 sshd 서 비 스 는 기본 으로 시작 되 기 때문에 원래 의 sshd 서 비 스 를 닫 아야 합 니 다. 그렇지 않 으 면 충돌 할 수 있 습 니 다. (또는 listen 을 다른 포트 로 바 꾼 다음 ssh 연결 시 지정 한 포트 도 가능 합 니 다)
[root@localhost nginx]# service sshd stop
그리고 프로필 을 검사 하고 프로필 을 다시 불 러 옵 니 다.
[root@localhost nginx]# nginx -t
[root@localhost nginx]# nginx -s reload
5. 클 라 이언 트 한 대 를 사용 하여
ssh 172.16.200.102
로 연결 하 는 것 을 검증 하고 올 라 간 후에 ip a
Ip 주 소 를 보면 현재 주 소 는 172.16.200.104 이 고 exit 가 종료 한 후에 다시 연결 하 는 것 을 볼 수 있 습 니 다. ip 는 172.16.200.105 로 실험 성공 을 증명 합 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.