[aur-dev] [PATCH] Update sample configuration for Smart HTTP
Lukas Fleischer
lfleischer at archlinux.org
Sun Jun 28 16:05:38 UTC 2015
Using uWSGI for the Smart HTTP protocol caused some issues, see e.g.
FS#45428. Suggest using fcgiwrap instead which is more lightweight, has
better documentation and is easier to debug.
Signed-off-by: Lukas Fleischer <lfleischer at archlinux.org>
---
INSTALL | 27 ++++++++++-----------------
conf/fcgiwrap.service.proto | 11 +++++++++++
conf/fcgiwrap.socket.proto | 11 +++++++++++
3 files changed, 32 insertions(+), 17 deletions(-)
create mode 100644 conf/fcgiwrap.service.proto
create mode 100644 conf/fcgiwrap.socket.proto
diff --git a/INSTALL b/INSTALL
index b090789..d68fa26 100644
--- a/INSTALL
+++ b/INSTALL
@@ -63,24 +63,17 @@ Setup on Arch Linux
AuthorizedKeysCommand /usr/local/bin/aur-git-auth "%t" "%k"
AuthorizedKeysCommandUser aur
-9) If you want to enable smart HTTP support with nginx and uWSGI, you can use
- the following directives:
+9) If you want to enable smart HTTP support with nginx and fcgiwrap, you can
+ use the following directives:
location ~ "^/([a-z0-9][a-z0-9.+_-]*?)(\.git)?/(git-(receive|upload)-pack|HEAD|info/refs|objects/(info/(http-)?alternates|packs)|[0-9a-f]{2}/[0-9a-f]{38}|pack/pack-[0-9a-f]{40}\.(pack|idx))$" {
- include uwsgi_params;
- uwsgi_modifier1 9;
- uwsgi_param PATH_INFO /aur.git/$2;
- uwsgi_param GIT_NAMESPACE $1;
- uwsgi_pass unix:/run/uwsgi/smarthttp/aurweb.sock;
+ fastcgi_pass unix:/run/fcgiwrap.sock;
+ include fastcgi_params;
+ fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend;
+ fastcgi_param PATH_INFO /aur.git/$3;
+ fastcgi_param GIT_HTTP_EXPORT_ALL "";
+ fastcgi_param GIT_NAMESPACE $1;
+ fastcgi_param GIT_PROJECT_ROOT /srv/http/aurweb/;
}
- For the uWSGI configuration, the following template can be used:
-
- [uwsgi]
- plugins = cgi
- uid = aur
- processes = 1
- threads = 8
- env = GIT_HTTP_EXPORT_ALL=
- env = GIT_PROJECT_ROOT=/srv/http/aurweb
- cgi = /usr/lib/git-core/git-http-backend
+ Sample systemd unit files for fcgiwrap can be found under conf/.
diff --git a/conf/fcgiwrap.service.proto b/conf/fcgiwrap.service.proto
new file mode 100644
index 0000000..c4e8544
--- /dev/null
+++ b/conf/fcgiwrap.service.proto
@@ -0,0 +1,11 @@
+[Unit]
+Description=Simple CGI Server
+After=nss-user-lookup.target
+
+[Service]
+ExecStart=/usr/sbin/fcgiwrap
+User=aur
+Group=aur
+
+[Install]
+Also=fcgiwrap.socket
diff --git a/conf/fcgiwrap.socket.proto b/conf/fcgiwrap.socket.proto
new file mode 100644
index 0000000..a1bc826
--- /dev/null
+++ b/conf/fcgiwrap.socket.proto
@@ -0,0 +1,11 @@
+[Unit]
+Description=fcgiwrap Socket
+
+[Socket]
+ListenStream=/run/fcgiwrap.sock
+SocketUser=http
+SocketGroup=http
+SocketMode=0700
+
+[Install]
+WantedBy=sockets.target
--
2.4.4
More information about the aur-dev
mailing list