nginx/unit là một trong những repo mã nguồn mở mà TopGit theo dõi, hiện có 5.6k sao, viết chủ yếu bằng C. NGINX Unit - universal web app server - a lightweight and versatile open source server that simplifies the application stack by natively executing application code across eight different programming language runtimes.
Tóm tắt dựng từ metadata GitHub của chính dự án — chưa có bài review TopGit. Trang sẽ tự động cập nhật khi bài review đầy đủ được xuất bản.
VÌ SAO CHƯA CÓ REVIEW
TopGit viết bài đầy đủ cho repo có nhiều sao nhất và được yêu cầu nhiều nhất. Trang này là snapshot trong thời gian chờ — xem README gốc ở tab READ ME.
Note: This repository has been archived. There will likely be no further development at this repo, and security vulnerabilities may be unaddressed.
The repo may be cloned and used under its current license.
Universal Web App Server
NGINX Unit is a lightweight and versatile open-source server that has
two primary capabilities:
serves static media assets,
runs application code in eight languages.
Unit compresses several layers of the modern application stack into a potent,
coherent solution with a focus on performance, low latency, and scalability. It
is intended as a universal building block for any web architecture, regardless
of its complexity, from enterprise-scale deployments to your pet's homepage.
Its native RESTful JSON API enables dynamic
updates with zero interruptions and flexible configuration, while its
out-of-the-box productivity reliably scales to production-grade workloads. We
achieve that with a complex, asynchronous, multithreading architecture
comprising multiple processes to ensure security and robustness while getting
the most out of today's computing platforms.
Installation
macOS
Run the following command to install both unitd (the Unit daemon) and
unitctl (the control tool).
$ brew install nginx/unit/unit
For details and available language packages, see the
docs.
Docker
$ docker pull unit:<TAG>
$ mkdir /tmp/unit-control # customize as needed.
$ docker run -d \
--mount type=bind,src=/tmp/unit-control,dst=/var/run \
--mount type=bind,src=.,dst=/www \
--network host \
unit
For a description of image tags, see the
docs.
WARNING: The latest image tag may not provide support for specific languages
modules, do check the available image tags from the link above before
pulling your image.
Your current working directory will now be mounted to the Unit image at /www.
You can reach its socket at /tmp/unit-control/control.unit.sock assuming no
further customizations have been made.
Debian, Ubuntu, Amazon Linux, Fedora, Red Hat
This helper script configures the correct package repositories for system.
For details and available language packages, see the
docs.
Getting Started with unitctl
unitctl streamlines the management of NGINX Unit processes
through an easy-to-use command line interface. To get started with unitctl,
download it from the
official GitHub releases
or Homebrew.
Installation
[!NOTE]
If you installed Unit with Homebrew, you can skip this step
as unitctl is included by default.
Download the appropriate unitctl binary for your system from the
NGINX Unit releases.
$ tar xzvf unitctl-master-x86_64-unknown-linux-gnu.tar.gz
# mv unitctl /usr/local/bin/
Launch Unit using Docker
If you have Docker installed on
your machine, and then you can effortlessly spin up one of
Unit's official Docker images
alongside your application.
[!TIP]
How-to and configuration guides are available on
unit.nginx.org for web application frameworks
built with Python, PHP, WebAssembly, Node.js, Ruby, and more.
Here's an example using the unit:python Docker image:
$ unitctl instances new 127.0.0.1:8001 /path/to/app 'unit:python'
/path/to/app will mount to /www in the Docker filesystem.
You can then interactively edit the currently active configuration:
$ unitctl edit
{
"listeners": {
"*:8000": {
// Point listener to new application
"pass": "applications/python"
}
},
// Add an application definition
"applications": {
"python": {
"type": "python",
"path": "/www/",
"module": "wsgi"
}
}
}
Valid configurations will be applied upon save and close.
$ curl localhost:8000
Hello, Python on Unit!
More Python configuration examples can be found in the
Unit docs.
Hello World with PHP and curl
Unit runs apps in a
variety of languages.
Let's explore the configuration of a simple PHP app on Unit with curl.
Suppose you saved a PHP script as /www/helloworld/index.php:
<?php echo "Hello, PHP on Unit!"; ?>
To run it on Unit with the unit-php module installed, first set up an
application object. Let's store our first config snippet in a file called
config.json:
Saving it as a file isn't necessary, but can come in handy with larger objects.
Now, PUT it into the /config/applications section of Unit's control API,
usually available by default via a Unix domain socket:
# curl -X PUT --data-binary @config.json --unix-socket \
/path/to/control.unit.sock http://localhost/config/applications
{
"success": "Reconfiguration done."
}
Next, reference the app from a listener object in the /config/listeners
section of the API. This time, we pass the config snippet straight from the
command line:
Unit supports running WebAssembly Components (WASI 0.2).
For more information see the
Unit Configuration Docs.
OpenAPI Specification
Our OpenAPI specification aims to simplify
configuring and integrating NGINX Unit deployments and provide an authoritative
source of knowledge about the control API.
Community
The go-to place to start asking questions and share your thoughts is
GitHub Discussions.
Our GitHub issues page offers
space for a more technical discussion at your own pace.
The project map on
GitHub sheds some light on our current work and plans for the future.
Our official website may provide answers
not easily found otherwise.
Get involved with the project by contributing! See the
contributing guide for details.
To reach the team directly, subscribe to the
mailing list.
For security issues, email us,
mentioning NGINX Unit in the subject and following the CVSS
v3.1 spec.
Trang TopGit này là một snapshot — tab "Readme" hiển thị nguyên văn README của repo (đã bỏ link, giữ ảnh). Repo GitHub ở github.com/nginx/unit là nguồn chính thức.
nginx/unit có phải mã nguồn mở không?
Có — nginx/unit phát hành theo license Apache-2.0, nghĩa là mã nguồn mở để đọc, fork và (tùy license) tái sử dụng. Mã: github.com/nginx/unit.
nginx/unit có tag gì không?
Bản đồng bộ chưa ghi nhận topic GitHub nào cho nginx/unit. GitHub topics hiển thị ở thanh bên phải trang repo — đó là nơi đáng kiểm tra nhất.
nginx/unit có trang demo không?
Dự án có trang chủ ở https://unit.nginx.org. Tab "Readme" ở trang này thường có ảnh chụp và hướng dẫn bắt đầu nhanh.
nginx/unit còn đang phát triển không?
Commit gần nhất trên nginx/unit là 1.0 năm trước (theo timestamp GitHub). Repo có 378 fork — một chỉ báo về mức độ quan tâm của cộng đồng.
nginx/unit dùng license gì?
nginx/unit phát hành theo license Apache-2.0. Nên mở file LICENSE trên GitHub để xác nhận — license metadata đôi khi lệch với thực tế dự án.
Đọc đầy đủ README ở tab phía trên.
Muốn nghe thêm một ý kiến về unit?
Hỏi một AI đọc được trang này — một cú bấm là có ngay nhận định về unit.