an optimised HTTP server / library implementation with support for HTTP/1, HTTP/2, websocket
ããªãä»æ´æã®æ¼ãå 容ã§ã¯ããã¾ãããæå¤ã¨æ å ±ãåæ£ãã¦ããããApache2.4ç³»ãèæ ®ããå ´åã«è¶³ãã¦ããªãå 容ããã£ãã®ã§ãã®ã¨ã³ããªã§ä¸åº¦ã¾ã¨ãã¦ã¿ããã¨æãã¾ãã CGIã使ããããªã·ã¹ãã ã§ãããªãã«ã¢ã¯ã»ã¹ãéä¸ãããµã¼ããä¾ãã°æ¥ã ã®ãã¼ã¯æã®Apacheã®busyã¯ã¼ã«ã¼æ°ã1000ã«ãªããããªãµã¼ãã§ããã¤ããããå¦çå¯è½ãªãã·ã³ã¹ããã¯ã®ãµã¼ãã§ãããã¨ãåæã«ãã¦ãã¾ãã Apacheã®MPMã¨CGIå®è¡ã¢ã¼ããã¯ãã£ã®å¾©ç¿ Apacheã§CGIã使ãå ´åã«ã¯ãMPMã¨CGIå®è¡ã¢ã¼ããã¯ãã£ã®çµã¿åããã¯å¤§ããåãã¦ä»¥ä¸ã®2ã¤ã«åããäºãã§ãã¾ãã worker(event) + mod_cgid prefork + mod_cgi Apacheã®2.4ç³»ããç¹ã«worker(event) + mod_cgidã®ã¢ãã«ãæ¨å¥¨ããã¦ããããã§ããã¾ãã2.4ç³»ã§ã¯
ã¡ã¢ãnginxã®ãªãã¼ã¹ãããã·ã§ãã¡ã¤ã«ããã£ãã·ã¥ããæ¹æ³ã è¨å®ãããã¼ã¸ã¯ãããããã¯ã¨ã³ãã¯GoogleAppEngineã http://www.nullpobug.com/ 試ããnginxã®ãã¼ã¸ã§ã³ã¯0.7ãUbuntu10.04ã®ãªã®ã§å¤ãã nginxã®è¨å® nginx.confã®ä¸ã§conf.dãsites-enabledãincludeãããããã«ãªã£ã¦ããã¨ãåæã /etc/nginx/conf.d/proxy_cache.conf proxy_cache_path /var/cache/nginx/cache levels=1:2 keys_zone=my-key:16m max_size=100m inactive=120m; proxy_temp_path /var/cache/nginx/tmp;httpãã£ã¬ã¯ãã£ãã«proxy_cache_pat
ã¯ããã« nginxã¯é »ç¹ã«ä¿å®ããã¦ãã¦ã©ãã©ããã¼ã¸ã§ã³ãä¸ãã£ã¦ããä¸æ¹ã§ãUbuntuãWindows以å¤ã§ã¯ã½ã¼ã¹ã³ã¼ããããã«ãããæ¹æ³ãä¸è¬çã ã¨æãã¾ãã nginxã®ãã¼ã¸ã§ã³ã¢ããé »åº¦ 2011/05/10 1.0.2 2011/05/03 1.0.1 2011/04/12 1.0.0 2011/04/04 0.9.7 2011/03/21 0.9.6 nginx CHANGESãã LinuxãBSDã®å¤ãã®ãã£ã¹ããªãã¥ã¼ã·ã§ã³ã§ã¯Nginxãããã±ã¼ã¸ãªãã¸ããªã«å«ã¾ãã¦ãããé常ã®ã½ããã¦ã§ã¢ã¤ã³ã¹ãã¼ã«ææ³ã§ã¤ã³ã¹ãã¼ã«ããäºãã§ãã¾ãã(Debianã«ãããapt-getããGentooã«ãããemergeãFreeBSDã«ãããportsãFedora ã® yumãVine Linux ã® apt-get ãªã©ï¼ ãã¾ã«ãããã®ããã±ã¼ã¸ã¯å¤ããã®ã§ãã£ã
Apacheã¢ã¸ã¥ã¼ã«ä½æã¯ä»¥åã®ã¨ã³ããªã®éãæ軽ã«åºæ¥ã¾ãã Apacheã¢ã¸ã¥ã¼ã«ã®ä½æã¨gdbã¨loggerã§ã®ãããã°æ¹æ³ - ããã®ã¯ã¦ãª ä»åã¯ãNginxã§ã¢ã¸ã¥ã¼ã«ä½æãã¦ã¿ããã¨ãã人åãã§ãã Nginxã«ãããå¦çã®æµãã¨æ¼ããã¦ããããæ§é ä½ãã¢ã¸ã¥ã¼ã«ä½ææ¹æ³ãã®ãã¦ããã¾ãã Nginx http://nginx.net/ ããããNginxã£ã¦ãªãã ï¼ã¨ãã人ã¯è»½éè¶ é«éãªHTTPãµã¼ãã¨ããç解ã§OKã§ãã å®éã«ã¯Reverse ProxyãMail Proxyã¨ãã¦ã使ç¨å¯è½ã§ãã©ã¤ã»ã³ã¹ã¯NSDç³»ã Nginxã«ã¤ãã¦ã¯ä»¥ä¸ãåç §ä¸ããã ããã©ã¼ãã³ã¹æ¯è¼ http://www.joeandmotorboat.com/2008/02/28/apache-vs-nginx-web-server-performance-deathmatch/ Ngin
Linuxã«jenkinsãå ¥ãã¦ã¿ãããjenkinsã³ã³ã½ã¼ã«ã«apacheãããªãã¼ã¹ãããã·ã§ã¤ãªããã¨ãã¦ãã¡ãã£ã¨ããã£ãã®ã§ã¡ã¢ã jenkins: 1.410 apache : 2.2 jenkinsãrpmã§ã¤ã³ã¹ãã¼ã«ãã¦ãã¼ã¢ã³èµ·åããã¨ãã³ã³ã½ã¼ã«ã®ããã©ã«ãã®ã¢ãã¬ã¹ã¯ã http://myserver:8080 ã¨ãªãã ãã®ã¢ãã¬ã¹ã®å¾ãã®ãã¼ããã«ãã³æªãã®ã§ãapacheã¨ã¤ãªããããªããããã®ããã¥ã¡ã³ããåèã«è¨å®ã試ã¿ããããããããã¥ã¡ã³ãã«ã¯ã ProxyPass /jenkins http://localhost:8081/jenkins ProxyPassReverse /jenkins http://localhost:8081/jenkins ã¨ããã ã»ã»ã»ãã¼ãã®å¾ãã®ã/jenkinsãã¯ã©ãããæ¥ãããããï¼ ããã«ããã¥ã¡ã³ãã
ååã®opensslã§RSAæå·ã¨éã¶ã§RSAæå·ãç§å¯éµã«ã¤ãã¦ä¸èº«ãè²ã ã¨ããã£ã¦ã¿ããç¶ãã¦ä»åã¯ãApacheã§ä½¿ããªã¬ãªã¬è¨¼ææ¸ãä½ã£ã¦ã¿ãã ç´°ãããã¨ã¯ããããããªã¬ãªã¬è¨¼ææ¸ãä½ãã³ãã³ãã ãç¥ããã ãæ¥ãã®æ¹ã¯ã以ä¸3ã¤ã ãããã°è¯ããããã§10å¹´é(3650æ¥)æå¹ãªãªã¬ãªã¬è¨¼ææ¸ãã§ããããã $ openssl genrsa 2048 > server.key $ openssl req -new -key server.key > server.csr $ openssl x509 -days 3650 -req -signkey server.key < server.csr > server.crtã§ãããã£ãserver.crtã¨server.keyããä¾ãã°/etc/httpd/conf/ é ä¸ã®ssl.crt/ 㨠ssl.key/ ãã£ã¬ã¯ããªã«è¨ç½®
Starlet-0.21ããªãªã¼ã¹ããã¾ããã Starlet-0.21 - a simple, high-performance PSGI/Plack HTTP server - metacpan.org - Perl programming language ãã®ãã¼ã¸ã§ã³ããServer::Staterã¨ã®çµã¿åããã§UNIX domain socketãListenãããã¨ãã§ããããã«ãªãã¾ããã $ start_server --path /tmp/app.sock -- plackup -s Starlet app.psgiServer::Stater ã¯ä»¥åããUNIX domain socketããµãã¼ããã¦ããã®ã§ãããStarletå´ã§ãã¾ããã³ããªã³ã°ã§ãã¦ããªãã£ãã®ãä¿®æ£ããã®ãä»åã®ãªãªã¼ã¹ã§ãã ãã³ããã¼ã¯ #plackconã§ã®çºè¡¨ã«ãããéããUNIX
G-WAN better uses CPU Cores to make the Internet of Things fly thousand times higher ! Leverage legacy servers and low-consumption CPUs to do more with less! With 1GHz in 2000 and 3GHz in 2002 10GHz CPUs were expected in 2005. Today, we should run much faster CPUs but: We're not going to have faster processors. Instead, making software run faster in the future will mean using parallel-programming
Starlet ã HTTP/1.1 ã«å¯¾å¿ãã¾ãããããã«ããã§nginxã®upstream keepaliveãªã©ãæãã¨æããã¾ã https://metacpan.org/release/Starlet https://github.com/kazuho/Starlet ãªãããStarletã¯HTTP/1.0 + keepaliveãªãµã¼ãã§ããããversion 0.20ã«ã¦HTTP/1.1ã«å¯¾å¿ãã¾ãããå ·ä½çã«å¯¾å¿ããã¹ããã¯ã¯ä»¥ä¸ã HTTP/1.1 keepalive Transfer-Encoding: chunked (Request & Response) Expect HTTP Pipelining StarmanãMonocerosã¨ã ãããåãåããããããã«ãªã£ã¦ããã¨æããã¾ãã ãªããå°å ¥ã«ããã£ã¦ã¯ããªãã¼ã¹ãããã·çã¨çµã¿åãããå ´åã®åä½ãã¿ã¼ã³
C10K対å¿Preforkåé«éPSGI/Plackãµã¼ãã® Monoceros ãHTTP/1.1ã«å¯¾å¿ããã¾ããã https://metacpan.org/release/Monoceros https://github.com/kazeburo/Monoceros Monocerosã§ã¯HTTPã®KeepAliveã«å¯¾å¿ãã¦ã大éã®æ¥ç¶ãæãäºãã§ãã¾ããããªãªã¼ã¹æç¹ã§ã¯HTTP/1.0 KeepAliveã«ãã対å¿ãã¦ãã¾ããã§ãããããããnginxã®upsream ãªã©ã§ã¯ãkeepaliveãæå¹ã«ãã¦HTTPã»ãã·ã§ã³ã使ãåãããå ´åã«HTTP/1.1ãæ±ãããã¾ãã 以åãã®ãããã®äºãããã¹ã¦blogæ¸ãã¦ãã¾ã nginx-1.1.x 㧠httpãªupstreamã«ãkeepaliveãã§ããããã«ãªã£ãã®ã§æ¤è¨¼ãã¦ã¿ã https://blog.nomads
Monoceros ã¨ããPSGI/Plackãµã¼ãæ¸ãã¾ãã https://metacpan.org/release/Monoceros https://github.com/kazeburo/Monoceros StarmanãStarletã®ãããªPreforkãªã¢ããªã±ã¼ã·ã§ã³ãµã¼ãã§ã¯ãã³ãã¯ã·ã§ã³ã®ç¶æã¤ã³ã¼ã«ããã»ã¹ã®å æãªã®ã§ãHTTPã®KeepAliveã¯ç¡å¹ã«ããã®ãä¸è¬çã§ãããè² è·ã®é«ããµã¼ãã¹ã§ã¯TIME_WAITç¶æ ã®ã½ã±ãããæºã¾ã£ãããSYN-ACKã®åéåé¡ãªã©ãããKeepAliveã使ãããã¨ãã欲æ±ããã£ãããªãã£ãããã¾ãã Monoceros ã¯ãªã¯ã¨ã¹ããå¦çããworkerã®ä»ã«ãã¤ãã³ãããªãã³ã§åãã³ãã¯ã·ã§ã³ç®¡çããã»ã¹ãç«ã¦ã¦ãã¯ã©ã¤ã¢ã³ãããã®æ¥ç¶ã½ã±ãããunix domain socketã使ãããã»ã¹éã§ããã¨ããã¾ããå¾ æ©
3/8ã«éçºãã¼ã¸ã§ã³ã®0.17_1ãåºã¾ãããããã®ãã¼ã¸ã§ã³ã¯ã²ã¨ã¤åã®0.16ã«æ¯ã¹ã¦å°ãé«éã«ãªã£ã¦ãã¾ãã local $SIG{...} = sub {}ã使ããã¦ããé¨åãæé©åãã¦ãªã¯ã¨ã¹ãã®åå¾ã§system callãæ¸ããã¾ãããstraceã§ã¿ã㨠before 23:02:27.213488 accept(4, {sa_family=AF_INET, sin_port=htons(32851), sin_addr=inet_addr("127.0.0.1")}, [16]) = 5 23:02:28.500636 ioctl(5, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff0140fd80) = -1 EINVAL (Invalid argument) 23:02:28.500710 lseek(5, 0, SEEK_CUR) =
.zshrcã«static_httpdã£ã¦é¢æ°ã¤ãã£ã¦ãã dotfiles/.zshrc at master · kamipo/dotfiles · GitHub function static_httpd { if type plackup > /dev/null; then plackup -MPlack::App::Directory -e 'Plack::App::Directory->new(root => ".")->to_app' elif type ruby > /dev/null; then if ruby -v | grep -qm1 'ruby 2\.'; then ruby -run -e httpd -- --port=5000 . else ruby -rwebrick -e 'WEBrick::HTTPServer.new(:Port => 5000, :D
ï¼â»ï¼ãã®ãã¼ã¸ã§ç´¹ä»ãã¦ããäºé ã¯è¨äºååºæç¹ã®æ å ±ã«åºã¥ãããã®ã§ããæ¬ãã¼ã¸ã¯ã¢ã¼ã«ã¤ãã¨ãã¦æ²è¼ãã¦ãã¾ãã ãã¤ã¼ã 2012å¹´5æ29æ¥ IIJ-IIæè¡ç 究æã§ã¯ã2009å¹´ã®ç§ããMighttpdï¼mightyã¨èªãï¼ã¨ããWebãµã¼ãã®éçºãå§ãããªã¼ãã³ã½ã¼ã¹ã¨ãã¦å ¬éãã¦ãã¾ãããã®å®è£ ãéãã¦ããã«ãã³ã¢ã®æ§è½ãå¼ãåºãã¤ã¤ãã³ã¼ãã®ç°¡æ½æ§ãä¿ã¦ãã¢ã¼ããã¯ãã£ã«ãã©ãçãã¾ãããããã§ã¯ãåã¢ã¼ããã¯ãã£ã«ã¤ãã¦é ã追ã£ã¦èª¬æãã¾ãã ãã¤ãã£ãã»ã¹ã¬ãã ä¼çµ±çãªãµã¼ãã¯ãã¹ã¬ããã»ããã°ã©ãã³ã°ã¨ããææ³ãç¨ãã¦ãã¾ãããã®ã¢ã¼ããã¯ãã£ã§ã¯ã1ã¤ã®ã³ãã¯ã·ã§ã³ã1ã¤ã®ããã»ã¹ããã¤ãã£ãã»ã¹ã¬ãããå¦çãã¾ãã ãã®ã¢ã¼ããã¯ãã£ã¯ãããã»ã¹ããã¤ãã£ãã»ã¹ã¬ãããçæããæ¹æ³ã§ç´°ååã§ãã¾ããããã¼ã«ãæ¹å¼ã§ã¯ããããããè¤æ°ãèµ·åãã¦ããã¾ããä¾ã¨ãã¦ã¯
ãªã¼ãã³ã½ã¼ã¹ã®Webãµã¼ãã¼nginxéçºãã¼ã ã¯4æ23æ¥ãææ°å®å®çãnginx 1.2ãããªãªã¼ã¹ããã2011å¹´4æã«ãªãªã¼ã¹ãããnginx 1.0ç³»ã«ç¶ãå®å®çã§ã40以ä¸ã®æ°æ©è½ãå ãã£ã¦ããã nginxã¯ãã·ã¢ã®éçºè Igor Sysoevæ°ã2002å¹´ã«éå§ãããªã¼ãã³ã½ã¼ã¹ã®HTTPãµã¼ãã¼ããã¸ã§ã¯ãã§ããªãã¼ã¹ãããã·ãIMAP/POP3ãããã·ããã£ãã·ã¥ãè² è·åæ£ãå§ç¸®ãªã©ã®æ©è½ãæã¤ãé«éã軽éãæè»æ§ãå®å ¨æ§ãªã©ãç¹å¾´ã¨ããç±³Facebookãç±³Dropboxãç±³TechCrunchï¼ç±³AOLï¼ãWordPressãªã©å¤æ°ã®å°å ¥äºä¾ãæã¤ã nginxã¯å®å®çã®1.0ç³»ã¨ãéçºçã®1.1ç³»ããªãªã¼ã¹ããã¦ãããã1.2ç³»ã¯1.1ç³»ããã¼ã¹ã«ããæ°ããªå®å®çã¨ãªããHTTPãããã·é¢é£ã§ã¯ã¢ããã¹ããªã¼ã ãµã¼ãã¼ã¸ã®Keepaliveæ¥ç¶ã®åå©ç¨ãã¢ããã¹
éç¨ç£è¦ã ã¨ã³ã¸ãã¢ãå¯¾å¿ ããã¾ã§ã®çµé¨ãå ã«ãã客æ§ã®æ¥åãå ¨é¢çã«ãµãã¼ããéç¨ç£è¦ãã¨ã³ã¸ãã¢ã«ãã24æéä½å¶ã§ç¶æ³å¤åã»é害çºçãæ©æã«æ¤ç¥ãã対å¿ãã¾ãã å¹ åºã対å¿å æè¡æ å½è ãä¸å¨ãã¾ãã¯å¥ã®æ¥åã«å°å¿µãããå ´åãããã¼ããã¼ãã®ã¨ã³ã¸ãã¢ãã¤ã³ãã©ç®¡çãã³ã³ãµã«ãã£ã³ã°ã¾ã§å¯¾å¿ããè¦æã«ãå¿ããã¾ãã
â [ruby] 大è¦æ¨¡Railsãµã¤ãã®ããã®æ°ããHTTPãµã¼ããUnicorn githubã®ä¸ã®äººããããã°ã§ãUnicorn使ãå§ãã¦ä¸ã¶æãããçµã¤ãã©ããæãã ããã¨æ¸ãã¦ãã¾ãã é©å½ã«è¦ç¹ã ãæ¾ã£ã¦ã¿ã¾ããã Unicornã£ã¦ä½ãï¼ Unicornã¯Rubyã®ããã®HTTPãµã¼ããMongrelãThinã®ãããªãã®ã ãã©ãå ¨ãéãè¨è¨ã¨ææ³ãæã£ã¦ãã ãããã¡ãªæ§æ [mongrel] [mongrel] .. [nginx] -> [haproxy] -> [mongrel] [mongrel] .. [mongrel] [mongrel] .. åé¡ç¹: ããactionã®å¦çã«60ç§ä»¥ä¸ããã£ãã¨ããMongrelãå½è©²ã¹ã¬ãããkillãããã¨ãã¦åºã¾ããã¨ããã ã¡ã¢ãªãä¸å®éãè¶ ããã¨ãMongrelãåèµ·åããã®ãé ãã ãããã¤æã«9åã®mongre
ãã¼ã¸ã§ã³ 1.42n ããã³ãã以åã®ãã¹ã¦ã®ãã¼ã¸ã§ã³ã®ãµã³ãã«ã¹ã¯ãªããã«é大ã»ãã¥ãªãã£ãã¼ã«ãããã¾ãã scripts ãã©ã«ãã® cmdIS.dll ãåé¤ãã¦ãã ããã(2005/4/7) AN HTTPD 㯠Windows95/98/Me/NT/2000/XPç¨ã® HTTP ãµã¼ãï¼Webãµã¼ãï¼ã§ãã LANã«ã¤ãªãã£ã¦ããWindows ãã·ã³ãããã¼ã ãã¼ã¸ãæä¾ã§ããã»ãã SSIï¼ï¼£ï¼§ï¼©ããã¼ã«ã«ã§ãã¹ããããã¨ãã§ãã¾ãã ã¾ãããã¤ã¢ã«ã¢ããæ¥ç¶ã§ããã¼ã ãã¼ã¸ã®çºä¿¡ãå¯è½ã§ãã ããªã¼ã½ããã¦ã§ã¢ã§ãã ãããã«ã¤ãªãã£ã¦ããªãPCã§ããhttp://127.0.0.1/ ããã㯠http://localhost/ ã¨ãããã¨ã§ æ©è½ã®ç¢ºèªãSSI/CGIã®åä½ãã¹ãã¯ã§ãã¾ãã®ã§ ãå©ç¨ä¸ããã Win32(Windows95, Windows
ãªãªã¼ã¹ãé害æ å ±ãªã©ã®ãµã¼ãã¹ã®ãç¥ãã
ææ°ã®äººæ°ã¨ã³ããªã¼ã®é ä¿¡
å¦çãå®è¡ä¸ã§ã
j次ã®ããã¯ãã¼ã¯
kåã®ããã¯ãã¼ã¯
lãã¨ã§èªã
eã³ã¡ã³ãä¸è¦§ãéã
oãã¼ã¸ãéã
{{#tags}}- {{label}}
{{/tags}}