sudo vi /etc/systemd/system/swap.service
[Unit] Description=Turn on swap partition [Service] Type=oneshot Environment="SWAP_PATH=/var/vm" "SWAP_FILE=swapfile1" ExecStartPre=-/usr/bin/rm -rf ${SWAP_PATH} ExecStartPre=/usr/bin/mkdir -p ${SWAP_PATH} ExecStartPre=/usr/bin/touch ${SWAP_PATH}/${SWAP_FILE} ExecStartPre=/bin/bash -c "fallocate -l 2048m ${SWAP_PATH}/${SWAP_FILE}" ExecStartPre=/usr/bin/chmod 600 ${SWAP_PATH}/${SWAP_FILE} ExecStartPre=/usr/sbin/mkswap ${SWAP_PATH}/${SWAP_FILE} ExecStartPre=/usr/sbin/sysctl vm.swappiness=10 ExecStart=/sbin/swapon ${SWAP_PATH}/${SWAP_FILE} ExecStop=/sbin/swapoff ${SWAP_PATH}/${SWAP_FILE} ExecStopPost=-/usr/bin/rm -rf ${SWAP_PATH} RemainAfterExit=true [Install] WantedBy=multi-user.target
Environment="SWAP_PATH=/var/vm" "SWAP_FILE=swap_part1"
ExecStartPre=/bin/bash -c "fallocate -l 2048m ${SWAP_PATH}/${SWAP_FILE}"
ExecStart=/sbin/swapon ${SWAP_PATH}/${SWAP_FILE} ExecStop=/sbin/swapoff ${SWAP_PATH}/${SWAP_FILE}
sudo systemctl enable --now /etc/systemd/system/swap.service
free –hm
docker run -d -p 11211:11211 --restart=always --log-driver=syslog --name=memcached memcached
docker run -d -ti -p local_ip:3306:3306 --log-driver=syslog -v /cloud/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=PASSWORD --restart=always --name=mariadb mariadb
docker pull memcached mariadb
-v /etc/localtime:/etc/localtime
docker run -d -p 80:80 -p 443:443 -p 81:81 -v /cloud/run/php-fpm:/sock -v /cloud/etc/nginx:/etc/nginx -v /cloud/etc/letsencrypt/:/etc/letsencrypt/ --log-driver=syslog -v /cloud/data/www/:/var/www/html --restart=always --name=nginx nginx
user nginx; worker_processes 1; pid /var/run/nginx.pid; events { worker_connections 1024; use epoll; multi_accept on; } http { server_tokens off; include /etc/nginx/mime.types; default_type application/octet-stream; access_log /dev/stdout; sendfile on; sendfile_max_chunk 128k; keepalive_timeout 65; keepalive_requests 10; client_body_buffer_size 1K; client_header_buffer_size 2k; large_client_header_buffers 2 1k; client_max_body_size 32m; fastcgi_buffers 64 16K; fastcgi_buffer_size 64k; client_body_timeout 10; client_header_timeout 10; reset_timedout_connection on; send_timeout 1; tcp_nopush on; tcp_nodelay on; open_file_cache max=200000 inactive=20s; open_file_cache_valid 30s; open_file_cache_min_uses 2; open_file_cache_errors on; include /etc/nginx/sites-enabled/*.conf; } Site-0001.conf # frontend configuration section # listen based 80 http server { listen 80 default_server; server_name www.your_site.ru; location /.well-known { root /var/www/html; } return 301 https://$host$request_uri; } # listen based 80 http server { listen 80; server_name your_site.ru; location /.well-known { root /var/www/html; } return 301 https://$host$request_uri; } server { listen 443 ssl http2; server_name www.your_site.ru; location /.well-known { root /var/www/html; } ssl on; ssl_certificate /etc/letsencrypt/live/your_site.ru/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/your_site.ru/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/your_site.ru/chain.pem; return 301 https://your_site.ru$request_uri; } server { listen 443 ssl http2 default_server; server_name your_site.ru; ssl on; ssl_stapling on; ssl_certificate /etc/letsencrypt/live/your_site.ru/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/your_site.ru/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/your_site.ru/chain.pem; root /var/www/html/your_site.ru; rewrite /wp-admin$ $scheme://$host$uri/ permanent; keepalive_timeout 60 60; gzip on; gzip_comp_level 1; gzip_min_length 512; gzip_buffers 8 64k; gzip_types text/plain; gzip_proxied any; ssl_prefer_server_ciphers on; ssl_session_cache shared:ssl_session_cache:10m; ssl_session_timeout 2m; ssl_dhparam /etc/nginx/ssl/dh2048.pem; ssl_protocols TLSv1.2 TLSv1.1 TLSv1; ssl_ciphers EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA512:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:ECDH+AESGCM:ECDH+AES256:DH+AESGCM:DH+AES256:RSA+AESGCM:!aNULL:!eNULL:!LOW:!RC4:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS; add_header Strict-Transport-Security 'max-age=31536000; includeSubDomains'; location / { location = /wp-login.php { auth_basic "Restricted"; auth_basic_user_file /etc/nginx/.htpasswd/passwd; proxy_pass http://your_interal_ip:81; } location ~* /wp-admin/~^.*\$ { auth_basic "Authorization Required"; auth_basic_user_file /etc/nginx/.htpasswd/passwd; proxy_pass http://your_interal_ip:81; } proxy_pass http://your_interal_ip:6081/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto https; proxy_set_header X-Forwarded-Port 443; } } # end of frontend configuration section # backend configuration server { listen 81; root /var/www/html/your_site.ru; gzip on; gzip_comp_level 7; gzip_min_length 512; gzip_buffers 8 64k; gzip_types text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/svg+xml; gzip_proxied any; server_name your_site.ru; index index.html index.php; location / { if ($host !~ ^(your_site.ru)$ ) { return 444; } try_files $uri $uri/ /index.php?$args; error_page 404 /404.html; error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location ~ /\.ht { deny all; } location ~* /(?:uploads|files)/.*\.php$ { deny all; # deny for scripts } location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ { access_log off; log_not_found off; expires max; # cashe for static } location = /favicon.ico { log_not_found off; access_log off; } location = /robots.txt { allow all; log_not_found off; access_log off; } location = /xmlrpc.php { deny all; } #deny referer if ( $http_referer ~* (babes|forsale|girl|jewelry|love|nudit|organic|poker|porn|sex|teen) ) { return 403; } if ($http_user_agent ~* LWP::Simple|BBBike|wget) { return 403; } if ($http_user_agent ~* msnbot|scrapbot) { return 403; } } location ~ [^/]\.php(/|$) { fastcgi_split_path_info ^(.+?\.php)(/.*)$; if (!-f $document_root$fastcgi_script_name) { return 404; } include fastcgi_params; fastcgi_param HTTPS on; fastcgi_ignore_client_abort off; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix:/sock/php-fpm.sock; } }
FROM php:7-fpm RUN apt-get update \ && apt-get -y install \ libmagickwand-dev \ libmcrypt-dev \ libpng12-dev \ libjpeg62-turbo-dev \ libfreetype6-dev \ libmemcached-dev \ libicu-dev \ --no-install-recommends \ && pecl install imagick \ && docker-php-ext-enable imagick\ && curl -L -o /tmp/memcached.tar.gz "https://github.com/php-memcached-dev/php-memcached/archive/php7.tar.gz" \ && mkdir -p /usr/src/php/ext/memcached \ && tar -C /usr/src/php/ext/memcached -zxvf /tmp/memcached.tar.gz --strip 1 \ && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \ && docker-php-ext-configure memcached \ && docker-php-ext-install gd mcrypt mysqli pdo_mysql zip calendar opcache memcached exif intl sockets \ && rm -rf /tmp/* /var/cache/apk/* /var/lib/apt/lists/* \
docker create --name=php7 local/php7 docker cp php7:/usr/local/etc /cloud/etc/php-fpm
default_charset = "UTF-8" file_uploads = On max_file_uploads = 20 date.timezone = "Europe/Moscow" cgi.fix_pathinfo=1 display_errors = Off log_errors = On log_errors_max_len = 1024 html_errors = On register_globals = Off short_open_tag = Off safe_mode = Off output_buffering = Off zlib.output_compression = Off implicit_flush = Off allow_call_time_pass_reference = Off max_execution_time = 30 max_input_time = 60 max_input_vars = 10000 variables_order = “EGPCS” register_argc_argv = Off magic_quotes_gpc = Off magic_quotes_runtime = Off magic_quotes_sybase = Off session.use_cookies = 1 magic_quotes_gpc = Off; default_charset = UTF-8; memory_limit = 64M; max_execution_time = 36000; upload_max_filesize = 999M; mysql.connect_timeout = 20; session.auto_start = Off; session.use_only_cookies = On; session.use_cookies = On; session.use_trans_sid = Off; session.cookie_httponly = On; session.gc_maxlifetime = 3600; allow_url_fopen = on;
extension=imagick.so
[global] daemonize = no [www] listen = /sock/php-fpm.sock
docker run -d -v /cloud/run/php-fpm:/sock -v /cloud/etc/php-fpm/etc:/usr/local/etc -v /cloud/data/www:/var/www/html -v /cloud/log/php-fpm:/var/log/php-fpm --log-driver=syslog --restart=always --name=php7 visman/php7.1
FROM debian:jessie RUN export DEBIAN_FRONTEND=noninteractive && \ apt-get update -y -q && \ apt-get install -y -q apt-transport-https curl && \ rm -rf /var/lib/apt/lists/* RUN curl -k https://repo.varnish-cache.org/GPG-key.txt | apt-key add - && \ echo "deb https://repo.varnish-cache.org/debian/ jessie varnish-4.1" | tee -a /etc/apt/sources.list.d/varnish-cache.list && \ apt-get update -y -q && \ apt-get install -y -q gcc libjemalloc1 libedit2 && \ curl -O https://repo.varnish-cache.org/pkg/5.0.0/varnish_5.0.0-1_amd64.deb && \ dpkg -i varnish_5.0.0-1_amd64.deb &&\ rm varnish_5.0.0-1_amd64.deb && \ apt-get install -y -q varnish-agent && \ rm -rf /var/lob/apt/lists/* ADD docker-entrypoint.sh /usr/bin/entrypoint.sh ADD varnish /etc/default/varnish RUN chmod +x /usr/bin/entrypoint.sh EXPOSE 6081 6082 6085 ENTRYPOINT ["/usr/bin/entrypoint.sh"]
#!/bin/bash set -e service varnish start varnish-agent -c 6085 -H /var/www/html/varnish-dashboard/ tailf /etc/varnish/default.vcl
RELOAD_VCL=1 START=yes # Maximum number of open files (for ulimit -n) NFILES=131072 # Maximum locked memory size (for ulimit -l) # Used for locking the shared memory log in memory. If you increase log size, # you need to increase this number as well MEMLOCK=82000 DAEMON_OPTS="-a :6081 \ -T :6082 \ -f /etc/varnish/default.vcl \ -S /etc/varnish/secret \ -s malloc,256m"
server { listen 80; server_name varnish.your_site.ru; return 301 https://$host$request_uri; if ($scheme != "https") { return 301 https://$host$request_uri; } # managed by Certbot } server { listen 443 ssl http2; server_name varnish.your_site.ru; ssl on; ssl_certificate /etc/letsencrypt/live/varnish. your_site.ru/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/varnish. your_site.ru/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/varnish. your_site.ru/chain.pem; location /.well-known { root /var/www/html; } location / { proxy_pass http://interal_ip:6085; } }
docker run -d -ti -p 6082:6082 -p 6081:6081 -p 6085:6085 -v /cloud/data/www/varnish-dashboard:/var/www/html/varnish-dashboard -v /cloud/etc/varnish:/etc/varnish -v /etc/localtime:/etc/localtime --log-driver=syslog --name=varnish visman/d_varnish:5
Source: https://habr.com/ru/post/320872/
All Articles