Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add all-in-one minimal nginx config #589

Merged
merged 1 commit into from
Jan 15, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ RUN chown -R codegate /var/lib/nginx && \
chown -R codegate /var/log/nginx && \
chown -R codegate /run

COPY nginx.conf /etc/nginx/conf.d/default.conf
COPY nginx.conf /etc/nginx/nginx.conf
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is there any system-default nginx.conf? Which of them takes precedence? Just making sure we won't block ourselves from receiving changes to defaults in the future

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

right, that's exactly what I'm overwriting here. We no longer take into account the default nginx.conf and instead write our own.


# Remove include /etc/nginx/sites-enabled/*; from the default nginx.conf
# This way we don't introduce unnecessary configurations nor serve
Expand Down
78 changes: 62 additions & 16 deletions nginx.conf
Original file line number Diff line number Diff line change
@@ -1,22 +1,68 @@
server {
listen 9090;
worker_processes 1;
pid /run/nginx.pid;
error_log /var/log/nginx/error.log;
include /etc/nginx/modules-enabled/*.conf;

server_name localhost;
events {
worker_connections 128;
}

http {

##
# Basic Settings
##

sendfile on;
tcp_nopush on;
types_hash_max_size 2048;

##
# Disable unnecessary features
##

server_tokens off;
autoindex off;

include /etc/nginx/mime.types;
default_type application/octet-stream;

##
# Logging Settings
##

access_log off;
error_log /var/log/nginx/error.log;

##
# Gzip Settings
##

gzip on;

server {
listen 9090;

server_name localhost;

root /var/www/html;
index index.html;
add_header X-Frame-Options SAMEORIGIN;
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";

location / {
try_files $uri /index.html =404;
}
root /var/www/html;
index index.html;

# Serve certificates from /app/codegate_volume/certs at /certificates
location /certificates/codegate_ca.crt {
alias /app/codegate_volume/certs/ca.crt;
types { application/x-x509-ca-cert crt; }
default_type application/x-x509-ca-cert;
}
location / {
try_files $uri /index.html =404;
expires 1h; # Cache files for 1 hour
add_header Cache-Control "public, max-age=3600";
}

error_log /var/log/nginx/error.log;
access_log /var/log/nginx/access.log;
# Serve certificates from /app/codegate_volume/certs at /certificates
location /certificates/codegate_ca.crt {
alias /app/codegate_volume/certs/ca.crt;
types { application/x-x509-ca-cert crt; }
default_type application/x-x509-ca-cert;
}
}
}
Loading