Artanis - Arch Linux 中文维基

跳转到内容

# Artanis

来自 Arch Linux 中文维基

相关文章

- MySQL
- SQLite
- PostgreSQL
- Scheme
- GNU
- 分类:网络服务器

GNU Artanis 是 Scheme 编程语言的第一个产品级现代网络框架。它的设计和维护都以稳健、快速和易于使用为目标，适用于专业的网络开发。

GNU Artanis 以 GPLv3+ & LGPLv3+ 发布。它非常轻量级——新手也能轻松破解和学习。它具有一个完整的网络服务器实现，包括一个错误页面处理程序。它支持的数据库（通过 guile-dbi）有 MySQL、SQLite、PostgreSQL。

## 安装

### Guix

提示：推荐的方案。

如果您已经安装 Guix 包管理器，可以直接使用以下命令安装：

    guix install artanis

### 手动安装

安装 guile包、base-devel包、nss包 等基础软件包。

安装 guile-curlAUR、guile-jsonAUR、guile-redisAUR。

切换至一个新目录，下载最新版本源代码压缩文件并解压，切换至解压得到的目录，运行：

    $ ./autogen.sh –no-configure
    $ ./configure
    $ make
    # make install

### AUR

安装 artanisAUR 或 artanis-gitAUR。

## 配置

首次运行 Artanis 时需要配置文件。

- 如果使用最小模式，例如，所有代码都在脚本文件中，而不在应用程序目录下。配置文件必须命名为 `/etc/artanis/artanis.conf`。

- 如果使用应用程序目录，配置文件 `conf/artanis.conf` 会自动生成。

## 使用

在控制台中键入 `guile`，进入 Guile REPL。屏幕上将显示以下文本：

    GNU Guile 3.0.9
    Copyright (C) 1995-2023 Free Software Foundation, Inc.

    Guile comes with ABSOLUTELY NO WARRANTY; for details type `,show w'.
    This program is free software, and you are welcome to redistribute it
    under certain conditions; type `,show c' for details.

    Enter `,help' for help.
    scheme@(guile-user)>

本文许多对 Artanis 的操作都会在这里完成。

### 运行

#### 简单 HTTP 服务器

在控制台中运行这段代码：

    guile -c "(use-modules (artanis artanis))(init-server)(run)"

您会看到这个屏幕：

    Anytime you want to quit just try Ctrl+C, thanks!
    http://127.0.0.1:3000

#### 运行一个使用 GNU Artanis 的站点

这是最简单的网站运行方式：

    #!/bin/env guile
    !#
    (use-modules (artanis artanis))
    (init-server)
    (get "/hello" (lambda () "hello world"))
    (run)

#### 运行服务器

    scheme@(guile-user)> (run #:host #f #:port #f #:debug #f #:use-db? #f #:dbd #f #:db-username #f #:db-passwd #f #:db-name #f)

关键字的值为 #f，默认情况下将从配置文件中获取值。

但你也可以定义它们：

- #:host：主机名。
- #:port：服务器的套接字端口。
- #:debug：设置 #t 如果您想要启用调试模式，日志将更加详细。
- #:use-db?：设置 #t 如果您想使用数据库，GNU Artanis 将初始化数据库连接。
- #:dbd：选择一个 dbd。这些是支持的三个：postgresql、mysql 和 sqlite3。
- #:db-username：你的数据库服务器的用户名。
- #:db-passwd：上述用户的数据库密码。
- #:db-name：要使用的数据库名称。

#### 与 Nginx 一起工作

您可以使用反向代理尝试 GNU Artanis+Nginx。

虽然 GNU Artanis 有很好的服务器核心，但官方还是建议使用 Nginx 作为前端服务器。除了性能增强外，它还不易受到攻击。

以下是 `/etc/nginx/nginx.conf` 的一些示例行：

    location / {
    proxy_pass http://127.0.0.1:''1234'';
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

要使其正常工作，请在编辑文件后重启 Nginx，并运行 GNU Artanis：

    scheme@(guile-user)> (run #:port 1234)

## 参见

- GNU Artanis web-framework Manual
- `$ info artanis`
- 官方网站
- Savannah 页面
- Gitlab 仓库

分类：​

- 网络服务器
- GNU

Artanis
添加话题