-
Ny webbshop med hundkläder och hundtillbehör
Min fru har startat en webbshop som heter tinybuddy.se som säljer hundkläder, hundselar, hundkoppel, hundhalsband, hundskor, hundleksaker, hundbäddar och andra hundtillbehör. In och kika!
-
Oktober, vår nya plattform och 44 miljoner pageviews
Our web servers delivered 44 million page views in October - at most 2.5 million in a day. In addition CloudFront delivered around 800 million requests resulting in 17 TB of data. The system managed to handle 800 incoming orders in one hour.
Texten ovan summerar oktober ganska bra.
-
Husköp & annat
Har vart ganska dött här ett bra tag. Anledningen är att jag & min fru köpte ett hus i våras sen har sommaren gått åt åt renoveringar & bröllopsplanering. Får bättra mig nu, snart är det spännande tider: Oktober!
-
UniFi® Security Gateway Pro rebootar och är seg
Har installerat en UniFi® Security Gateway Pro. Tyvärr så verkar det som att när många enheter ansluter mot samma host så flippar den ur. Den rebootar med jämna intervall på några timmar och det tar lång tid att initiera nya anslutningar mot hosten. Den temporära lösningen som fungerade var att slå av hårdvaru TCP/IP offloading. För att göra detta lär man SSHa in på Gatewayen efter varje omstart eller konfigurationsändring.
Får se om det kommer något nytt firmware som fixar detta eller om det blir s/UniFi® Security Gateway Pro/EdgerRouter PRO/g istället.
-
PHP: Få kod att exekveras innan en closure
Ganska dålig rubrik va? I vilket fall så stötte vi på ett tillfälle där vi ville köra kod innan en closure kördes. Vi vill alltså “prependa kod i en closure”. Just i det här fallet var det att vi ville köra funktionen newrelic_name_transaction för att kunna spåra en request innan routen körs i newrelic - utan att behöva lägga till koden i varje routes kod.
-
Sätta tidszon i Amazon Linux EBS
För att timezonen ska sparas även när nya EBS-instanser skapas (ex. vid skalning) skapar vi en ny fil i “.ebextensions”.
.ebextensions/00-set-timezone.config
-
Swish API, klientcertifikat & Amazon Linux (EBS) (NSS)
På jobbet håller vi på att migrera till Amazons infrastruktur från de virtualiserade VMWare-instanserna med Debian vi kör idag. På Amazon har vi valt en uppsättning med Amazon Linux (PHP) som körs i “Elastic Beanstalk”. Målet med migreringen är att få bort så mycket manuellt underhåll som möjligt, öka driftsäkerheten och få en miljö som skalar av sig själv.
Amazons Linuxversion bygger på CentOS / Redhat / RPM av pakethanteringssystem och struktur att döma. Deras curl är kompilerat mot Mozillas NSS istället för OpenSSL. I Swish e-handelslösning som vi använder så autentiserar man mot deras API med hjälp av klientcertifikat, något ganska ovanligt för betallösningar riktade mot e-handel.
Fick en massa problem med att SSL-handskaken inte fungerade, curl spottade ut felmeddelande på felmeddelande. Här var PHP-koden som användes. Fungerar felfritt med curl & openssl:
Efter en massa felsökning så misstänkte jag att NSS var boven i dramat. Visade sig att man var tvungen att lägga till Swish certifikat i NSS certifkikatdb. Det fungerade alltså inte att skicka med certfikaten som ovan.
a) Skapa en pksc12-fil från din private key och Swish-certet:
b) Importera deras CA-cert.
c) Importera Swish-certet vi skapade i steg “a”
Nu får vi istället i CURL använda oss av certifikatets namn i nssdb. Det hittar vi genom att köra följande:
Så vi får anpassa PHP-koden:
Sen kommer nästa problem: inget är persistent i en EBS-miljö. Miljön “nollas” ju ibland, så vi får se till att köra allt när en ny instans startas med hjälp av .ebextensions:
.ebextensions/03-certificate-files.config Lägger till våra certifikat-filer.
.ebextensions/04-generate-pkcs12-and-add-to-nssdb.config Genererar pkcs12-filen från certifikaten vi behöver och lägger till Swish CA-cert och vårt cert i nssdbn. Sen städar upp! Finns ingen anledning för dem att ligga kvar.
subscribe via RSS