Ich habe versucht, lua-resty-auto-ssl bei einer Neuinstallation von Debian 9 . zu installieren
Ich habe folgendes gemacht
apt update
apt install nginx
apt install build-essential
apt install luarocks
luarocks install lua-resty-auto-ssl
mkdir /etc/resty-auto-ssl
chown www-data /etc/resty-auto-ssl
Ich habe dann /etc/nginx/nginx.conf durch das hier im Readme gepostete Minimalbeispiel ersetzt https://github.com/GUI/lua-resty-auto-ssl
Aber nachdem der Inhalt der ngix.conf durch das Minimalbeispiel ersetzt wurde, kann nginx nicht mehr starten
Ich bekomme
root<strong i="13">@vultr</strong>:/etc/nginx# /etc/init.d/nginx start
[....] Starting nginx (via systemctl): nginx.serviceJob for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.
failed!
root<strong i="14">@vultr</strong>:/etc
root<strong i="17">@vultr</strong>:/etc/nginx# systemctl status nginx.service
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sat 2019-02-02 20:17:41 UTC; 50s ago
Docs: man:nginx(8)
Process: 6606 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /run/nginx.pid (code=exited, status=0/SUCCESS)
Process: 483 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
Process: 6923 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=1/FAILURE)
Main PID: 496 (code=exited, status=0/SUCCESS)
Feb 02 20:17:41 vultr.guest systemd[1]: Starting A high performance web server and a reverse proxy server...
Feb 02 20:17:41 vultr.guest nginx[6923]: nginx: [emerg] unknown directive "lua_shared_dict" in /etc/nginx/nginx.conf:14
Feb 02 20:17:41 vultr.guest nginx[6923]: nginx: configuration file /etc/nginx/nginx.conf test failed
Feb 02 20:17:41 vultr.guest systemd[1]: nginx.service: Control process exited, code=exited status=1
Feb 02 20:17:41 vultr.guest systemd[1]: Failed to start A high performance web server and a reverse proxy server.
Feb 02 20:17:41 vultr.guest systemd[1]: nginx.service: Unit entered failed state.
Feb 02 20:17:41 vultr.guest systemd[1]: nginx.service: Failed with result 'exit-code'.
Inhalt meiner nginx.conf
user www-data;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
events {
worker_connections 1024;
}
http {
# The "auto_ssl" shared dict should be defined with enough storage space to
# hold your certificate data. 1MB of storage holds certificates for
# approximately 100 separate domains.
lua_shared_dict auto_ssl 1m;
# The "auto_ssl_settings" shared dict is used to temporarily store various settings
# like the secret used by the hook server on port 8999. Do not change or
# omit it.
lua_shared_dict auto_ssl_settings 64k;
# A DNS resolver must be defined for OCSP stapling to function.
#
# This example uses Google's DNS server. You may want to use your system's
# default DNS servers, which can be found in /etc/resolv.conf. If your network
# is not IPv6 compatible, you may wish to disable IPv6 results by using the
# "ipv6=off" flag (like "resolver 8.8.8.8 ipv6=off").
resolver 8.8.8.8;
# Initial setup tasks.
init_by_lua_block {
auto_ssl = (require "resty.auto-ssl").new()
-- Define a function to determine which SNI domains to automatically handle
-- and register new certificates for. Defaults to not allowing any domains,
-- so this must be configured.
auto_ssl:set("allow_domain", function(domain)
return true
end)
auto_ssl:init()
}
init_worker_by_lua_block {
auto_ssl:init_worker()
}
# HTTPS server
server {
listen 443 ssl;
# Dynamic handler for issuing or returning certs for SNI domains.
ssl_certificate_by_lua_block {
auto_ssl:ssl_certificate()
}
# You must still define a static ssl_certificate file for nginx to start.
#
# You may generate a self-signed fallback with:
#
# openssl req -new -newkey rsa:2048 -days 3650 -nodes -x509 \
# -subj '/CN=sni-support-required-for-valid-ssl' \
# -keyout /etc/ssl/resty-auto-ssl-fallback.key \
# -out /etc/ssl/resty-auto-ssl-fallback.crt
ssl_certificate /etc/ssl/resty-auto-ssl-fallback.crt;
ssl_certificate_key /etc/ssl/resty-auto-ssl-fallback.key;
}
# HTTP server
server {
listen 80;
# Endpoint used for performing domain verification with Let's Encrypt.
location /.well-known/acme-challenge/ {
content_by_lua_block {
auto_ssl:challenge_server()
}
}
}
# Internal server running on port 8999 for handling certificate tasks.
server {
listen 127.0.0.1:8999;
# Increase the body buffer size, to ensure the internal POSTs can always
# parse the full POST contents into memory.
client_body_buffer_size 128k;
client_max_body_size 128k;
location / {
content_by_lua_block {
auto_ssl:hook_server()
}
}
}
}
Irgendeine Idee, was los ist?
Anscheinend lädt nginx lua nicht richtig.
Hier ist mein Dockerfile, basierend auf Ubuntu 16:04. Vielleicht hilft es dir weiter:
https://pastebin.com/dnENPEaM
Mit dem richtigen Setup sollte Ihre Konfiguration gut funktionieren
Anscheinend lädt nginx lua nicht richtig.
Hier ist mein Dockerfile, basierend auf Ubuntu 16:04. Vielleicht hilft es dir weiter:
https://pastebin.com/dnENPEaM
Mit dem richtigen Setup sollte Ihre Konfiguration gut funktionieren
Danke, ich werde die Befehle in der Datei manuell ausführen, um sie zu installieren. Es ist in Ordnung, nginx mit apt vor allem anderen zu installieren, oder?
Ich habe angefangen, Ihrer Datei zu folgen, verstehe aber nicht, was diese Zeilen bewirken
ADD mime.types /etc/nginx/
ADD fastcgi_params /etc/nginx/
ADD ./start.sh /root/
Alles andere habe ich bis dahin gemacht und keine Fehler
Du bist wahrscheinlich besser im Umgang mit openresty
Leider immer noch kein Erfolg. Ich habe folgendes bei einer Neuinstallation von Debian 9 gemacht, diesmal habe ich nicht Ngix, sondern stattdessen Openresty installiert
apt update
apt upgrade
wget -qO - https://openresty.org/package/pubkey.gpg | apt-key add -
apt-get -y install software-properties-common
add-apt-repository -y "deb http://openresty.org/package/debian $(lsb_release -sc) openresty"
apt-get update
apt-get install openresty
apt install luarocks
apt install build-essential
luarocks install lua-resty-auto-ssl
mkdir /etc/resty-auto-ssl
chown www-data /etc/resty-auto-ssl
Ich habe dann den Inhalt von /etc/openresty/nginx.conf geändert
aber ich bekomme folgendes, nachdem ich versucht habe, es zu starten
root<strong i="10">@vultr</strong>:/etc/openresty# /etc/init.d/openresty start
[....] Starting openresty (via systemctl): openresty.serviceJob for openresty.service failed because the control process exited with error code.
See "systemctl status openresty.service" and "journalctl -xe" for details.
failed!
und der fehler ist
root<strong i="14">@vultr</strong>:~# systemctl status --no-pager --full openresty.service
● openresty.service - full-fledged web platform
Loaded: loaded (/lib/systemd/system/openresty.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Sun 2019-02-03 19:44:22 UTC; 16min ago
Process: 18855 ExecStop=/sbin/start-stop-daemon --quiet --stop --retry QUIT/5 --pidfile /usr/local/openresty/nginx/logs/nginx.pid (code=exited, status=0/SUCCESS)
Process: 18886 ExecStartPre=/usr/local/openresty/nginx/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=1/FAILURE)
Main PID: 12782 (code=exited, status=0/SUCCESS)
Feb 03 19:44:22 vultr.guest systemd[1]: Starting full-fledged web platform...
Feb 03 19:44:22 vultr.guest nginx[18886]: nginx: [emerg] BIO_new_file("/etc/ssl/resty-auto-ssl-fallback.crt") failed (SSL: error:02001002:system library:fopen:No such file or directory:fopen('/etc/ssl/resty-auto-ssl-fallback.crt','r') error:2006D080:BIO routines:BIO_new_file:no such file)
Feb 03 19:44:22 vultr.guest nginx[18886]: nginx: configuration file /usr/local/openresty/nginx/conf/nginx.conf test failed
Feb 03 19:44:22 vultr.guest systemd[1]: openresty.service: Control process exited, code=exited status=1
Feb 03 19:44:22 vultr.guest systemd[1]: Failed to start full-fledged web platform.
Feb 03 19:44:22 vultr.guest systemd[1]: openresty.service: Unit entered failed state.
Feb 03 19:44:22 vultr.guest systemd[1]: openresty.service: Failed with result 'exit-code'.
Ich habe es geschafft, mit dem Laufen zu beginnen
openssl req -new -newkey rsa:2048 -days 3650 -nodes -x509 -subj '/CN=sni-support-required-for-valid-ssl' \
> -keyout /etc/ssl/resty-auto-ssl-fallback.key -out /etc/ssl/resty-auto-ssl-fallback.crt
Das einzige Problem, mit dem ich jetzt konfrontiert bin, ist, dass, wenn ich zu https://mydomain.com gehe, das Zertifikat von "sni-support-required-for-valid-ssl" so aussieht, als würde es kein letsencrypt-Zertifikat für meine Domain generieren.
Es ist ein Berechtigungsproblem. Wenn ich den nginx-Benutzer auf Root ändere, funktioniert alles einwandfrei. Ich werde einen Weg finden, es zu beheben und dann werde ich eine Installationsanleitung schreiben.
Danke für Ihre Hilfe. Ich habe eine Schritt-für-Schritt-Anleitung für zukünftige Referenzen geschrieben
Inhalt meiner nginx.conf
`Benutzer WWW-Daten;
worker_processes auto;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
Veranstaltungen {
Arbeiter_Verbindungen 768;
}
http {
# Grundkonfiguration
sendfile an;
tcp_nopush an;
tcp_nodelay an;
keepalive_timeout 65;
typen_hash_max_size 2048;
/etc/nginx/mime.types einschließen;
default_type application/octet-stream;
# SSL-Konfiguration
SSL-Protokolle TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_chiffren an;
# Protokollierungskonfiguration
log_format custom '$remote_addr - $remote_user [$time_local] '
'"$request" $status $body_bytes_sent '
'"$http_referer" "$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log custom;
error_log /var/log/nginx/error.log;
# gzip
gzip an;
# Konfiguration des virtuellen Hosts
include /etc/nginx/conf.d/*.conf;
lua_shared_dict prometheus_metrics 10M;
lua_package_path "/home/kunal/Documents/nginx-lua-prometheus/?.lua;;";
init_worker_by_lua_block {
prometheus = require("prometheus").init("prometheus_metrics")
metric_requests = p rometheus:counter (
"nginx_http_requests_total", "Anzahl der HTTP-Anfragen", {"host", "status"})
metric_latency = p rometheus:histogramm (
"nginx_http_request_duration_seconds", "HTTP-Anforderungslatenz", {"host"})
metric_connections = p rometheus:gauge (
"nginx_http_connections", "Anzahl der HTTP-Verbindungen", {"state"})
}
log_by_lua_block {
metric_requests :inc (1, {ngx.var.server_name, ngx.var.status})
metric_latency :beobachten (tonumber(ngx.var.request_time), {ngx.var.server_name})
}
`
Irgendein Vorschlag, was hier falsch ist?
Danke für Ihre Hilfe. Ich habe eine Schritt-für-Schritt-Anleitung für zukünftige Referenzen geschrieben
Hey @arya6000 ,
Ich habe die gleichen Probleme, aber der Link, den Sie gepostet haben, ist jetzt defekt :(
Meinst du, du könntest mir helfen?