찾다
백엔드 개발PHP 튜토리얼FastDFS+Nginx 경량 분산 파일 시스템 설치 및 사용

1 소개

FastDFS는 오픈 소스 경량 분산 파일 시스템을 관리합니다. 파일 및 그 기능에는 파일 저장, 파일 동기화, 파일 액세스(파일 업로드, 파일 다운로드) 등이 포함되어 대용량 저장 및 로드 밸런싱 문제를 해결합니다. 특히 사진 앨범 웹사이트, 동영상 웹사이트 등 파일 기반 온라인 서비스에 적합합니다.

FastDFS서버에는 두 가지 역할이 있습니다. 추적기(tracker)와 저장소 노드 (저장). 트래커는 주로 스케줄링 작업을 수행하며 액세스에서 로드 밸런싱 역할을 합니다.

2차 설치

1, 이 설치에는 3개의 장치가 사용됩니다.centos5.10 linux운영 체제

192.168.80.100 tracker Nginx(이 장치는 fastsfd-niginx플러그인을 설치하지 않습니다. )

192.168.80.101 저장 nginx

192.168.80.102 저장 nginx

운영 체제 여기서는 설치에 대해 말할 것이 많지 않습니다.

2, 컴파일 환경 준비yum -y install gcc gcc+ gcc-c++ openssl openssl-devel pcre pcre-devel 세 대의 머신을 모두 설치하고 두 명의 새로운 사용자를 생성합니다. fastdfs nginx

useradd fastdfs -M -s /sbin/nologin useradd nginx -M -s /sbin/nologin

테스트 편의를 위해 방화벽을 꺼주세요service iptables stop

3, 소스코드 다운로드

노크 cd /usr/local/src/ 디렉토리에 들어가서 다음 명령을 실행하고 fastDFS 5.01

을 다운로드하세요.wget http://jaist.dl.sourceforge.net/project/fastdfs/FastDFS%20Server%20Source%20Code/FastDFS%20Server%20with%20PHP%20Extension%20Source%20Code%20V5.01 /FastDFS_v5.01 .tar.

다운로드 nginx 1.7.0

wget http://nginx.org/download/nginx-1.7.0.tar.gz

다운로드fastdfs-nginx-module_v1.16

wget http://jaist.dl.sourceforge.net/project/fastdfs/FastDFS%20Nginx%20Module%20Source%20Code/fastdfs-nginx-module_v1 .16.tar .gz

4, FastDFS 설치(3개 머신 모두 설치해야 함)

tar xf FastDFS_v5.01.tar.gz

cd FastDFS

./ make.sh && ./make.sh 설치

5, 압축 해제fastDFS-nginx-module

[root@ localhost ~]# cd /usr/local/src/

[root@localhost src]# tar xf fastdfs-nginx-module_v1.1 6 .tar.gz

6, 설치Nginx

192.168.80.100 tarcker 머신 설치

[root@localhost ~]# cd /usr/local/src/

[root@localhost src]# tar xf nginx -1. 7.0.tar.gz

[root@localhost src]# cd nginx-1.7. 0

[root@localhost nginx-1.7.0]# ./configure --user=nginx --group=nginx --prefix=/usr/local/nginx

[root@localhost nginx -1.7.0]# make

[root@localhost nginx-1.7.0] #make install

192.168.80.101,102 stroage nginx 설치

[root@localhost ~]# cd /usr/local /src /

[root@localhost src]# tar xf nginx-1.7.0.tar.gz

[root@localhost src]# cd nginx-1.7.0

[root@localhost nginx- 1.7.0]# ./configure --user=nginx --group=nginx -- 접두사= /usr/local/nginx

--add-module=../fastdfs-nginx-module/src // 저장소 nginx

[root@localhost nginx-1.7.0]# make

[root@localhost nginx-1.7.0]# make install

3가지 구성

192.168.80.100 트래커 구성

1. 트래커데이터 및 로그 저장 디렉터리

를 생성합니다. [root@localhost ~]# mkdir -p /data/fastdfs/tracker

2, FastDFStracker.conf 구성을 수정합니다. 파일

[root@localhost ~]# vim /etc/fdfs/tracker.conf

base_path=/ 데이터/fastdfs/tracker

max_c/span>

work_threads=8

store_lookup=0

store_path=0

reserved_storage_space=4G //

run_by_group= fastdfs

run_by_user=fastdfs

rotate_error_log=true

내 구성 분석을 참조하세요. tracker 구성 파일 분석

3 Nginx

의 구성 파일을 수정하는 기사 [root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

사용자 nginx nginx; //여기에 이미 설정된 사용자 및 그룹이 있습니다

worker_processes 3;

pid /usr/local/nginx/logs/nginx.pid;

Worker_rlimit_nofile 1024;

이벤트 {

epoll 사용; // epollLinux 커널으로, 대량의 파일 설명자향상된 설문조사

worker_connections 1024;

}

http {

include mime.types;

default_type 애플리케이션/옥텟-스트림 ;

log_format 메인 '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer " '

'"$http_user_agent" "$http_x_forwarded_for"';

access_log /usr/local/nginx/logs/access.log main;

업스트림 서버_g1{

서버 192.168.80.101:80; //여기서 구성하는 것은 스토리지의 IP입니다. 는 여러

로 구성할 수 있습니다. 🎜>서버 192.168.

80.102:80;

}

서버 {

listen 80;

server_name localhost;

위치 /g1 {

proxy_redirect off;

proxy_set_header 호스트 $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header server_g1;

}

 

}

}

4.

트래커서비스 관리용으로 설정하고 부팅 시 시작하도록 설정합니다.

[root@localhost ~ ]# cp /usr/local/src/FastDFS/init.d/fdfs_trackerd /etc/init.d /[root@localhost ~]# chkconfig --add fdfs_trackerd

[root@localhost ~]# chkconfig fdfs_trackerd on

구성

스토리지

(각각 192.168.80.101,102에서 구성)

1, 데이터 저장 디렉토리 생성 [root@localhost ~]# mkdir -p /data/fastdfs/storage

/data

2,

FastDFS

storage.conf

구성 파일을 수정합니다.

[root@localhost ~]# vim /etc/fdfs/storage.confgroup_name=g1

base_path=/data/fastdfs

##작업자 스레드 수, 일반적으로

CPU

번호

로 설정 work_threads=8store_path_count=1

store_path0=/data/fastdfs/storage

##tracker_server 주소

tracker_server=192.168.

80.100 :22122

##사용자 그룹 실행 FastDFS

run_by_group=fastdfs##사용자 실행

FastDFS

run_by_user=fastdfsfile_distribute_path_mode =1

rotate_error_log=true

3. nginx 모듈의 구성 파일을 /etc/fdfs에 복사하고 수정합니다

[root@localhost ~]# cp /usr/local/src/fastdfs-nginx-module/src/mod_fastdfs.conf /etc/fdfs/

[root@ localhost ~]# vim /etc/fdfs/mod_fastdfs.conf

c/span>

tracker_server=192.168.80.100:22122

group_name=g1

url_have_group_name = true

store_path_count =1

store_path0=/data/fastdfs/storage

4, 수정nginx구성 파일

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf

사용자 nginx nginx;

worker_processes 8;

pid /usr/local/nginx/logs/nginx.pid;

worker_rlimit_nofile 1024;

이벤트 {

epoll 사용;

worker_connections 1024 ;

}

http {

include mime.types;

default_type 애플리케이션/옥텟-스트림;

log_format main '$remote_addr - $remote_user [$time_local] "$request" '

'$status $body_bytes_sent "$http_referer" '

'"$http_user_agent" "$http_x_forwarded_for"';

access_log /usr/local/nginx/logs/access.log main;

서버 {

listen 80;

server_name localhost;

위치 /g1/M00{

root /data/fastdfs/storage/ 데이터;

ngx_fastdfs_module;

}

}

}

5, 스토리지 에 넘겨주세요 [root@localhost ~]# cp /usr/local/src/FastDFS/init.d/fdfs_storaged /etc/init.d/

[root@localhost ~] # chkconfig --add fdfs_storaged

[root@localhost ~]# chkconfig fdfs_storaged on

[root@localhost ~]# service fdfs_storaged start 서비스

//소프트 연결 생성

에 대한 시작 관리 및 설정[ root@ localhost ~]# ln -s /data/fastdfs/storage/data /data/fastdfs/storage/data/M00

4개의 테스트

1, 192.168.80.100 , nginx에서 tracker

를 시작하세요

[root@localhost ~]# 서비스 fdfs_trackerd 시작

[root@localhost ~]# /usr/local/nginx/sbin/nginx

2, storagenginx

[ root@localhost ~]# 서비스 fdfs_storaged 시작

[root@localhost ~]# /usr/local/nginx/sbin/nginx

3

클라이언트

구성 tracker[root@localhost ~]# vim /etc/fdfs/client.conf

base_path=/data/ fastdfs

tracker_server=192.168.80.100:22122

4, 클러스터 세부 정보 보기

[ root@localhost ~]# fdfs_monitor /etc/fdfs/client.conf

5, 테스트 업로드

root@localhost ~]# fdfs_upload_file /etc/fdfs/client.conf aa.jpg

g1/M00 /AC/2F/wKgKDVMppoGAMCFNAAIFvJcyojY165.jpg

브라우저를 통해

http:// 192.168.

80.101/g1/M00/AC/2F/wKgKDVMppoGAMCFNAAIFvJcyojY165.jpghttp://192.168.

80.102/g1/M00/AC/2F/wKgKDVMppoGAMCFNAAIFvJcyojY165.jpg 위 내용은 관련 내용을 포함하여 FastDFS+Nginx 경량 분산 파일 시스템의 설치 및 사용 방법을 소개하고 있으며, PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
과대 광고 : 오늘 PHP의 역할을 평가합니다과대 광고 : 오늘 PHP의 역할을 평가합니다Apr 12, 2025 am 12:17 AM

PHP는 현대적인 프로그래밍, 특히 웹 개발 분야에서 강력하고 널리 사용되는 도구로 남아 있습니다. 1) PHP는 사용하기 쉽고 데이터베이스와 완벽하게 통합되며 많은 개발자에게 가장 먼저 선택됩니다. 2) 동적 컨텐츠 생성 및 객체 지향 프로그래밍을 지원하여 웹 사이트를 신속하게 작성하고 유지 관리하는 데 적합합니다. 3) 데이터베이스 쿼리를 캐싱하고 최적화함으로써 PHP의 성능을 향상시킬 수 있으며, 광범위한 커뮤니티와 풍부한 생태계는 오늘날의 기술 스택에 여전히 중요합니다.

PHP의 약한 참고 자료는 무엇이며 언제 유용합니까?PHP의 약한 참고 자료는 무엇이며 언제 유용합니까?Apr 12, 2025 am 12:13 AM

PHP에서는 약한 참조가 약한 회의 클래스를 통해 구현되며 쓰레기 수집가가 물체를 되 찾는 것을 방해하지 않습니다. 약한 참조는 캐싱 시스템 및 이벤트 리스너와 같은 시나리오에 적합합니다. 물체의 생존을 보장 할 수 없으며 쓰레기 수집이 지연 될 수 있음에 주목해야합니다.

PHP의 __invoke 마법 방법을 설명하십시오.PHP의 __invoke 마법 방법을 설명하십시오.Apr 12, 2025 am 12:07 AM

\ _ \ _ 호출 메소드를 사용하면 객체를 함수처럼 호출 할 수 있습니다. 1. 객체를 호출 할 수 있도록 메소드를 호출하는 \ _ \ _ 정의하십시오. 2. $ obj (...) 구문을 사용할 때 PHP는 \ _ \ _ invoke 메소드를 실행합니다. 3. 로깅 및 계산기, 코드 유연성 및 가독성 향상과 같은 시나리오에 적합합니다.

동시성에 대해 PHP 8.1의 섬유를 설명하십시오.동시성에 대해 PHP 8.1의 섬유를 설명하십시오.Apr 12, 2025 am 12:05 AM

섬유는 PHP8.1에 도입되어 동시 처리 기능을 향상시켰다. 1) 섬유는 코 루틴과 유사한 가벼운 동시성 모델입니다. 2) 개발자는 작업의 실행 흐름을 수동으로 제어 할 수 있으며 I/O 집약적 작업을 처리하는 데 적합합니다. 3) 섬유를 사용하면보다 효율적이고 반응이 좋은 코드를 작성할 수 있습니다.

PHP 커뮤니티 : 자원, 지원 및 개발PHP 커뮤니티 : 자원, 지원 및 개발Apr 12, 2025 am 12:04 AM

PHP 커뮤니티는 개발자 성장을 돕기 위해 풍부한 자원과 지원을 제공합니다. 1) 자료에는 공식 문서, 튜토리얼, 블로그 및 Laravel 및 Symfony와 같은 오픈 소스 프로젝트가 포함됩니다. 2) 지원은 StackoverFlow, Reddit 및 Slack 채널을 통해 얻을 수 있습니다. 3) RFC에 따라 개발 동향을 배울 수 있습니다. 4) 적극적인 참여, 코드에 대한 기여 및 학습 공유를 통해 커뮤니티에 통합 될 수 있습니다.

PHP vs. Python : 차이점 이해PHP vs. Python : 차이점 이해Apr 11, 2025 am 12:15 AM

PHP와 Python은 각각 고유 한 장점이 있으며 선택은 프로젝트 요구 사항을 기반으로해야합니다. 1.PHP는 간단한 구문과 높은 실행 효율로 웹 개발에 적합합니다. 2. Python은 간결한 구문 및 풍부한 라이브러리를 갖춘 데이터 과학 및 기계 학습에 적합합니다.

PHP : 죽어 가거나 단순히 적응하고 있습니까?PHP : 죽어 가거나 단순히 적응하고 있습니까?Apr 11, 2025 am 12:13 AM

PHP는 죽지 않고 끊임없이 적응하고 진화합니다. 1) PHP는 1994 년부터 새로운 기술 트렌드에 적응하기 위해 여러 버전 반복을 겪었습니다. 2) 현재 전자 상거래, 컨텐츠 관리 시스템 및 기타 분야에서 널리 사용됩니다. 3) PHP8은 성능과 현대화를 개선하기 위해 JIT 컴파일러 및 기타 기능을 소개합니다. 4) Opcache를 사용하고 PSR-12 표준을 따라 성능 및 코드 품질을 최적화하십시오.

PHP의 미래 : 적응 및 혁신PHP의 미래 : 적응 및 혁신Apr 11, 2025 am 12:01 AM

PHP의 미래는 새로운 기술 트렌드에 적응하고 혁신적인 기능을 도입함으로써 달성 될 것입니다. 1) 클라우드 컴퓨팅, 컨테이너화 및 마이크로 서비스 아키텍처에 적응, Docker 및 Kubernetes 지원; 2) 성능 및 데이터 처리 효율을 향상시키기 위해 JIT 컴파일러 및 열거 유형을 도입합니다. 3) 지속적으로 성능을 최적화하고 모범 사례를 홍보합니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

ZendStudio 13.5.1 맥

ZendStudio 13.5.1 맥

강력한 PHP 통합 개발 환경