Пишу для себя, чтобы не забыть как делал. 95 % рабочее. На комментарии отвечаю, когда увижу.
Показаны сообщения с ярлыком Nginx. Показать все сообщения
Показаны сообщения с ярлыком Nginx. Показать все сообщения
среда, 15 мая 2019 г.
вторник, 1 января 2019 г.
Настройка nginx в Docker-compose
Docker-compose: идеальное рабочее окружение
$ sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ mkdir -p /home/user/production_nginx
$ nano /home/user/production_nginx/docker-compose.yml
version: '3'
services:
nginx:
image: nginx:latest
container_name: production_nginx
volumes:
- ./src:/usr/share/nginx/html
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
restart: always
ports:
- 80:80
- 443:443
Сохранить.
$ sudo nano /home/user/production_nginx/nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
root /usr/share/nginx/html;
listen 80;
server_name zaz60.com;
location / {
index index.html index.htm;
}
}
}
Сохранить.
$ mkdir src
$ nano src/index.html
Hi, I'am Nginx
Сохранить.
$ docker-compose up -d
$ docker-compose down
Вариант с SSL сертифиикатами
$ sudo chown -R user:user certs
$ nano /home/user/production_nginx/docker-compose.yml
version: '3'
services:
nginx:
image: nginx:latest
container_name: production_nginx
volumes:
- ./src:/usr/share/nginx/html
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
- ./certs:/etc/letsencrypt
restart: always
ports:
- 80:80
- 443:443
Сохранить.
$ sudo nano /home/user/production_nginx/nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
root /usr/share/nginx/html;
listen 80;
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/zaz60.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/zaz60.com/privkey.pem;
server_name zaz60.com;
location / {
index index.html index.htm;
}
}
}
Сохранить.
$ mkdir src
$ nano src/index.html
Hi, I'am Nginx
Сохранить.
$ docker-compose up -d
$ docker-compose down
$ sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ mkdir -p /home/user/production_nginx
$ nano /home/user/production_nginx/docker-compose.yml
version: '3'
services:
nginx:
image: nginx:latest
container_name: production_nginx
volumes:
- ./src:/usr/share/nginx/html
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
restart: always
ports:
- 80:80
- 443:443
Сохранить.
$ sudo nano /home/user/production_nginx/nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
root /usr/share/nginx/html;
listen 80;
server_name zaz60.com;
location / {
index index.html index.htm;
}
}
}
Сохранить.
$ mkdir src
$ nano src/index.html
Hi, I'am Nginx
Сохранить.
$ docker-compose up -d
$ docker-compose down
Вариант с SSL сертифиикатами
$ sudo chown -R user:user certs
$ nano /home/user/production_nginx/docker-compose.yml
version: '3'
services:
nginx:
image: nginx:latest
container_name: production_nginx
volumes:
- ./src:/usr/share/nginx/html
- ./nginx/nginx.conf:/etc/nginx/nginx.conf
- ./certs:/etc/letsencrypt
restart: always
ports:
- 80:80
- 443:443
Сохранить.
$ sudo nano /home/user/production_nginx/nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
root /usr/share/nginx/html;
listen 80;
listen 443 ssl;
ssl_certificate /etc/letsencrypt/live/zaz60.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/zaz60.com/privkey.pem;
server_name zaz60.com;
location / {
index index.html index.htm;
}
}
}
Сохранить.
$ mkdir src
$ nano src/index.html
Hi, I'am Nginx
Сохранить.
$ docker-compose up -d
$ docker-compose down
понедельник, 31 декабря 2018 г.
Получение Let's Encrypt Certificate используя docker и nginx
Для обоих вариантов осводим порт 80 !!!
Вариант № 1 (левый quay.io/letsencrypt/letsencrypt)
Let's Encrypt Certificate Generation Using Docker
$ mkdir -p /home/user/letsencrypt/certs
$ docker run -d -p 80:80 --name nginx -v /usr/share/nginx/html nginx
$ docker run -it --name letsencrypt --rm -v /home/user/letsencrypt/certs:/etc/letsencrypt --volumes-from nginx quay.io/letsencrypt/letsencrypt certonly --agree-tos --webroot --webroot-path /usr/share/nginx/html -m certs@zaz60.com -d zaz60.com -d www.zaz60.com
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/zaz60.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/zaz60.com/privkey.pem
Your cert will expire on 2019-03-31. To obtain a new or tweaked
version of this certificate in the future, simply run certbot
again. To non-interactively renew *all* of your certificates, run
"certbot renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
$ docker stop nginx
$ docker rm nginx
Сертификаты /home/user/letsencrypt/certs
Вариант № 2 (официальный certbot/certbot)
Generate and renew Let’s Encrypt Certificates for Apache with Certbot Docker container
$ mkdir -p /home/user/letsencrypt/certs
$ docker pull certbot/certbot
$ docker run -d -p 80:80 --name nginx -v /usr/share/nginx/html nginx
$ docker run -it --rm -v /home/user/letsencrypt/certs:/etc/letsencrypt --volumes-from nginx certbot/certbot certonly --webroot --webroot-path=/usr/share/nginx/html -d zaz60.com --email info@zaz60.com --agree-tos
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/zaz60.com/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/zaz60.com/privkey.pem
Your cert will expire on 2019-03-31. To obtain a new or tweaked
version of this certificate in the future, simply run certbot
again. To non-interactively renew *all* of your certificates, run
"certbot renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
Сертификаты /home/user/letsencrypt/certs
Вариант № 3 (показался мне самым лучшим)
Automating the management of HTTPS certificates in a Dockerized environment with Let’s Encrypt
$ docker volume create --name certs
$ docker run -v certs:/etc/letsencrypt -e http_proxy=$http_proxy -e domains="www.zaz60.com" -e email="info@zaz60.com" -p 80:80 -p 443:443 --rm pierreprinetti/certbot:latest
Сертификаты /var/lib/docker/volumes/certs/_data/
Настройка обратного прокси nginx docker-compose на примере wordpress
Setting up a Reverse-Proxy with Nginx and docker-compose
Use NGINX As A Reverse Proxy To Your Containerized Docker Applications
Docker compose : NGINX reverse proxy with multiple containers
Nextcloud via Docker with nginx reverse proxy
Docker Compose wordpress
$ sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ mkdir -p /home/user/wordpress
$ nano /home/user/wordpress/docker-compose.yml
version: '3'
services:
db:
image: mysql:5.7
container_name: db
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
container_name: wordpress
expose:
- "80"
volumes:
- html:/var/www/html
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
nginx:
image: nginx:latest
container_name: production_nginx
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./certs:/etc/letsencrypt
restart: always
ports:
- 80:80
- 443:443
volumes:
db_data:
html:
Сохранить
$ nano /home/user/production_nginx/nginx.conf
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
upstream target {
server wordpress:80;
}
server {
listen 443 ssl;
server_name zaz60.com;
ssl_certificate /etc/letsencrypt/live/zaz60.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/zaz60.com/privkey.pem;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://target;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
# This allows the ability for the execute shell window to remain open for up to 15 minutes. Without this parameter, the default is 1 minute and will automatically close.
proxy_read_timeout 900s;
}
}
server {
listen 80;
server_name zaz60.com;
return 301 https://$server_name$request_uri;
}
}
Сохранить
$ cd /home/user/wordpress
$ docker-compose up -d
$ docker-compose down
Use NGINX As A Reverse Proxy To Your Containerized Docker Applications
Docker compose : NGINX reverse proxy with multiple containers
Nextcloud via Docker with nginx reverse proxy
Docker Compose wordpress
$ sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
$ sudo chmod +x /usr/local/bin/docker-compose
$ mkdir -p /home/user/wordpress
$ nano /home/user/wordpress/docker-compose.yml
version: '3'
services:
db:
image: mysql:5.7
container_name: db
volumes:
- db_data:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: somewordpress
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
wordpress:
depends_on:
- db
image: wordpress:latest
container_name: wordpress
expose:
- "80"
volumes:
- html:/var/www/html
restart: always
environment:
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
nginx:
image: nginx:latest
container_name: production_nginx
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
- ./certs:/etc/letsencrypt
restart: always
ports:
- 80:80
- 443:443
volumes:
db_data:
html:
Сохранить
$ nano /home/user/production_nginx/nginx.conf
user www-data;
worker_processes auto;
pid /run/nginx.pid;
events {
worker_connections 1024;
}
http {
upstream target {
server wordpress:80;
}
server {
listen 443 ssl;
server_name zaz60.com;
ssl_certificate /etc/letsencrypt/live/zaz60.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/zaz60.com/privkey.pem;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Port $server_port;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://target;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
# This allows the ability for the execute shell window to remain open for up to 15 minutes. Without this parameter, the default is 1 minute and will automatically close.
proxy_read_timeout 900s;
}
}
server {
listen 80;
server_name zaz60.com;
return 301 https://$server_name$request_uri;
}
}
Сохранить
$ cd /home/user/wordpress
$ docker-compose up -d
$ docker-compose down
Подписаться на:
Сообщения (Atom)