Category: Linux
Originally, the configuration was AWS ELB -> Apache2 -> mod_wsgi, but after changing the Django server to use uWSGI, the configuration became AWS ELB -> Apache2 -> uWSGI. After this change, I started experiencing issues with Django's CSRF authentication, such as when submitting a login form. When I checked with DEBUG = True, I saw the following message: Access Forbidden (403) The request was aborted due to failure in CSRF verification. Help Reason given for failure: Referer checking failed - https://example.com.com/some-path/ does not match any trusted origins. In general, this can occur when there is a genuine Cross-Site Request Forgery, or when Django's CSRF mechanism has not been used correctly. For POST forms, you need to ensure: Your browser is accepting cookies. The view function passes a request to the template's render method. In the template, there is a {% csrf_token %} template tag inside each POST form that targets an internal URL. If you are not using CsrfViewMiddleware, then you must use csrf_protect on any views that use the csrf_token template tag, as well as those that accept the POST data. You're seeing the help section of this page because you have DEBUG = True in your Django settings file. Change that to False, and only the initial error message will be displayed. You can customize this page using the CSRF_FAILURE_VIEW setting. The ELB receives HTTPS, sends requests to Apache on port 80, and uWSGI is listening for HTTP protocol (not uWSGI protocol). The Apache configuration is as follows: ProxyPass / http://127.0.0.1:8081/ ProxyPassReverse / http://127.0.0.1:8081/ Alias /static/ /var/django/xxxxx/staticfiles/ ProxyPass /static/ ! Something like this. Upon searching the Django code, I found in csrf.py: REASON_BAD_REFERER = "Referer checking failed - %s does not match any trusted origins." It appears that adding the domain to CSRF_TRUSTED_ORIGINS should work. CSRF_TRUSTED_ORIGINS = [".example.com"] This should do the trick.
cd /tmp/ wget "http://dev.mysql.com/get/mysql-apt-config_0.3.5-1ubuntu14.10_all.deb" sudo dpkg -i mysql-apt-config_0.3.5-1ubuntu14.10_all.deb # Server -> MySQL 5.6 -> Apply sudo apt-get update sudo apt-cache policy mysql-server sudo apt-get install mysql-server (Reconfigure: sudo dpkg-reconfigure mysql-apt-config )
Recent Posts
- Skill + CLI over MCP: Replacing Sentry MCP with a multi-profile CLI wrapper
- Turning Raspberry Pi into a Signage Display with Playwright and Chromium Kiosk Mode
- Docker 29 breaks docker push to ECR with 403 Forbidden on GitHub Actions
- How to Add "Copy Full File Path to Clipboard" to Finder's Services Menu
- How to turn Orange Pi Zero 2W into a Web Signage Display
Recent Deliverables
Categories
- Django (66)
- Python (49)
- mac (22)
- Linux (17)
- kubernetes (15)
- iOS (11)
- MySQL (10)
- Raspberry-Pi (8)
- AWS (7)
- PHP (6)
- Javascript (5)
- PC/Etc (5)
- Docker (5)
- Android (4)
- Bicycle (4)
- (4)
- nuxt (3)
- css (3)
- nginx (3)
- Bootstrap (3)
- Flutter (3)
- Shellscript(Bash/Zsh) (3)
- Making (2)
- Windows (2)
- HTML (2)
- (1)
- Ebook (1)
- Rails (1)
- Microcontrollers (1)
- less (1)
- Ansible (1)
- (1)
- (1)