By Dave Merwin
I have a Django app served at “domain.com/” I want to serve a Wordpress install from “domain.com/blog” so that I can enable SSL for both.
All I ever get is a 404 not found on the “/blog” entry. My NGINX conf file is shown below.
server { listen 80; listen [::]:80; server_name domain.org www.domain.org; return 301 https://$server_name$request_uri; }
server {
# SSL configuration
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name www.domain.org domain.org;
include snippets/ssl-domain.org.conf;
include snippets/ssl-params.conf;
access_log /home/user/logs/nginx/nginx-access.log;
error_log /home/user/logs/nginx/nginx-error.log;
client_max_body_size 4G;
root /home/user/app;
keepalive_timeout 5;
location = /favicon.ico { access_log off; log_not_found off; }
location /static {
alias /home/user/app/static;
}
location /uploads {
alias /home/user/uploads;
}
error_page 500 502 503 504 /500.html;
location = /500.html {
alias /home/user/app/app/app/templates;
}
location / {
include proxy_params;
proxy_pass http://unix:/home/user/app/mosaic.sock;
}
location ~ /.well-known {
allow all;
}
location /blog {
try_files $uri $uri/ /index.php$is_args$args;
}
}
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Accepted Answer
To round this out, I’m posting the solution for prosperity. Even though @hansen didn’t post the final solution, they were crucial to figuring this out.
server {
listen 80;
listen [::]:80;
server_name domain.org www.domain.org;
return 301 https://$server_name$request_uri;
}
server {
# SSL configuration
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name www.domain.org domain.org;
include snippets/ssl-domain.org.conf;
include snippets/ssl-params.conf;
access_log /home/user/logs/nginx/nginx-access.log;
error_log /home/user/logs/nginx/nginx-error.log;
client_max_body_size 4G;
root /home/user;
keepalive_timeout 5;
location = /favicon.ico { access_log off; log_not_found off; }
location /static {
alias /home/user/app/static;
}
location /uploads {
alias /home/user/uploads;
}
error_page 500 502 503 504 /500.html;
location = /500.html {
alias /home/user/app/app/app/templates;
}
location / {
include proxy_params;
proxy_pass http://unix:/home/user/app/app.sock;
}
location ~ /.well-known {
allow all;
}
location ^~ /blog {
index index.php index.html index.htm index.nginx-debian.html;
try_files $uri $uri/ /blog/index.php$is_args$args;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}
}
@davemerwin Okay, let’s try this instead - I don’t have an active test box to play with right now:
location /blog/ {
alias /home/user/blog;
index index.php index.html index.htm index.nginx-debian.html;
try_files $uri $uri/ /index.php$is_args$args;
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
}
Hi @dave0ca67299bda3400d468baf
Try changing your bottom location block to this (I’m guessing php7.0-fpm is installed):
location ^~ /blog {
try_files $uri $uri/ /blog/index.php$is_args$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
}
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
Full documentation for every DigitalOcean product.
The Wave has everything you need to know about building a business, from raising funding to marketing your product.
Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.
New accounts only. By submitting your email you agree to our Privacy Policy
Scale up as you grow — whether you're running one virtual machine or ten thousand.
Sign up and get $200 in credit for your first 60 days with DigitalOcean.*
*This promotional offer applies to new accounts only.