Hello and welcome to #root.bg!
Here you can find tutorials about linux, networks and their firewall, games and fun, as well as hobbies – rollers, drones and many more.
Here you can find tutorials about linux, networks and their firewall, games and fun, as well as hobbies – rollers, drones and many more.
Николай Николов Работа ext3, ext4, fsck, migration, proxmox 0
Здравейте,
Тази сутрин трябваше да направя live migration от ext3 към ext4 на един proxmox сървър, и в този пост искам да споделя преживяното:
Започнах процедурата като спазвах стъпките от https://debian-administration.org/article/643/Migrating_a_live_system_from_ext3_to_ext4_filesystem , но излезе следният проблем:
Първо при umount /dev/pve/data
излезе :
umount: /var/lib/vz: target is busy (In some cases useful info about processes that use the device is found by lsof(8) or fuser(1).)
Използвах флаг-а -l
при umount
и продължих по стъпките.
При fsck.ext4 -yfD /dev/pve/data
обаче възникна същия проблем :
moon:~# fsck.ext4 -yfD /dev/pve/data e2fsck 1.42.12 (29-Aug-2014) /dev/pve/data is in use. e2fsck: Cannot continue, aborting.
За да разбера какво караше /dev/pve/data да е все още монтиран, трябваше да използвам командата fuser -m /dev/pve/data
И така разбрах следното :
moon:/var/lib# fuser -m /dev/pve/data /dev/dm-2: 11657 11685 17558 22012 24655 26116 29357 34728 35034 35694 42784 46330 47645
Това бяха pid-овете на процесите задържащи /dev/pve/data .. спрях ги един по един и успях да продължа миграцията както следва :
moon:~# tune2fs -O extents,uninit_bg,dir_index /dev/pve/data tune2fs 1.42.12 (29-Aug-2014) moon:~# fsck.ext4 -yfD /dev/pve/data e2fsck 1.42.12 (29-Aug-2014) Pass 1: Checking inodes, blocks, and sizes Pass 2: Checking directory structure Pass 3: Checking directory connectivity Pass 3A: Optimizing directories Pass 4: Checking reference counts Pass 5: Checking group summary information /dev/pve/data: ***** FILE SYSTEM WAS MODIFIED ***** /dev/pve/data: 770019/482590720 files (0.3% non-contiguous), 1543788056/3860725760 blocks
Накрая монтирах на ново /dev/pve/data към /var/lib/vz и вече имах успешно мигрирана ext4 файлова система! Нито един файл не се затри през цялата операция! 🙂
Това е!
Николай Николов Howto convert, mysql, null, select, timezone 0
Привет,
Днес се сблъсках с един странен проблем при конвертиране на timezone в MySQL.
Проблемът беше следния : mysql select convert_tz returns null
mysql> SELECT CONVERT_TZ('2016-11-01 18:00:00', 'Europe/London', 'UTC'); +-----------------------------------------------------------+ | CONVERT_TZ('2016-11-01 18:00:00', 'Europe/London', 'UTC') | +-----------------------------------------------------------+ | NULL | +-----------------------------------------------------------+ 1 row in set (0.00 sec)
Това го дава въпреки настроената правилно timezone-а на сървъра :
mysql> SELECT @@global.time_zone, @@session.time_zone; +--------------------+---------------------+ | @@global.time_zone | @@session.time_zone | +--------------------+---------------------+ | SYSTEM | SYSTEM | +--------------------+---------------------+ 1 row in set (0.00 sec)
Вместо NULL обаче трябва да вади валидна дата и час.
Този проблем се оправя с командата : mysql_tzinfo_to_sql , или накратко така :
mysql_tzinfo_to_sql /usr/share/zoneinfo | mysql -u root mysql
И вече резултата от селекта изглежда така:
mysql> SELECT CONVERT_TZ('2016-11-01 18:00:00', 'Europe/London', 'UTC'); +-----------------------------------------------------------+ | CONVERT_TZ('2016-11-01 18:00:00', 'Europe/London', 'UTC') | +-----------------------------------------------------------+ | 2016-11-01 18:00:00 | +-----------------------------------------------------------+ 1 row in set (0.00 sec)
Това е!
Николай Николов Howto blog, nginx, reverse proxy, seo, wordpress 0
Привет,
Наскоро ми се наложи да търся решение за използване на Nginx като reverse proxy със субдомейни.
Идеята беше следната :
Имаме сайт : testsait.com
който се намира на един сървър с nginx и wordpress блог на адрес : blog.testsait.com
който се намира на друг сървър.
Целта е да направим testsait.com/blog
да се отваря директно през blog.testsait.com
.
Всичко това е с цел по-добро SEO, или поне нашите SEO гурута смятат така 😀 хаха.
Ето и начина по който се прави това:
Във виртуалният хост на сайта ни testsait.com
се добавя следното :
location /blog/ { rewrite ^/blog/(.*) /$1 break; 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 $scheme; proxy_read_timeout 90; proxy_pass http://blog.testsait.com/; proxy_redirect http://blog.testsait.com/ /blog/; }
Този блок се добавя преди: location /
Така направено всичко ще работи, освен wp-login.php
. Причината е заради location ~ \.php$ {
За това този location
блок се заменя със следния :
location ~* ^((?!\/blog)(.+)\.php)$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; fastcgi_max_temp_file_size 0; client_max_body_size 32M; fastcgi_buffer_size 128k; fastcgi_buffers 256 4k; fastcgi_busy_buffers_size 256k; fastcgi_temp_file_write_size 256k; fastcgi_read_timeout 240; #add_header X-Robots-Tag "noindex, nofollow, nosnippet, noarchive"; fastcgi_param SCRIPT_FILENAME /var/www/testsait.com/$fastcgi_script_name; }
Така всички php заявки ще бъват насочени към php-fpm socket-а освен /blog/.
Резултата е работещ testsait.com/blog
и testsait.com/blog/wp-login.php
.
Това е!
Николай Николов Работа discourse, haproxy, nginx 0
Привет,
Днес един от съфорумците на root.bg CopyCat репортна проблем с логването във форума.
Оказа се, че при последната версия на discourse (v1.7.0.beta6 +23) е задължително да се добави :
proxy_set_header X-Forwarded-Proto https;
когато се използва reverse proxy. Повече инфо тук.
При мен схемата обаче не е с nginx за reverse proxy, а haproxy. Съответно нещата изглеждат ето така :
backend forums.root.bg #redirect scheme https if { hdr(Host) -i git.root.bg } !{ ssl_fc } cookie SERVERID insert indirect balance leastconn reqadd X-Forwarded-Proto:\ https option httpclose server forums 192.168.168.92:80 cookie forums-container check inter 2000 rise 2 fall 5
Това е!
ПС. Благодаря за репорт-а колега CopyCat!