從Nginx遷移回到Lighttpd以及相關配置 — High5!
我們的基礎設施中有一些執行NGINX的FreeBSD機器。在F5 最近宣佈購買NGINX之後,我們決定回到Lighttpd。
我們看到很多開源專案在被收購後表現並不是那麼良好,我們認為這次收購不會對專案有利。
幾年前Lighttpd專案停滯不前,它讓我們轉向NGINX。最近幾年它再次活躍起來,我們決定退回去。
在這篇文章中,我們描述了Lighttpd配置,以涵蓋NGINX上的所有用途。
Lighttpd中的許多選項都是透過使用模組啟用的。這些是我們在所有Lighttpd伺服器上啟用的模組。
server.modules = ( "mod_auth", "mod_expire", "mod_compress", "mod_rewrite", "mod_redirect", "mod_alias", "mod_access", "mod_setenv", "mod_evhost", "mod_fastcgi", "mod_accesslog", "mod_openssl" ) |
指定Lighttpd偵聽的IP和埠是以幾種不同的方式定義的。對於IPv4 server.port和server.bind。對於IPv6,您必須使用$ SERVER [“socket”]。SSL配置也是如此。
server.port = "80" server.bind = "0.0.0.0" $SERVER["socket"] == "[::]:80" { } $SERVER["socket"] == "[::]:443" { } $SERVER["socket"] == ":443" { ssl.engine = "enable" ssl.pemfile = "/usr/local/etc/ssl/certs/example.com/combined.pem" ssl.ca-file = "/usr/local/etc/ssl/certs/example.com/chain.pem" ssl.cipher-list = "EECDH+AESGCM:EDH+AESGCM:AES128+EECDH:AES128+EDH" ssl.dh-file = "/usr/local/etc/ssl/certs/dhparam.pem" ssl.ec-curve = "secp384r1" setenv.add-response-header = ("Strict-Transport-Security" => "max-age=31536000; includeSubdomains") } |
Lighttpd需要PEM證照。您可以輕鬆建立:
# cat domain.key domain.crt > combined.pem
您可以使用以下命令建立dhparam.pem檔案:
# openssl dhparam -out dhparam.pem 4096
這些是我們在FreeBSD上使用的與伺服器設定相關的全域性設定。
server.username = "www" server.groupname = "www" server.pid-file = "/var/run/lighttpd.pid" server.event-handler = "freebsd-kqueue" server.stat-cache-engine = "disable" server.max-write-idle = 720 server.tag = "lighttpd" server.document-root = "/usr/local/www/default/" server.error-handler-404 = "/404.html" accesslog.filename = "/usr/local/www/logs/lighttpd.access.log" server.errorlog = "/usr/local/www/logs/lighttpd.error.log" server.dir-listing = "disable" |
一些適用於Lighttpd服務的所有網站的全域性設定。
index-file.names = ("index.php", "index.html", "index.htm") url.access-deny = ("~", ".inc", ".sh", "sql", ".htaccess") static-file.exclude-extensions = (".php", ".pl", ".fcgi") |
讓我們加密的別名。
alias.url += ("/.well-known/acme-challenge/" => "/usr/local/www/acme/") |
為某些檔案型別啟用壓縮。
compress.cache-dir = "/tmp/lighttpdcompress/" compress.filetype = ("text/plain", "text/css", "text/xml", "text/javascript") |
需要身份驗證時,您可以指定如下。支援不同的後端。
auth.backend = "htpasswd" auth.backend.htpasswd.userfile = "/usr/local/etc/lighttpd/htpasswd" |
某些檔案型別的常規Expire和Cache-Control標頭。
$HTTP["url"] =~ "\.(js|css|png|jpg|jpeg|gif|ico)$" { expire.url = ( "" => "access plus 1 months" ) } |
當您執行Wordpress網站時,您可能想要拒絕訪問某些網址。
$HTTP["url"] =~ "/(?:uploads|files|wp-content|wp-includes).*\.(php|phps|txt|md|exe)$" { url.access-deny = ("") } $HTTP["url"] =~ "/(wp-config|xmlrpc)\.php$" { url.access-deny = ("") } |
定義需要身份驗證的主機和URL。
$HTTP["host"] =~ "www1.example.com" { auth.require = ( "/admin/" => ( "method" => "basic", "realm" => "Restricted", "require" => "valid-user" ) ) } |
將某些主機從http重定向到https。
$HTTP["host"] =~ "(www\.)?example.com" { url.redirect = ("^/(.*)" => "https://www.example.com/$1") } |
有一個可用的模組可以幫助為虛擬主機分配正確的server.document-root。這可以使用mod_evhost完成,我們使用以下模式:
$HTTP["host"] =~ "^(www.)?[^.]+\.[^.]+$" { evhost.path-pattern = "/usr/local/www/www.%2.%1/" } |
為了能夠使用Wordpress的漂亮網址,您可以使用以下mod_rewrite規則。
url.rewrite = ( "^/(.*)\.(.+)$" => "$0", "^/(.+)/?$" => "/index.php/$1" ) |
當您使用PHP-FPM時,最後一塊拼圖可以使用以下配置。
fastcgi.server = ( ".php" => ( "localhost" => ( "host" => "127.0.0.1", "port" => 9000 ) ) ) |
完整的配置可以在我們的Git儲存庫中找到
相關文章
- nginx配置相關Nginx
- dubbo相關配置以及注意項
- mac下安裝nginx及相關配置MacNginx
- nginx相關Nginx
- nginx-k8s 相關配置詳解NginxK8S
- flutter 微信登入以及客服相關配置Flutter
- 從 Nginx 遷移到 Envoy ProxyNginx
- 從Milvus遷移DashVector
- 申請免費https證書及nginx相關配置HTTPNginx
- Nginx配置以及熱升級Nginx
- Nginx 相關介紹Nginx
- nginx伺服器搭建以及配置Nginx伺服器
- Linux 、docker 、nginx 相關命令LinuxDockerNginx
- Spring配置相關Spring
- Git 相關配置Git
- JDBC 相關配置JDBC
- VScode配置xdebug相關配置VSCode
- Lock鎖相關以及AQSAQS
- 【consul】consul配置kv遷移隨筆
- Jenkins從Ubuntu遷移至AlmaLinux問題及相關解決記錄JenkinsUbuntuLinux
- 解決mysql8.0.13dm7資料遷移相關問題undefinedMySqlUndefined
- mysqldump從mysql遷移資料到OceanBaseMySql
- SpringCloud簡介以及相關元件SpringGCCloud元件
- ubuntu中Django相關配置UbuntuDjango
- SpringCloud(1)-Eureka相關配置SpringGCCloud
- SpringCloud(3)-OpenFeign相關配置SpringGCCloud
- Mariadb之日誌相關配置
- Springmvc相關配置總結SpringMVC
- php-fpm相關配置PHP
- vue-router相關配置Vue
- HandlerThread解析以及相關問題分析thread
- fastdfs資料遷移以及fastdfs問題排查記錄AST
- 關於 Laravel 遷移遇到的問題Laravel
- 關於禪道的資料遷移
- Oracle使用RMAN從Windows遷移資料到LinuxOracleWindowsLinux
- 移動機器人相機模型:從相機移動到二維影像機器人模型
- 金倉資料庫資料遷移實戰:從MySQL到KES的順利遷移資料庫MySql
- nginx 常見引數以及重定向引數配置Nginx