# Path to access.log & error.log
access_log /var/log/nginx/access.log main;
error_log /var/log/nginx/error.log warn;
sendfile on;
keepalive_timeout 65;
gzip on;
upstream backend {
# must match the target service name
server wordpress:80;
}
server {
listen 80;
location / {
# $http_host is the host name that users seen on the browser URL
# and it equals to `HTTP_HOST` request header.
proxy_set_header Host $http_host;
# You have to change this according to your setup.
proxy_pass http://wordpress;
# Modify `Location` of 301 or 302 HTTP response, so
# that the browser will follow the correct location.
proxy_redirect ~^http://[^/]*/(.*) http://$http_host/$1;
}
}
docker-compose.yml: services: nginx: image: nginx:latest container_name: nginx ports:
wordpress healthcheck: test: [ "CMD-SHELL", "curl -f http://localhost:80 || exit 1" ] interval: 30s timeout: 10s retries: 3 restart: unless-stopped logging: driver: gelf options: gelf-address: "udp://127.0.0.1:12201" tag: "nginx"
wordpress: image: wordpress:latest container_name: wordpress environment: WORDPRESS_DB_HOST: db WORDPRESS_DB_USER: exampleuser WORDPRESS_DB_PASSWORD: 1234 WORDPRESS_DB_NAME: MYDB volumes:
wordpress_data:/var/www/html logging: driver: gelf options: gelf-address: udp://127.0.0.1:12201 healthcheck: test: [ 'CMD-SHELL', 'curl -f http://localhost:80 || exit 1' ] interval: 30s timeout: 10s retries: 3 restart: always deploy: resources: limits: cpus: '1' memory: 512M
mysql: image: mysql:latest container_name: db environment: MYSQL_ROOT_PASSWORD: 1234 MYSQL_DATABASE: MYDB MYSQL_USER: exampleuser MYSQL_PASSWORD: 1234 volumes:
db-vol:/var/lib/mysql
logging: driver: gelf options: gelf-address: udp://127.0.0.1:12201 healthcheck: test: [ 'CMD-SHELL', mysqladmin ping -h localhost -u root --password=1234 || exit 1' ] interval: 30s timeout: 10s retries: 3 restart: always deploy: resources: limits: cpus: '1' memory: 1024M volumes: db-vol: wordpress_data:
nginx.conf: user nginx; worker_processes 1;
error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid;
events { worker_connections 1024; }
http { log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"';
}