Yaws

Yaws是一款HTTP高性能1.1 Web服务器,特别适用于动态内容Web应用程序。(Yaws is a HTTP high perfomance 1.1 webserver particularly well suited for dynamic-content web applications.)

  • 所有者: erlyaws/yaws
  • 平台:
  • 許可證: BSD 3-Clause "New" or "Revised" License
  • 分類:
  • 主題:
  • 喜歡:
    0
      比較:

Github星跟蹤圖

Yaws 是一款HTTP高性能1.1网络服务器,特别适用于动态内容Web应用。 支持两种独立的操作模式:

  • Yaws作为常规Web服务器守护程序运行的独立模式。 这是默认模式。
  • Yaws作为嵌入式Web服务器在另一个Erlang应用程序中运行的嵌入式模式。
Yaws完全以Erlang语言编写,而且它是一个多线程Web服务器,其中一个Erlang轻量级进程用于处理每个客户端。
与其他Web技术相比,Yaws的主要优点是性能和优雅。 性能来自于底层的Erlang系统及其以更有效的方式处理并发进程的能力。 它的优雅也来自于Erlang。 Web应用程序不必用丑陋的特设语言编写。

概覽

名稱與所有者erlyaws/yaws
主編程語言Erlang
編程語言Erlang (語言數: 14)
平台
許可證BSD 3-Clause "New" or "Revised" License
發布數32
最新版本名稱yaws-2.1.1 (發布於 2022-02-04 08:42:52)
第一版名稱yaws-1.81 (發布於 2009-03-10 00:02:39)
創建於2009-02-20 21:18:06
推送於2024-04-26 20:04:52
最后一次提交2024-04-26 10:39:33
星數1.3k
關注者數78
派生數267
提交數2.6k
已啟用問題?
問題數298
打開的問題數31
拉請求數102
打開的拉請求數1
關閉的拉請求數90
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?

This is Yaws, a webserver for dynamic content written in Erlang.

Travis build Status

Prepare build

Get and install an Erlang system (http://www.erlang.org).

To compile Yaws, Erlang/OTP R17 or higher is required.

If you've cloned the source from github and you want to build using autotools,
note there is no ./configure script in the source, so create one:

$> autoreconf -fi

Install build dependencies. Required packages to compile Yaws are (based on
debian packages):

  • build-essential
  • autoconf/automake/libtool
  • erlang - Required apps:
  • erlang-{kernel/stdlib/sasl/erts}
  • erlang-compiler
  • erlang-crypto
  • erlang-xmerl
  • libpam0g-dev

To build the documentation (optional), you also need to install:

  • texlive-latex-base
  • texlive-latex-recommended
  • texlive-fonts-recommended
  • texlive-font-utils
  • texlive-extra-utils
  • ghostscript

On Ubuntu/debian this is pretty much equal to:

$> apt-get build-dep yaws

On MacOS and OS X, be sure the necessary Xcode command-line tools and
development environment are set up correctly by running the following
command:

xcode-select --install

Finally, to run the testsuites, yaws need to install:

  • git
  • wget
  • curl
  • erlang-eunit
  • erlang-inets
  • erlang-mnesia
  • erlang-ssl
  • cadaver

Build

You can build using rebar:

$> rebar get-deps compile

or via autotools:

$> ./configure --prefix=/usr/local

If using rebar, you'll get a "local installation" with Yaws script in ./bin
and the Yaws configuration file in ./etc/yaws.

If using autotools, the build will be configured by default for installation
under /usr/local. For more information about installation directories and
other supported options, see the configure help. Useful options are:

--with-defaultcharset=CHARSET specify default charset, i.e UTF-8
--with-extrainclude=DIR       dir to include if e.g. pam is installed in some odd place
--with-erlang=PREFIX          prefix where Erlang is installed (optional)

Note to packagers (rpm, deb ...) All install targets support the DESTDIR
variable. Thus, if we do

$> ./configure --prefix=/usr; make

we can subsequently do:

$> make install DESTDIR=/foo/bar

All Yaws files will be installed under DESTDIR, but all code will assume Yaws
should be installed under /usr.

Main make targets:

  • all : compile Yaws
  • debug : compile Yaws with debug flags
  • clean : remove files produced by all or debug target
  • install : do a proper install of Yaws
  • doc or docs : build the documentation
  • check or test : launch tests
  • cleantest : remove files produced by check target
  • dialyzer : run dialyzer on Yaws
  • mkinstaller : build an installer for windows
  • cleaninstaller: remove files produced by mkinstaller target
  • apps : compile Yaws applications (chat,mail,wiki,yapp)
  • cleanapps : remove files produced by apps target
  • installapps : install Yaws applications
  • fullinstall : install + installapps
  • fullclean : clean + cleantest + cleanapps + cleaninstaller

Test your build

With autotools, to test the build, you should install it somewhere:

$> ./configure --prefix=$PWD/_inst && make install
$> $PWD/_inst/bin/yaws -i

If you used rebar to compile Yaws, you can alternatively start Yaws with

$> ./bin/yaws -i

Either approach will start a webserver at http://0.0.0.0:8000
Terminate through ^C, or ^G followed by q, or

> init:stop()

NOTE: If you've used rebar to build the system, none of the following
directions apply. With rebar only "local installations" are supported.

Install and run

NOTE: following commands may require root privileges, depending of the
installation prefix.

Just run:

$> make install

Then, to run Yaws, you should use its script:

$> ${bindir}/yaws -i

This starts an interactive system.

With the default yaws.conf file, this will create a webserver at
http://${host} and one at https://${host}.

You can adapt Yaws configuration by editing '${sysconfig}/yaws/yaws.conf'.

Daemonize Yaws

Start it using '--daemon' and '--heart' options:

$> ${bindir}/yaws --daemon --heart

This will start a daemon (--daemon) which will be autorestarted when/if it
crashes or hangs (--heart).
Also, for most unices, we create proper start scripts in ${sysconfdir}/init.d

Example: Here is how I compile/start the yaws system that runs at
http://yaws.hyber.org (Ubuntu server system)

$> autoreconf -fi
$> ./configure --sysconfdir=/etc
$> make && make install
$> /etc/init.d/yaws start
去到頂部