NGINX прокси менеджері арқылы SSL шифрлау мүмкіндігі бар LEMP сервері

webdevops/php-nginx:8.4 пайдаланып LEMP серверін орналастырамыз , ол қазірдің өзінде қажетті PHP кеңейтімдері мен веб-серверді қамтиды. Біз сондай-ақ NGINX прокси менеджері арқылы Let's Encrypt қолданбасынан тегін SSL қосамыз.

Сізге не қажет болады

  • Ubuntu бар бұлттық сервер
  • Docker және Docker Compose орнатылған
  • IP серверіне конфигурацияланған домен
  • 80 және 443 порттарын ашыңыз

Жоба құрылымы

Жоба құрылымын жасаңыз:

mkdir ~/lemp-docker && cd ~/lemp-docker mkdir www config Код тілі:  Bash  ( bash )

config/php.ini жасаңыз (міндетті емес):

memory_limit = 256M upload_max_filesize = 64M post_max_size = 64M display_errors = Код тілінде:  Bash  ( bash )

Келесі мазмұны бар docker-compose.yml жасаңыз

қызметтер:
   қолданба:
     сурет:  webdevops/php-nginx:8.2
     container_name:  lemp-app
     қайта іске қосу:  әрқашан
     порттар:
       -  "8081:80"
     томдар:
       -  ./www:/app
       -  ./config/php.ini:/opt/docker/etc/php/php.ini
     ортасы:
       -  WEB_DOC=
       UM  PHP_DISPLAY_ERRORS=1
     желі:
       -  lemp-net

   db:
     image:  mariadb:10.5
     container_name:  lemp-db
     қайта іске қосу:  әрқашан
     орта:
       MYSQL_ROOT_PASSWORD:  rootpass
       MYSQL_DATABASE:  mydb
       MYSQL_USERYSORDSW:  mydb
       MYSQL_USERROSSW:  myussQ
     :
       myuser  db_data:/var/lib/mysql
     желілері:
       -  lemp-net

   phpmyadmin:
     сурет:  phpmyadmin/phpmyadmin
     container_name:  lemp-pma
     көрсету:
       -  "80"
     ортасы:
       PMA_HOST:  lemp-db
        MYSQL_ROOT_PASSWORD

   :  
      - rootpass
     желілері :
     n  jc21/nginx-proxy-manager:соңғы
     контейнер_атауы:  nginx-proxy-manager
     қайта іске қосу:  әрқашан
     порттар:
       -  "80:80"
       -  "443:443"
       -  "81:81"
     томдар:
       -  npm_data:/data
       -  npm_letsencrypt:/data - npm_letsencrypt
     
      :  -cryptlets :/etc

 .
   db_data:
   npm_data:
   npm_letsencrypt:

 желілер:
   lemp-net:
     драйвер:  көпір Код тілі:  YAML  ( yaml )

MYSQL_ROOT_PASSWORD , MYSQL_DATABASE , MYSQL_USER және MYSQL_PASSWORD айнымалы мәндерін қажеттіліктеріңізге сәйкес реттеуге болады. Бұл параметрлер дерекқорды бастапқы инициализациялау үшін пайдаланылады. Оларды бөлек сақтағыңыз келсе, .env docker-compose.yml ішіндегі ${MYSQL_PASSWORD} синтаксисін .

Контейнерлерді іске қосу

Контейнерлерді пәрменмен іске қосыңыз:

docker compose up -d Код тілі:  Bash  ( bash )

NGINX Proxy Manager басқару тақтасына http://SERVER_IP:81 .

Әдепкі авторизация:

  • Жүйеге кіру: admin@example.com
  • Құпия сөз: өзгерту

Домен және SSL орнату

NPM интерфейсінде жаңа прокси хост қосыңыз:

  • Домен: example.com
  • Хост атауы/IP жіберу: lemp-app
  • Алға порт: 80
  • SSL қосу → Жаңа сертификатты сұрау
  • SSL мәжбүрлеу → Қосу

Сақталғаннан кейін сайт автоматты түрде берілген Let's Encrypt сертификатымен https://example.com

phpMyAdmin кіру

phpMyAdmin қол жеткізуді конфигурациялау үшін бөлек прокси-хостты қосыңыз:

  • Домен: db.example.com
  • Алға хост атауы/IP: lemp-pma
  • Алға порт: 80
  • SSL қосу → Жаңа сертификатты сұрау
  • SSL мәжбүрлеу → Қосу

Осыдан кейін https://db.example.com myuser мен mypass арқылы жүйеге кіріңіз немесе root .

CMS орнату

CMS орнату файлдарын (мысалы, WordPress) www . Орнатуды бастау үшін https://example.com сайтын ашыңыз

Дерекқорға қосылу үшін келесі параметрлерді пайдаланыңыз:

  • Жүргізуші: lemp-db
  • Деректер қорының атауы: mydb
  • Қолданушы: myuser
  • Құпия сөз: mypass

Орнатуға кедергі келтірмеу үшін бұрын жасалған index.php

Тоқтату және жою

Барлық контейнерлерді тоқтату:

 код тілін  құрастырады  Bash  ( bash )

Томдармен жою:

docker compose down -v Код тілі:  Bash  ( bash )

Unihost.kz сайтынан бұлттық серверге (VPS) тапсырыс берген кезде біздің қолдау көрсету тобы жоғарыда аталғандардың барлығын шеше алады Біз сізге ортаны орналастыруға, Docker конфигурациялауға және SSL қосуға көмектесеміз.