форум vBSupport.ru > vBulletin > All versions of vBulletin
Register Меню vBsupport Изображения Files Manager О рекламе Today's Posts Search
  • Родная гавань
  • Блок РКН снят
  • Premoderation
  • For English speaking users
  • Каталог Фрилансеров
  • If you want to buy some product or script
  • Администраторам
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей

Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
for English speaking users:
You may be surprised with restriction of access to the attachments of the forum. The reason is the recent change in vbsupport.org strategy:

- users with reputation < 10 belong to "simple_users" users' group
- if your reputation > 10 then administrator (kerk, Luvilla) can decide to move you into an "improved" group, but only manually

Main idea is to increase motivation of community members to share their ideas and willingness to support to each other. You may write an article for the subject where you are good enough, you may answer questions, you may share vbulletin.com/org content with vbsupport.org users, receiving "thanks" equal your reputation points. We should not only consume, we should produce something.

- you may:
* increase your reputation (doing something useful for another members of community) and being improved
* purchase temporary access to the improved category:
10 $ for 3 months. - this group can download attachments, reputation/posts do not matter.
20 $ for 3 months. - this group can download attachments, reputation/posts do not matter + adds eliminated + Inbox capacity increased + files manager increased permissions.

Please contact kerk or Luvilla regarding payments.

Important!:
- if your reputation will become less then 0, you will be moved into "simple_users" users' group automatically.*
*for temporary groups (pre-paid for 3 months) reputation/posts do not matter.
Уважаемые пользователи!

На форуме открыт новый раздел "Каталог фрилансеров"

и отдельный раздел для платных заказов "Куплю/Закажу"

Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже:
Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота.
Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
 
 
 
 
BTC
СпециалистЪ
 
BTC's Avatar
Lightbulb Делаем vBulletin быстрее посредством CDN (Content Delivery Network)
9

Приветствую всех, не так давно наткнулся на одну отличную статью, кстати удивлен, почему ее до сих пор здесь нет.
Суть такова, В статье наглядно показано, как можно устроить раздачу статического контента и настроить для этого внешний CDN сервер.
Перевода статьи не будет, будет сразу оригинал, т.к. если вы знаете что такое CDN (Content Delivery Network) и зачем он вашему форуму, то и перевод вам ни к чему.
Лично для меня, технические статьи, связанные с настройкой сервера, лучше воспринимаются на английском языке, т.к. многие мегапереводчики пытаются переводить и консольные команды

Итак, что нам нужно?
  1. Определиться, нужен ли нам CDN и готовы ли мы пожертвовать автоматическим сохранением таблиц CSS в файл.
  2. Подыскать надежного CDN провадера\хостера в гугле.
  3. Иметь представление о настройках ДНС, кофигах апача, да и о консоли вообще. + небольшие знания админки воблы.

Поехали..
The last time I wrote about CDN, I wrote about how to configure CDN for wordpress to speed up your wordpress blog to display content to users faster and more efficiently. However, a few regular readers like to know how to configure the Amazon CDN or other CDN network to use with Vbulletin forum software. In this quick tutorial, I will explains how to configure Vbulletin, Apache/Lighttpd webserver, Bind dns server to use a CDN to distribute your common files such as css, js, user uploaded files and lighten load on your web server.

Our Sample Forum Setup
  1. Forum URL : http://nixcraft.in/ - This is hosted on your own server using Apache, Lighttpd, or Nginx.
  2. Origin Pull URL : http://cdn-origin.nixcraft.in/ - This is hosted on your own server. You need to configure your web server, vbulletin and dns server to use this. This is called as "Origin Pull Host" which is a CDN method by which content is pulled from your web server.
  3. CDN URL : http://cdn.nixcraft.in/ - This is a cdn url hosted by your CDN provider such as Amazon. This url always point to an edge server via proprietary DNS hacks. cdn.nixcraft.in must be set as CNAME records which will point to domain names of CDN server.
  4. CDN DNS CNAME : cdn.nixcraft.in.example.com - example.com is your CDN provider. This is must be set as CNAME for cdn.nixcraft.in


Step # 1: Purchase CDN Service

As I said earlier the cost varies between CDN providers. Check CDN service providers website for more information. Next, you need to use service providers "control panel" to configure an "Origin Pull Host" for each domain. In other words configure cdn.nixcraft.in in origin pull mode. The control panel will also provide your an option to setup CDN dns CNAME. You need to use same CNAME in step # 2. Once the configuration is active and the CNAME is resolving, calls to cdn.nixcraft.in will be cached from cdn-origin.nixcraft.in.

Step # 2: Update Your DNS Server

I'm assuming that you are using BIND dns server edit your zone file and add entry as follows (you can skip this step and use your ISP's dns hosting providers control panel to setup CNAME and origin host):

Code:
; CDN CNAME mapping for cdn.nixcraft.in
cdn                 3660       IN CNAME cdn.nixcraft.in.example.com.
; Your cdn-origin url (note nixcraft.in is also hosted on same server IP 123.1.2.3)
cdn-origin        3600       IN A 123.1.2.3
Save and close the file. Reload named:
Quote:
# rndc reload && tail -f /var/log/messages
To keep your configuration simple use the same web server for origin pull domain and main domain i.e. host both cdn-origin.nixcraft.in and nixcraft.in on same web server. This allows you to directly upload and map files to the CDN server.

Step # 3: Configure Origin Pull Web Server

You need to configure cdn-origin.nixcraft.in as follows:
  1. Origin pull DocumentRoot: /home/httpd/cdn-origin.nixcraft.in - All your .css, .js and uploaded files are hosted here.
  2. Server Forum DocumentRoot: /home/httpd/nixcraft.in - All your vbulletin files are hosted here.
  3. MaxAge: Set cache-lifetime headers for static files for cdn network.
  4. Etags: An ETag (entity tag) is part of HTTP, the protocol for the World Wide Web. It is a response header that may be returned by an HTTP/1.1 compliant web server and is used to determine change in content at a given URL. When a new HTTP response contains the same ETag as an older HTTP response, the client can conclude that the content is the same without further downloading.

Sample Apache Configuration

Code:
<VirtualHost cdn-origin.nixcraft.in >
	ServerAdmin webmaster@nixcraft.in
	DocumentRoot /home/httpd/cdn-origin.nixcraft.in
	ServerName files.nixcraft.in
	ServerAlias file.nixcraft.in
	ErrorLog /var/logs/httpd/cdn-error_log
	CustomLog /var/logs/httpd/cdn-access_log common
 
	# Files in this directory will be cached for 1 week only.
	# After 1 week, CDN server will check if the contents has been modified or not.
	# If not modified, Apache will send 304 "Not Modified" header
	<Directory "/userimages">
		Header set Cache-Control "max-age=604800, must-revalidate"
	</Directory>
 
	# Disable ETag as we are on cluster Apache server
	<Directory "/pdfs">
		Header unset ETag
		FileETag None
	</Directory>
 
	# Do not cache
	<Directory "/patches">
		Header Set Cache-Control "max-age=0, no-store"
	</Directory>
</VirtualHost>

Sample Lighttpd Configuration

Code:
# Configure ETags
etag.use-inode = "enable"
etag.use-mtime = "enable"
etag.use-size = "enable"
static-file.etags = "enable"
 
###### CDN FILES via WordPress Upload ##############
$HTTP["host"]  == "cdn-origin.nixcraft.in"{
        server.document-root = "/home/httpd/cdn-origin.nixcraft.in"
        accesslog.filename         = "/var/log/lighttpd/cdn.access.log"
	#  Set max age
        $HTTP["url"] =~ "^/" {
            expire.url = ( "" => "access 60 days" )
        }
}
Adjust documentroot as per your setup.

Step # 4: Create Required Directories

You need to configure files for cdn-origin.nixcraft.in:
Code:
# mkdir -p /home/httpd/cdn-origin.nixcraft.in
# cd /home/httpd/cdn-origin.nixcraft.in
Next, soft link your .css, .js, images, clientscripts files against original forum documentroot (i.e. /home/httpd/nixcraft.in/) as follows:
Code:
# ln -s ../nixcraft.in/clear.gif .
# ln -s ../nixcraft.in/clientscript/ .
# ln -s ../nixcraft.in/customavatars/ .
# ln -s ../nixcraft.in/customprofilepics/ .
# ln -s ../nixcraft.in/images/ .
# ln -s ../nixcraft.in/signaturepics/ .
Again, feel free to adjust paths according to your setup. Test your new cdn urls:
Code:
http://cdn.nixcraft.in/clientscript/vbulletin_important.css

Step # 5: Configure Vbulletin To Use a CDN Server
You need to edit your vbulletin style. Open admincp by visiting http://nixcraft.in/admincp/ > Select Styles & Templates > Replacement Variable Manager:


Fig.01: Vbulletin Editing Styles And Templates

Click on [Add New Replacement Variable] link and set it as follows:
  • Set Search for Text to href="clientscript
  • Set Replace with Text to href="http://cdn.nixcraft.in/clientscript

Sample outputs:

Fig.02: Vbulletin Adding Replacement Variable For CDN

You need to repeat this step for images, javascript and other shared media as follows:

Avatars & Pictures - Storage Type

Visit Avatars > Storage Type and set them as follows to match your above CDN rules by moving all of them to file systems:

Avatars are currently being served from the filesystem at ./customavatars
Profile pictures are currently being served from the filesystem at ./customprofilepics
Signature pictures are currently being served from the filesystem at ./signaturepics

How Do I Test Images And Other Media Files Are Cached Or Not By CDN?

Use curl to test HTTP headers (look for Etags, max-age and Expires headers):
Code:
$ curl -I 'http://cdn.nixcraft.in/clientscript/vbulletin_important.css?v=385'
$ curl -I http://cdn.nixcraft.in/customavatars/avatarx_y.gif
Conclusion

The forum home page loading (rendering) time went from 8.5 seconds to 2.2 seconds and average thread loading time went from 14.3 seconds to 5 seconds:


Fig.03 Speed Improvements With CDN

Источник: _http://www.cyberciti.biz/tips/vbulletin-cdn-content-delivery-network-configuration.html
В будущем, если все-таки будут те, кому не понятен анг. язык, может и переведу по просьбам.
В общем-то все
Если появятся вопросы по реализации, обращайтесь, постараюсь помочь.
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
Smalesh
В Черном списке
Default
5

Есть еще один интересный способ выноса статики на cdn средствами nginx без необходимости вмешательства в движок (не всегда есть возможность в чем-то ковыряться и переделывать/переписывать). Это модуль http_substitutions_filter для nginx, по ссылке есть и примеры.
 
 
tays
Эксперт
 
tays's Avatar
Default
1

Количество статики, которое будет раздаваться таким образом, очень мало по отношению ко всему отдаваемому сервером контенту.
Nginx прекрасно справляется к кэшированием такой статики без какого-либо существенного влияния на нагрузку сервера.
Кроме того, у старых посетителей эта статика кэшируется локально в их браузерах, поэтому такая кухня с CDN имеет смысл только при резких наплывах на сайт большого количества новых пользователей. И опять таки nginx должен прекрасно справиться.

Вот если бы на cdn сделать хранение вложений VB, то это было бы интересно.
 
 
BTC
СпециалистЪ
 
BTC's Avatar
Default
0

Quote:
Originally Posted by eska View Post
Количество статики, которое будет раздаваться таким образом, очень мало по отношению ко всему отдаваемому сервером контенту.
Nginx прекрасно справляется к кэшированием такой статики без какого-либо существенного влияния на нагрузку сервера.
Кроме того, у старых посетителей эта статика кэшируется локально в их браузерах, поэтому такая кухня с CDN имеет смысл только при резких наплывах на сайт большого количества новых пользователей. И опять таки nginx должен прекрасно справиться.
Вот если бы на cdn сделать хранение вложений VB, то это было бы интересно.
К примеру, JS либы, а если на форуме от дбтеч много установлено, весят порядка нескольких мегабайтов + лого, цсс, изображения, кнопки и т.д. Обычно весь стиль весит около 1-4 мегабайт, т.е. в комплексе, если пользователь полазит по нескольким страничкам, где у него прогрузятся все элементы форума, то это вызовет огромный траффик с сервера + довольно таки тяжелые страницы, инет до сих пор не у всех быстрый + мобильный инет сейчас популярен.

CDN раздает контент статический, по идее, как задумано, с серверов, расположенных рядом с конечным пользователем, т.е. прогрузка статики будет идти с другого рядом расположенного сервера, что будет большим плюсом.
 
 
Smalesh
В Черном списке
Default
1

Quote:
Originally Posted by eska View Post
Вот если бы на cdn сделать хранение вложений VB, то это было бы интересно.
Именно аттачей - можно, но если разворачивать свой CDN. А вот если картинки c imagehosting вынести на внешний CDN (пробовал selectel и свой CDN) реально:
  • http_substitutions_filter меняет ссылки в постах (а то штатно скрипт керка так не умеет, а править файлы с каждым обновлением скрипта лениво)
  • rsync выносит картинки на внешний хост, запуск по крону.
  • nginx по tru проверяет, есть ли картинка в хранилище, если нет - тянет с оригинального хоста
Профит)
 
 
tays
Эксперт
 
tays's Avatar
Default
0

Quote:
Originally Posted by Smalesh View Post
Именно аттачей - можно, но если разворачивать свой CDN.
А конкретнее, с учетом того, что вложения отдаются VB через php?
Quote:
Originally Posted by BTC View Post
CDN раздает контент статический, по идее, как задумано, с серверов, расположенных рядом с конечным пользователем, т.е. прогрузка статики будет идти с другого рядом расположенного сервера, что будет большим плюсом.
я это хорошо понимаю Поэтому и отказался в свое время от идеи использования CDN для такой статики VB. Причины я описал выше.
Возможно мой пример не показательный т.к. я не использую продукты от ДБТех совсем, т.е. абсолютно )
 
 
Smalesh
В Черном списке
Default
2

Quote:
Originally Posted by eska View Post
А конкретнее, с учетом того, что вложения отдаются VB через php?
Переводим раздачу аттачей на X-Accel-Redirect, это позволит вынести локейшен с файлами куда угодно. Это ключевое, остальное дело техники.
 
 
madbadjack
Эксперт
 
madbadjack's Avatar
Default
0

Quote:
Originally Posted by eska View Post
Количество статики, которое будет раздаваться таким образом, очень мало по отношению ко всему отдаваемому сервером контенту.
Nginx прекрасно справляется к кэшированием такой статики без какого-либо существенного влияния на нагрузку сервера.
Лучше и не скажешь. При серфинге моего форума в 70-80 чел. в "прямом эфире, в мин. времени" (+ есть еще 5 проектов, где тоже нагрузка существует), я не вижу никаких тормозов. Надо просто грамотно настроить сервер. А CDN-серверов даже на территории РФ мало (очень мало), что говорить про страны СНГ? И в чем прикол? Это актуально для "Забурорья" + 100к посетителей в день.

madbadjack добавил 22.04.2015 в 16:21
Quote:
расположенных рядом с конечным пользователем
Ключевая причина отказа для бывшего СССР.

Last edited by madbadjack : 04-22-2015 at 05:21 PM. Reason: Добавлено сообщение
 
 
Smalesh
В Черном списке
Default
0

Quote:
Originally Posted by madbadjack View Post
Это актуально для "Забурорья" + 100к посетителей в день.
Все относительно и зависит посещалки и объема статического контента. Иногда выгодней вынести статику на относительно дешевый CDN, чем докупать дисковое пространство на основном сервере.
 
 
madbadjack
Эксперт
 
madbadjack's Avatar
Default
0

Quote:
Originally Posted by Smalesh View Post
Иногда выгодней вынести статику на относительно дешевый CDN, чем докупать дисковое пространство на основном сервере.
Где это на пространстве пост-союза дешевые CDN? По мне, так при наличии здравого смыла и рук, проще иметь сервер с достаточным объемом дискового пространства + грамотной настройкой. И не парится со сторонними вариантами. Ну вот за исключением бэкапов. Легко настроить хранение бэкапов на дешевом селектеле (хранилище), а это масса дискового места (ну в моем случае).
 

Tags
cdn, content delivery network, статика


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 05:43 PM.


Powered by vBulletin® Version vBSupport Edition
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.