이는 자체 호스팅 정적 사이트에 대한 개념 증명 경량 문의 양식입니다.
Knowbl Cluster의 정식 소스는 https://git.knowbl.co/dev/log-based-contact-form/에서 호스팅됩니다.
mail
. /submit/
)는 빈 폴더여야 합니다. 그렇지 않으면 /submit/에 대한 모든 적법한 쿼리가 리디렉션됩니다.nginx 서버의 http 블록 내에서 블록 하단 근처, 첫 번째 서버 블록 앞에 특정 구성에 대한 로그 형식을 삽입합니다. 덜 권장됩니다.
log_format contactstatic ' $time_local | $request ' ;
nginx-exmaple.conf
배치 위치를 참조하세요.
nginx 서버의 서버 블록에서 양식 내에 작업 위치(이 경우 /submit/
)를 삽입합니다.
location ~* /submit/(.*)$ {
access_log /home/example/logs/static-contact-access.log contactstatic;
error_log /home/example/logs/static-contact-error.log;
return https://example.com/;
}
이렇게 하면 방문자가 루트 디렉터리로 돌아갑니다. 귀하의 특정 요구 사항에 맞게 조정하십시오.
nginx-exmaple.conf
배치 위치를 참조하세요.
사이트에 양식을 추가하세요. 필요에 따라 스타일을 지정합니다.
< form action =" /submit/ " method =" GET " >
< label for =" name " > Name: </ label >
< input type =" text " name =" name " required =" yes " placeholder =" What can I call you? " >
< label for =" email " > Email: </ label >
< input type =" email " name =" email " required =" yes " placeholder =" [email protected] " >
< label for =" message " > Short message: </ label >
< textarea type =" message " name =" message " required =" yes " placeholder =" What do you want to say (in 140 characters)? " maxlength =" 140 " > </ textarea >
< input type =" submit " value =" Send a message " >
</ form >
필요한 만큼 <input>
추가하세요.
로그 내에서 구문 분석을 수행하려면 GET 메서드가 필요합니다.
들어오는 양식 게시물을 모니터링하는 방법에는 여러 가지가 있습니다.
라이브 로그 파일을 직접 볼 수 있습니다.
tail -f /home/example/logs/access.log
이메일 주소로 요청을 보냅니다.
cd /home/example/
nano log-based-static-contact-form-emailer.sh
#! /bin/bash
EMAIL= " [email protected] "
EMAILSUBJECT= " Contact form "
LOG= " /home/example/logs/static-contact-access.log "
CRON= " /home/example/logs/example-cron.log "
# ## DO NOT EDIT BELOW ###
NOW= $( date + " Form sent to $EMAIL -- %Y-%m-%d %H:%M:%S -- " ) ;
if [ ! -f $LOG ] ;
then
printf " . " >> $CRON
else
mail -s " $EMAILSUBJECT " $EMAIL < $LOG ;
printf " n n $NOW n n " >> $CRON
fi
참고: 양식을 작성하는 사람(나쁜 사람?)에 따라 이메일 본문에 전체 로그를 보내는 대신 새 연락처 양식 정보가 있다는 알림을 보내고 싶을 수도 있습니다.
chmod +x log-based-static-contact-form-emailer.sh
crontab -e
crontab 하단에 추가
0 9-17 * * 1-5 /var/log/log-based-form.sh
이 크론은 월요일부터 금요일, 오전 9시부터 오후 5시까지 매시간 설정됩니다. 자신의 설정에 더 적합한 것으로 자유롭게 설정하십시오.
직접적인 피드백은 여기 HackerNews 게시물에서 제공할 수 있습니다.
https://news.ycombinator.com/item?id=13358753
아니면 문제를 제기하세요.
https://github.com/knowbl/log-based-static-contact-form/issues
도움이 되셨다면 EFF에 기부해주세요. 나는 그곳에서 일하지 않지만 그들은 업계에서 훌륭한 일을 하고 있습니다.
https://eff.org/donate/