# http > https
|
|
server {
|
|
listen 80;
|
|
server_name completesentences.ikeafoundation.org ikea-foundation-week-2025.onc.dk;
|
|
|
|
root /home/ikea_foundation_2025/week_2025/public;
|
|
|
|
# Lets encrypt
|
|
location ~ /.well-known {
|
|
allow all;
|
|
}
|
|
|
|
location / {
|
|
return 301 https://completesentences.ikeafoundation.org$request_uri;
|
|
}
|
|
}
|
|
|
|
# # https
|
|
server {
|
|
listen 443 ssl;
|
|
http2 on;
|
|
|
|
server_name ikea-foundation-week-2025.onc.dk;
|
|
|
|
# keepalive_timeout 300;
|
|
keepalive_timeout 5;
|
|
client_max_body_size 4G;
|
|
|
|
ssl_certificate /etc/letsencrypt/live/ikea-foundation-week-2025.onc.dk/fullchain.pem; # managed by Certbot
|
|
ssl_certificate_key /etc/letsencrypt/live/ikea-foundation-week-2025.onc.dk/privkey.pem; # managed by Certbot
|
|
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
|
|
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
|
|
|
|
location / {
|
|
return 301 https://completesentences.ikeafoundation.org$request_uri;
|
|
}
|
|
}
|
|
|
|
# # http > https
|
|
# server {
|
|
# listen 80;
|
|
# server_name spotlinks.ikeafoundation.org;
|
|
#
|
|
# root /home/ikea_foundation_2025/week_2025/public;
|
|
#
|
|
# # Lets encrypt
|
|
# location ~ /.well-known {
|
|
# allow all;
|
|
# }
|
|
#
|
|
# location / {
|
|
# return 301 https://spotlinks.ikeafoundation.org$request_uri;
|
|
# }
|
|
# }
|
|
|
|
# Puma
|
|
upstream puma_ikea_25 {
|
|
server unix:///home/ikea_foundation_2025/week_2025/tmp/pids/puma.sock fail_timeout=0;
|
|
}
|
|
|
|
|
|
|
|
# https
|
|
server {
|
|
listen 443 ssl;
|
|
http2 on;
|
|
|
|
# server_name spotlinks.ikeafoundation.org;
|
|
server_name completesentences.ikeafoundation.org;
|
|
|
|
# keepalive_timeout 300;
|
|
keepalive_timeout 5;
|
|
client_max_body_size 4G;
|
|
|
|
# ssl_certificate /etc/letsencrypt/live/spotlinks.ikeafoundation.org/fullchain.pem; # managed by Certbot
|
|
# ssl_certificate_key /etc/letsencrypt/live/spotlinks.ikeafoundation.org/privkey.pem; # managed by Certbot
|
|
|
|
ssl_certificate /etc/letsencrypt/live/completesentences.ikeafoundation.org/fullchain.pem; # managed by Certbot
|
|
ssl_certificate_key /etc/letsencrypt/live/completesentences.ikeafoundation.org/privkey.pem; # managed by Certbot
|
|
include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
|
|
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
|
|
|
|
access_log /home/ikea_foundation_2025/week_2025/log/httpd-access.log;
|
|
error_log /home/ikea_foundation_2025/week_2025/log/httpd-errors.log;
|
|
|
|
root /home/ikea_foundation_2025/week_2025/public;
|
|
|
|
# App server
|
|
location @puma_ikea_25 {
|
|
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
|
proxy_set_header Host $http_host;
|
|
proxy_set_header X-Forwarded_Proto $scheme;
|
|
proxy_redirect off;
|
|
|
|
proxy_pass http://puma_ikea_25;
|
|
}
|
|
|
|
# Serve static (compiled) assets directly if they exist (for rails production)
|
|
location ~ ^/(assets|packs|static)/ {
|
|
try_files $uri @puma_ikea_25;
|
|
|
|
access_log off;
|
|
gzip_static on;
|
|
|
|
expires max;
|
|
add_header Cache-Control public;
|
|
|
|
# Some browsers still send conditional-GET requests if there's a
|
|
# Last-Modified header or an ETag header even if they haven't
|
|
# reached the expiry date sent in the Expires header.
|
|
add_header Last-Modified "";
|
|
add_header ETag "";
|
|
break;
|
|
}
|
|
|
|
# location /cable {
|
|
# proxy_pass http://puma_ikea_25;
|
|
# proxy_http_version 1.1;
|
|
# proxy_set_header Upgrade $http_upgrade;
|
|
# proxy_set_header Connection 'upgrade';
|
|
# }
|
|
|
|
# Send non-static file requests to the app server
|
|
location / {
|
|
try_files $uri @puma_ikea_25;
|
|
}
|
|
|
|
# You can override error pages by redirecting the requests to a file in your
|
|
# application's public folder, if you so desire:
|
|
error_page 500 502 503 504 /500.html;
|
|
location = /500.html {
|
|
root /home/ikea_foundation_2025/week_2025/public;
|
|
}
|
|
}
|