If you ever find yourself using Apache as a frontend server or reverse proxy, as opposed to one Nginx, for example. You may want to be sure to pass the actual host IP and scheme information back to your application so that it may function properly. By default, mod_proxy sets the X-Forwarded-For
header. But that header is a list, and is used by other types of proxies. You may want to set the X-Forwarded-Proto
and X-Real-IP
as well. The following entries into your VirtualHost
or similar should do the job:
Welcome to my blog
As I discover new things in my field and solve troublesome problems, I will attempt to document my finds here.
phpMyAdmin: Incorrect format parameter
If you’re getting “Incorrect format parameter” errors on attempts to import files into phpMyAdmin, be sure to get your post_max_size
and upload_max_filesize
settings in php.ini. More than likely, they are too small for the file that you’re uploading.
Full page screenshots with Python and Selenium
Currently, none of the major Selenium drivers (browsers) support the ability to easily take a screenshot of an entire web page. The following function takes multiple screenshots through the viewport and scrolls between screenshots, then stitches the resulting images into a single PNG.
Calling openssl genrsa from Python
I have been writing some automation code a few dozen websites, and I wanted to generate SSL keys, and I couldn’t get the `subprocess` call to work properly, so I thought I would post the final solution. The argument to `communicate()` is critical.
Read More
Replicating Chilkat AES Cryptography with PyCrypto
Today, I had the need to replicate an encrypted query string token to inter-operate with a third-party commercial application. I was able to determine the library, symmetrical algorithm and secret key being used to create the token. Turns out, it was an ASP.net web application using the Chilkat .NET library to do the encryption and decryption. Specifically, it was the Chilkat AES (aka Rijndael) methods being used.
Read More
Installing pgAdmin4 Web on CentOS 7
I have had problem previously installing pgAdmin4 on CentOS 7, so I wanted to document my steps this most recent time.
Openfire certificate import
Working with SSL certificates in Openfire are surprisingly troublesome, at least as compared to popular web servers (Apache hTTPd, Nginx, IIS).
I recently needed to update an expiring certificate (having once, previously, figured out how to successfully import a purchased, SSL certificate.
This time I found a nice tutorial: https://alpha-labs.net/2014/12/openfire-and-ciphers/. Thanks to Christian for that.
I’ve made some slight modifications to his Shell script, and I just wanted to share:
Read More
Adding version numbers to your static files
When I started with Django, the version at the time was 1.5. Back then, we prepended STATIC_URL
to our static assets to reference them in our templates. With recent release, best practice is to you use the static
[1]. I often find myself wanting to append a version number to my static files, at least my CSS and JS files to ensure that browser see my new versions when I push an update. In this post, I make use of the `static` tag and its URL building to easily append a version number.
got an unexpected keyword argument ‘server_hostname’
If you’re seeing this exception, you’re probably using some combination of the Python requests library, and gevent.
Read More
Sample settings.py for a Django microservice project
I present a sample settings.py
for a Django project, setup to accomplish the following requirements.
Read More