- Cerita
Saya punya website full HTML yang dijalanin lewat docker swarm.
Ekstensi .html nya buat website terlihat “ga profesional” dan juga unclean di address bar.
- Masih Cerita Berikut Solusinya
Dengan kemampuan googling saya, coba cara maenin setting config nginx nya.
Ga nemu, kebanyakan malah bikin error karena di address bar kebuka pake port (contoh: lobamikir.com/tentang-saya jadi lobamikir.com:8080/tentang-saya).
Akhirnya kepikiran cara paling gampang, yaitu hapus pake sed
saat build image dan tweak config nginx nya.
- Dockerfile yang saya pakai
FROM nginx:alpine
RUN apk --no-cache add tzdata &&\
rm /etc/nginx/conf.d/default.conf
#CHANGE TO WIB
RUN cp /usr/share/zoneinfo/Asia/Jakarta /etc/localtime
RUN echo "Asia/Jakarta" > /etc/timezone
#add custom config
COPY docker/nginx.conf /etc/nginx/nginx.conf
#setup document root
RUN mkdir -p /var/www/html
WORKDIR /var/www/html
COPY . /var/www/html/
#remove .html from html file
RUN sed -i 's/\.html//g' *.html
EXPOSE 69
CMD ["nginx", "-g", "daemon off;"]
- Di file config nginx, tambahkan ini di dalam line
server {
location / {
index index.html;
rewrite ^(/.*)\.html(\?.*)?$ $1$2 permanent;
rewrite ^/(.*)/$ /$1 permanent;
try_files $uri/index.html $uri.html $uri/ $uri =404;
}