✅ 대기열 멀티 스레딩
사용 방법은 다음과 같습니다.
pi@centos: ~ /yadihttpd$ ./yadihttpd
usage: ./yadihttpd < port > < websit root > < log dir >
要提前创建好文件夹和响应静态文件
如:./yadihttpd 80 /home/pi/www /home/pi/yadihttpdlog
pi@centos: ~ /yadihttpd$ sudo ./yadihttpd 80 /home/pi/www /home/pi/yadihttpdlog
应设置euid, 如:chmod u+s ./yadihttpd샘플 블로그 프로젝트 : 블로그 파일 트리
【블로그 홈페이지 page
버전 0.1에서 완료된 함수 :
✅ 로그 인쇄, 메시지 헤더 읽기 및 로그 파일 이름은 시간에 따라 생성됩니다.
✅ 폴 버전을하고 해당 파일을 반환합니다
✅ 로그 큐, 자동 스위칭, 로그 쓰기 혼자 스레드
✅ 큰 파일 지원
✅ 파일 판독 권한 제한
✅ 간단한 블로그
특정 줄 번호, 함수, 파일 이름을 표시하십시오
로그 스레드보기 :
로그 스레드는 일반적으로 잠을 자고 있습니다 (대기열은 비어 있습니다. 즉, 바쁘지 않고 잠금을 방출하고 1 초 동안 블록을 방출합니다).
? 링크 전에 로그에 액세스하십시오.
? 링크 로그 액세스 :
? 특정 수의 로그 레코드 (예 : 5000)가 있으면 파일이 자동으로 전환됩니다.
이미지 읽기
큰 파일 지원 (일부 버그 일 수 있음)
Epollout은 버퍼를 처리하고 비 차단 FD를 설정합니다. 서버는 동시에 여러 요청을 처리 할 수 있습니다.
서버 파일 루트 디렉토리 레이아웃
pi@raspberrypi: ~ /www $ tree
.
├── blog # marked转换之后的博客
│ ├── linux_notes.html
│ └── test.html
├── css
│ ├── my.css
│ └── prism.css # 代码高亮等等
├── img
│ ├── 1.jpg
│ ├── eg_tulip.jpg
│ ├── lake.jpg
│ └── log.jpg
├── index.html
├── js
│ └── prism.js # 代码高亮等等
└── md # 初始markdown形式
├── linux_notes.md
├── md2html.sh #批量转换脚本 md->html
├── test.md
└── tmp.mdfile사용 된 도서관 :
마크 다운 -> HTML
PRISMJS : 코드 하이라이트 및 기타 레이아웃
? FD 누출 조사
내가 닫는 것을 잊어 버린 것이 있습니다. 아래 그림과 같이 잠시 동안 테스트 한 후 FD 누출에는 아무런 문제가없는 것처럼 보이지만 아직 발견되지 않은 가끔 Segfault가 여전히 있습니다.
? 세그먼트 오류 확인
? URL은 너무 길다 : 밤에 내 웹 사이트의 악성 프로그램을 테스트해 주셔서 감사합니다.
? URL Direct Access Directory 오류 수정, 위와 동일합니다.
하나의 셀프 스레드, 하나의 로그 스레드 및 3 개의 자식 스레드가 요청을 처리하고 각 코어는 초당 약 1400 요청을받습니다.