Nginx 대형 클 러 스 터 배치 절차 및 개선
7092 단어 linux
nginx 전단 스케줄 러 서버 2 대: nginx 1: 192.168.0.1 nginx 2: 192.168.0.2 nginx 백 엔 드 페이지 서버 8 대: 웹 1: 192.168.0.10 웹 2: 192.168.0.11 웹 3: 192.168.0.12 웹 4: 192.168.0.13 웹 5: 192.168.0.14 웹 6: 192.168.0.15 웹 7: 192.168.0.16 웹 7: 192.168.0.16 웹 8: 192.168.0.17 keepaliveip 한 keepalive: 192.168.0.3
ansible 준비
ansible 을 이용 하여 더욱 빠 른 구축 1. 우선 호스트 에 ansible yum - y install ansible 2. hosts 주소 vim / etc / ansible / hosts 설정
[nginx]
nginx[1:2]
[web]
web[1:8]
[web-php]
web[1:4]
[web-nginx]
web[5:8]
주: ssh 포트 는 모두 22 입 니 다. 그렇지 않 으 면 포트 정 보 를 따로 설정 해 야 합 니 다. 3. ansible 기기 의 hosts 주소 vim / etc / hosts 를 설정 합 니 다.
192.168.0.1 nginx1
192.168.0.2 nginx2
192.168.0.10 web1
192.168.0.11 web2
192.168.0.12 web3
192.168.0.13 web4
192.168.0.14 web5
192.168.0.15 web6
192.168.0.16 web7
192.168.0.17 web8
4. 공사 비밀 키 ssh - keygen - t rsa - b 4096 그 중 id 설정rsa 는 비밀 키 idrsa. pub. 이 건 공개 키 입 니 다.
공개 키 를 클 라 이언 트 에 복사 하고 authorized 생 성keys 권한 600 및 수정 / etc / ssh / sshdconfig
RSAAuthentication yes
PubkeyAuthentication yes
PasswordAuthentication no
ansible 첫 로그 인 설정 yes vim ansible. cfg 입력 하지 않 음
host_key_checking = False
5. ansible 환경 을 테스트 하여 ansible 웹 - m ping 을 모두 녹색 으로 되 돌려 주 고 단기 고장 단기 검사.
이 기 계 는 yum 창 고 를 설정 하고 nginx 의 rpm 패 키 지 를 만 듭 니 다.
설 정 된 repo 파일 을 모든 호스트 에 전송 하고 nginx 를 설치 합 니 다.
ansible all -m copy -a 'src=**.repo dest=/etc/yum.repo.d/'
6. 편 집 된 ngix. conf 를 프 록 시 서버 에 전송 합 니 다.
ansible nginx -m copy -a '/usr/local/nginx/conf/'
설정 은 다음 과 같 습 니 다.
http {
.. ..
# upstream , ( webserver)
# server
upstream webserver {
# ip_hash :
#ip_hash;
#server 192.168.0.10:weight=1 max_fails=1 fail_timeout=30;
server 192.168.0.10:80;
server 192.168.0.11:80;
server 192.168.0.12:80;
server 192.168.0.13:80;
server 192.168.0.14:80;
server 192.168.0.15:80;
server 192.168.0.16:80;
server 192.168.0.17:80;
#weight , 1
#max_fails
#fail_timeout ,
#down ,
}
.. ..
server {
listen 80;
server_name localhost;
location / {
# proxy_pass webserver
proxy_pass http://webserver;
}
}
6. nginx 다시 시작
/usr/local/nginx/sbin/nginx -s reload
7. curl 을 이용 한 방문 테스트
8. 백 엔 드 웹 서버 설정 백 엔 드 서버 는 모두 nginx 를 설치 해 야 합 니 다. 앞의 4 대 는 phop 전 4 대 에 설치 해 야 할 패키지: nginx, phop, phop - fpm, phop - my sql 후 4 대 는 nginx 를 설치 해 야 합 니 다.
이전 4 대 서버 에서 설정 해 야 할 파일 nginx. conf
location / {
root html;
index index.php index.html index.htm;
# index.php, IP, , index.php
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000; # 9000 ,PHP
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi.conf;
}
php 테스트 페이지 만 들 기: vim / usr / local / nginx / html / test 1. php
조정 설정:
nginx. conf 파일
http {
client_header_buffer_size 1k; //
large_client_header_buffers 4 4k; //
gzip on; //
gzip_min_length 1000; //
gzip_comp_level 4; //
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;
// , mime.types
open_file_cache max=2000 inactive=20s;
open_file_cache_valid 60s;
open_file_cache_min_uses 5;
open_file_cache_errors off;
// 2000 , 20
// 60 ,60
// 5
.. ..
}
worker_processes 2; ## CPU
events {
worker_connections 65535; ## worker
use epoll;
}
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
location ~* \.(jpg|jpeg|gif|png|css|js|ico|xml)$ {
expires 30d; // 30
}
error_page 404 /40x.html; //
커 널 최적화: ulimit - a / / 모든 속성 값 보기 ulimit - hn 100000 / / 하 드 제한 설정 (임시 규칙) ulimit - sn 100000 / / 소프트 제한 설정 (임시 규칙) vim / etc / security / limits. conf...
soft nofile 100000
hard nofile 100000
설정 을 조정 하려 면 nginx 를 다시 시작 해 야 합 니 다.
로그 절단
1. 뮤 직 비디오 access. log access2. log kill - USR 1 $(cat / usr / local / nginx / logs / nginx. pid) 를 수 동 으로 실행 합 니 다. 비고: / usr / local / nginx / logs / nginx. pid 파일 에 nginx 프로 세 스 PID 번호 가 저 장 됩 니 다.
혹시
vim / usr / local / nginx / logbak. sh 자동 완성
#!/bin/bash
date=`date +%Y%m%d`
logpath=/usr/local/nginx/logs
mv $logpath/access.log $logpath/access-$date.log
mv $logpath/error.log $logpath/error-$date.log
kill -USR1 $(cat $logpath/nginx.pid)
crontab -e 03 03 * * 5 /usr/local/nginx/logbak.sh
덧붙이다
서버 상태 보기: 컴 파일 설치 시 모듈 추가 – with - httpstub_status_모듈 수정 프로필 정의 상태 페이지 vim / usr / local / nginx / conf / nginx. conf
… …
location /status {
stub_status on;
#allow IP ;
#deny IP ;
}
… …
nginx 컬 다시 시작http://ip/status 방문 정 보 를 볼 수 있 습 니 다. 구체 적 인 내용 은 다음 과 같 습 니 다. Active connections: 현재 활동 의 연결 수량 입 니 다.Accepts: 클 라 이언 트 의 연결 총 수량 을 받 았 습 니 다.Handled: 클 라 이언 트 의 연결 총 수량 을 처 리 했 습 니 다.(일반적으로 서버 가 연결 수량 을 제한 하지 않 는 한 accepts 와 일치 합 니 다.)Requests: 클 라 이언 트 가 보 낸 요청 수량 입 니 다.Reading: 현재 서버 에서 클 라 이언 트 요청 헤더 의 수 를 읽 고 있 습 니 다.Writing: 현재 서버 에서 응답 정 보 를 쓰 고 있 는 수량 입 니 다.Waiting: 현재 얼마나 많은 클 라 이언 트 가 서버 의 응답 을 기다 리 고 있 습 니까?
주소 재 작성
vim /usr/local/nginx/conf/nginx.conf
server {
listen 80;
server_name localhost;
#rewrite /a.html /b.html;
# a.html b.html
#rewrite /a.html /b.html redirect;
# a.html b.html( )
# 192.168.0.5 www.ccc.cn
#rewrite ^/ http://www.ccc.cn/;
#rewrite ^/(.*)$ http://www.dd.cn/$1;
# ( 192.168.0.5/ , www.dd.cn/ )
location / {
root html;
index index.html index.htm;
}
# ,~ ,*
if ($http_user_agent ~* firefox) { // firefox
rewrite ^(.*)$ /firefox/$1;
# curl
}
주소 재 작성 형식 [총 결] 이전 주소 새 주소 재 작성 [옵션];last 다른 rewrite break 를 읽 지 않 고 다른 문 구 를 읽 지 않 습 니 다. redirect 요청 을 끝내 고 permament 로 영구적 으로 방향 을 바 꿉 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
용감한 바로 가기 및 우분투 응용 프로그램안녕하세요 여러분, 이 기사에서는 모든 사이트에서 pwa를 생성하고 실행기 응용 프로그램으로 추가하는 방법을 설명하고 싶습니다. 일부 웹사이트는 PWA로 설치를 허용하지 않지만 유사한 애플리케이션을 원합니다. 1. ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.