FastHttpd - 대체 nginx
소개
nginx를 대체할 리버스 프록시를 찾고 있었는데 valyala/fasthttp을 찾았습니다.
jarxorg/tree 을 개발한 지 얼마 안 되어서 이 둘을 합치면 내 요구에 맞는 제품을 만들 수 있을 것 같아서 fasthttpd/fasthttpd 을 개발하기 시작했습니다.
특징
시작하기
구성 파일을 지정합니다.
fasthttpd -f path/to/config.yaml
내장 구성 및 일부 사용자 정의를 사용하십시오.
fasthttpd -e root=./public -e listen=:8080
설치
홈브류 사용.
brew tap fasthttpd/fasthttpd
brew install fasthttpd
또한 바이너리, deb, rpm 및 도커 이미지를 사용할 수 있습니다.
참조 https://github.com/fasthttpd/fasthttpd#installation
대체 nginx 예시
다음은 nginx.conf입니다.
upstream backend {
server 127.0.0.1:8000;
}
server {
listen 80 default_server;
return 302 https://$host$request_uri;
}
server {
listen 443 default_server;
ssl on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location ~ ^/(404|50.).html {
root /usr/share/nginx/html;
internal;
}
location ~ ^/(.*)\.(ico|css|git|jpg|jpeg|png|js)$ {
alias /app/public/$1.$2;
}
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_intercept_errors on;
proxy_pass http://backend;
}
}
다음은 fasthttpd의 구성입니다.
host: example.com
listen: ':80'
routes:
- path: ^/(.*)$
match: regexp
rewrite: https://example.com/$1
status: 302
---
host: example.com
listen: ':443'
root: /usr/share/fasthttpd/html
ssl:
autoCert: true
errorPages:
'404': /err/404.html
'5xx': /err/5xx.html
handlers:
'backend':
type: proxy
url: http://localhost:8080/
'public':
type: fs
root: /app/public
indexNames: [index.html]
routes:
- path: ^/(.*)\.(ico|css|git|jpg|jpeg|png|js)$
match: regexp
handler: public
- path: /
handler: backend
귀하의 의견을 기꺼이 받겠습니다. 감사합니다!
Reference
이 문제에 관하여(FastHttpd - 대체 nginx), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/mojatter/fasthttpd-alternate-nginx-6dc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)