refactor: nginx & Dockerfile
This commit is contained in:
parent
d39180d276
commit
d7d13d2dba
@ -41,12 +41,9 @@ ARG EXPORT_PORT=18080
|
|||||||
# Copy built files from builder stage
|
# Copy built files from builder stage
|
||||||
COPY --from=builder /app/dist /usr/share/nginx/html
|
COPY --from=builder /app/dist /usr/share/nginx/html
|
||||||
|
|
||||||
# Copy nginx configuration
|
# Copy nginx configuration (이미 포트가 18080으로 설정됨)
|
||||||
COPY deployment/container/nginx.conf /etc/nginx/conf.d/default.conf
|
COPY deployment/container/nginx.conf /etc/nginx/conf.d/default.conf
|
||||||
|
|
||||||
# Create nginx configuration with custom port
|
|
||||||
RUN sed -i "s/80/${EXPORT_PORT}/g" /etc/nginx/conf.d/default.conf
|
|
||||||
|
|
||||||
EXPOSE ${EXPORT_PORT}
|
EXPOSE ${EXPORT_PORT}
|
||||||
|
|
||||||
CMD ["nginx", "-g", "daemon off;"]
|
CMD ["nginx", "-g", "daemon off;"]
|
||||||
@ -1,69 +1,46 @@
|
|||||||
events {
|
server {
|
||||||
worker_connections 1024;
|
listen 18080;
|
||||||
}
|
server_name localhost;
|
||||||
|
root /usr/share/nginx/html;
|
||||||
|
index index.html index.htm;
|
||||||
|
|
||||||
http {
|
|
||||||
include /etc/nginx/mime.types;
|
|
||||||
default_type application/octet-stream;
|
|
||||||
|
|
||||||
# Logging
|
|
||||||
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
|
|
||||||
'$status $body_bytes_sent "$http_referer" '
|
|
||||||
'"$http_user_agent" "$http_x_forwarded_for"';
|
|
||||||
|
|
||||||
access_log /var/log/nginx/access.log main;
|
|
||||||
error_log /var/log/nginx/error.log warn;
|
|
||||||
|
|
||||||
# Basic settings
|
|
||||||
sendfile on;
|
|
||||||
tcp_nopush on;
|
|
||||||
tcp_nodelay on;
|
|
||||||
keepalive_timeout 65;
|
|
||||||
types_hash_max_size 2048;
|
|
||||||
|
|
||||||
# Gzip compression
|
# Gzip compression
|
||||||
gzip on;
|
gzip on;
|
||||||
gzip_vary on;
|
gzip_vary on;
|
||||||
gzip_min_length 10240;
|
gzip_min_length 1024;
|
||||||
gzip_proxied expired no-cache no-store private must-revalidate;
|
gzip_proxied any;
|
||||||
|
gzip_comp_level 6;
|
||||||
gzip_types
|
gzip_types
|
||||||
text/plain
|
text/plain
|
||||||
text/css
|
text/css
|
||||||
text/xml
|
text/xml
|
||||||
text/javascript
|
text/javascript
|
||||||
application/x-javascript
|
|
||||||
application/xml+rss
|
|
||||||
application/javascript
|
application/javascript
|
||||||
|
application/xml+rss
|
||||||
application/json;
|
application/json;
|
||||||
|
|
||||||
server {
|
# Handle client routing (Vue Router)
|
||||||
listen 18080;
|
location / {
|
||||||
server_name localhost;
|
try_files $uri $uri/ /index.html;
|
||||||
|
}
|
||||||
# Security headers
|
|
||||||
add_header X-Frame-Options "SAMEORIGIN" always;
|
# Security headers
|
||||||
add_header X-XSS-Protection "1; mode=block" always;
|
add_header X-Frame-Options "SAMEORIGIN" always;
|
||||||
add_header X-Content-Type-Options "nosniff" always;
|
add_header X-XSS-Protection "1; mode=block" always;
|
||||||
add_header Referrer-Policy "no-referrer-when-downgrade" always;
|
add_header X-Content-Type-Options "nosniff" always;
|
||||||
add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'" always;
|
add_header Referrer-Policy "no-referrer-when-downgrade" always;
|
||||||
|
add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'" always;
|
||||||
location / {
|
|
||||||
root /usr/share/nginx/html;
|
# Cache static assets
|
||||||
index index.html index.htm;
|
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
|
||||||
try_files $uri $uri/ /index.html;
|
expires 1y;
|
||||||
|
add_header Cache-Control "public, immutable";
|
||||||
# Cache static assets
|
}
|
||||||
location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
|
|
||||||
expires 1y;
|
# Health check endpoint
|
||||||
add_header Cache-Control "public, immutable";
|
location /health {
|
||||||
}
|
access_log off;
|
||||||
}
|
return 200 "healthy\n";
|
||||||
|
add_header Content-Type text/plain;
|
||||||
# Health check endpoint
|
|
||||||
location /health {
|
|
||||||
access_log off;
|
|
||||||
return 200 "healthy\n";
|
|
||||||
add_header Content-Type text/plain;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user