Статья на Хабре
Показаны сообщения с ярлыком WWW (Вэб). Показать все сообщения
Показаны сообщения с ярлыком WWW (Вэб). Показать все сообщения
воскресенье, января 6
среда, сентября 26
Безопасность Firefox для локальных JS-скриптов
Периодически приходится открывать локально демо-страницы с JS-фреймворками типа Ext.JS или Dojo. При этом, кажется, что код на странице почему-то не хочет работать:

Но всё дело в параметре security.fileuri.strict_origin_policy, который запрещает подгрузку сторонних файлов на HTML-странице.
выставим значение параметра в false на странице настроек и обновим закладку с открытым локально HTML-файлом:


Но всё дело в параметре security.fileuri.strict_origin_policy, который запрещает подгрузку сторонних файлов на HTML-странице.
выставим значение параметра в false на странице настроек и обновим закладку с открытым локально HTML-файлом:

пятница, декабря 10
Tomcat и виртуальный хостинг. часть 2: добавление виртуального хоста
Ранее мы настроили связку Nginx+Tomcat для хостинга. Давайте теперь добавим виртуальный домен example.org
Шаг 1: настраиваем nginx
создаём файл /srv/nginx/vhost_01_example.org.conf:
Теперь вы можете выполнить команду "service nginx reload" и, открыв в браузере адрес http://example.org, увидеть домашнюю Tomcat-страницу
Шаг2: настраиваем Tomcat
правим server.xml, добавляя новые строки:
Теперь нужно настроить пользователя для менеджера виртуального хоста.
Добавим нового пользователя manager-example.org с новой одноимённой ролью в /srv/tomcat/conf/tomcat-users.xml:
Перезапускаем томкат:
Открываем в браузере адрес http://example.org/manager/html и на запрос авторизации вводим логин/пароль для пользователя manager-example.org.
На этом базовая настройка виртуального хоста example.org завершена.
Шаг 1: настраиваем nginx
создаём файл /srv/nginx/vhost_01_example.org.conf:
server { listen 80; server_name example.org *.example.org location / { proxy_pass http://127.0.0.1:8080; include /srv/nginx/proxy.conf; } }
Теперь вы можете выполнить команду "service nginx reload" и, открыв в браузере адрес http://example.org, увидеть домашнюю Tomcat-страницу
Шаг2: настраиваем Tomcat
# cd /srv/tomcat
# mkdir webapps/example.org
# sed -e 's/localhost/example\.org/g' conf/server.d/vhost-localhost.xml > conf/server.d/vhost-example.org.xml
правим server.xml, добавляя новые строки:
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE server-xml [ <!ENTITY vhost-localhost SYSTEM "server.d/vhost-localhost.xml"> <!ENTITY vhost-example.org SYSTEM "server.d/vhost-example.org.xml"> ]> ... &vhost-localhost; &vhost-example.org; </Engine> ...
Теперь нужно настроить пользователя для менеджера виртуального хоста.
Добавим нового пользователя manager-example.org с новой одноимённой ролью в /srv/tomcat/conf/tomcat-users.xml:
<role rolename="manager-example.org" />и внесём изменения в конфигурационный файл Manager-приложения:
<user username="manager-example.org" password="12345678" roles="manager-example.org" /&rt;
# cp -R webapps/localhost/manager webapps/example.org/
# cd webapps/example.org/manager/WEB-INF
# sed -i.bak 's/<role-name>manager<\/role-name>/<role-name>manager-example.org<\/role-name>/g' web.xml
Перезапускаем томкат:
# chown -R tomcat:tomcat /srv/tomcat
# service tomcat6 stop
# tail -f /srv/tomcat/logs/catalina.out ;Ждём остановки Tomcat и жмём Ctrl+C
# service tomcat6 start
Открываем в браузере адрес http://example.org/manager/html и на запрос авторизации вводим логин/пароль для пользователя manager-example.org.
На этом базовая настройка виртуального хоста example.org завершена.
Если вам пригодилась статья, то отправьте 5 рублей автору. Спасибо!
Tomcat и виртуальный хостинг. часть 1: связка Nginx + Tomcat
Рано или поздно приходишь к тому, что на сервере Tomcat хочется держать не только один сайт. можно конечно же разные сайты делить за тем же Nginx по запросам к подкаталогу "/domain-name", но правильнее будет сделать разнесение по виртуальным хостам. ещё правильнее - разнести "клиентов" ещё и по разным инстансам tomcat (чтобы они "соседей" не "завалили"), но это покажу как-нибудь в другой серии постов.
Итак, наша задача - настройка Tomcat на работу с виртуальными хостами
С чего мы начнём? с базового задела Tomcat под поставленную задачу - со связки Nginx+Tomcat (помимо плюсов самого Nginx, нам не придётся думать об уровне доступа Tomcat для прослушки 80-го порта)
Настройка производится на сервере CentOS 5.5 (но думаю, что и на других версиях не будет отличий ;) ). Так же на сервере должен быть открыт 80-й порт
Устанавливаем nginx "по умолчанию":
создаём каталог /srv/nginx и меняем ему владельца и группу на nginx (в этом каталоге мы будем хранить настройки виртуальных хостов для nginx):
правим файл /etc/nginx/conf.d/virtual.conf
создаём файл /srv/nginx/proxy.conf со следующим содержимым:
это общие настройки для всех виртуальных хостов. В последующем можно будет дописать или поправить его содержимое.
создаём хост "по-умолчанию", для этого создаём файл /srv/nginx/vhost_00_default.conf:
Теперь переходим к базовой установке и настройке Tomcat
Скачиваем и распаковываем дистрибутив Apache Tomcat (повествую на примере версии 6.x)
для запуска демона Tomcat от пользователя tomcat можно скомпилировать jsvc, но мне больше нравится нижеприведённый скрипт /etc/init.d/tomcat6:
Теперь переходим к небольшому "тюнингу" Tomcat, для дальнейшего удобства его администрирования
Для начала, поправим файл /srv/tomcat/conf/server.xml (далее просто server.xml) для работы с Nginx. Для этого найдём
Перейдём к настройке хостов.
удобнее всего править настройки хостов не выискивая их в "портянке" файла server.xml, а вынеся настройки каждого хоста в отдельный файл. Для этого произведём некоторые изменения в файле server.xml
изменяем "шапку" файла, дописав блок DOCTYPE:
создадим подкаталог server.d, в котором будут лежать конфигурационные файлы наших виртуальных хостов:
Вынесем в отдельный файл настройки для localhost... Для этого найдём в server.xml блок "<Host>...</Host>" и сохраним его в server.d/vhost-localhost.xml:
Для работы Tomcat требуется установленная на сервере Java-машина. Путь до неё прописывается в файле /srv/tomcat/bin/setenv.sh:
Следующий наш шаг - настройка каталога webapps для будущих виртуальных каталогов
и заваршающее действие:
Готово. теперь можно запускать созданный web-сервер:
Зайдите в браузере по адресу http://ваш_сервер - вы должны увидеть Tomcat-страницу по-умолчанию.
Если всё правильно настроено и вы увидели страницу Tomcat, то можно установить автозапуск для демонов:
ЗЫ: комментарии и замечания приветствуются :)
UPD: изменил немного скрипты - местами удалил "ручную" работу и описал для Tomcat 6 вместо Tomcat 7
Итак, наша задача - настройка Tomcat на работу с виртуальными хостами
С чего мы начнём? с базового задела Tomcat под поставленную задачу - со связки Nginx+Tomcat (помимо плюсов самого Nginx, нам не придётся думать об уровне доступа Tomcat для прослушки 80-го порта)
Настройка производится на сервере CentOS 5.5 (но думаю, что и на других версиях не будет отличий ;) ). Так же на сервере должен быть открыт 80-й порт
Устанавливаем nginx "по умолчанию":
# yum install nginx
создаём каталог /srv/nginx и меняем ему владельца и группу на nginx (в этом каталоге мы будем хранить настройки виртуальных хостов для nginx):
# mkdir -p /srv/nginx
# chown nginx:nginx /srv/nginx
правим файл /etc/nginx/conf.d/virtual.conf
# mv /etc/nginx/conf.d/virtual.conf /etc/nginx/conf.d/virtual.conf.orign
# echo "include /srv/nginx/vhost_*.conf;" > /etc/nginx/conf.d/virtual.conf
создаём файл /srv/nginx/proxy.conf со следующим содержимым:
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
client_max_body_size 10m;
client_body_buffer_size 128k;
proxy_connect_timeout 90;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_buffer_size 4k;
proxy_buffers 4 32k;
proxy_busy_buffers_size 64k;
proxy_temp_file_write_size 64k;
это общие настройки для всех виртуальных хостов. В последующем можно будет дописать или поправить его содержимое.
создаём хост "по-умолчанию", для этого создаём файл /srv/nginx/vhost_00_default.conf:
server { listen 80 default; location / { proxy_pass http://127.0.0.1:8080; include /srv/nginx/proxy.conf; } }
Теперь переходим к базовой установке и настройке Tomcat
Скачиваем и распаковываем дистрибутив Apache Tomcat (повествую на примере версии 6.x)
# cd /srv
# wget http://www.sai.msu.su/apache/tomcat/tomcat-6/v6.0.29/bin/apache-tomcat-6.0.29.tar.gz
# tar xvf apache-tomcat-6.0.29.tar.gz
# mv apache-tomcat-6.0.29 tomcat
# useradd -d /srv/tomcat -s "/sbin/nologin" tomcat
для запуска демона Tomcat от пользователя tomcat можно скомпилировать jsvc, но мне больше нравится нижеприведённый скрипт /etc/init.d/tomcat6:
#!/bin/sh # # /etc/init.d/tomcat6 # # This is the init script for starting up the # Jakarta Tomcat Server # # chkconfig: 234 20 80 # description: Starts and stops the Tomcat daemon # processname: tomcat # # source functions library for 'daemon' function . /etc/init.d/functions TOMCAT_HOME=/srv/tomcat TOMCAT_START=$TOMCAT_HOME/bin/startup.sh TOMCAT_STOP=$TOMCAT_HOME/bin/shutdown.sh TOMCAT_USER=tomcat start() { echo -n $"Starting Tomcat service: " daemon --user $TOMCAT_USER $TOMCAT_START RETURN_CODE=$? echo $? } stop() { echo -n $"Stopping Tomcat service: " daemon --user $TOMCAT_USER $TOMCAT_STOP RETURN_CODE=$? echo $? } status() { ps aux | grep tomcat | grep -v grep } # Handle the different input options case "$1" in start) start ;; stop) stop ;; status) status ;; *) echo $"Usage: $0 {start|stop|status}" exit 1 esac exit 0
Теперь переходим к небольшому "тюнингу" Tomcat, для дальнейшего удобства его администрирования
Для начала, поправим файл /srv/tomcat/conf/server.xml (далее просто server.xml) для работы с Nginx. Для этого найдём
<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000"redirectPort="8443" />и заменим её на
<Connector address="127.0.0.1" port="8080" protocol="HTTP/1.1" connectionTimeout="20000"redirectPort="8443" />тем самым мы укажем Tomcat, чтобы он слушал порт 8080 только локально
Перейдём к настройке хостов.
удобнее всего править настройки хостов не выискивая их в "портянке" файла server.xml, а вынеся настройки каждого хоста в отдельный файл. Для этого произведём некоторые изменения в файле server.xml
изменяем "шапку" файла, дописав блок DOCTYPE:
<?xml version='1.0' encoding='utf-8'?> <!DOCTYPE server-xml [ <!ENTITY vhost-localhost SYSTEM "server.d/vhost-localhost.xml"> ]>
создадим подкаталог server.d, в котором будут лежать конфигурационные файлы наших виртуальных хостов:
# cd /srv/tomcat/conf
# mkdir server.d
Вынесем в отдельный файл настройки для localhost... Для этого найдём в server.xml блок "<Host>...</Host>" и сохраним его в server.d/vhost-localhost.xml:
# cd /srv/tomcat/conf
# echo "<?xml version='1.0' encoding='utf-8'?>" > server.d/vhost-localhost.xml
# sed -n -e '/[[:space:]]*<Host.*/,/[[:space:]]<\/Host>/p' server.xml >> server.d/vhost-localhost.xml
# sed -i.bak -n '1h;1!H;${x;s/<Host.*<\/Host>/\&vhost-localhost;/;p}' server.xml
Для работы Tomcat требуется установленная на сервере Java-машина. Путь до неё прописывается в файле /srv/tomcat/bin/setenv.sh:
# echo "JAVA_HOME=/usr/java/default" > /srv/tomcat/bin/setenv.sh
Следующий наш шаг - настройка каталога webapps для будущих виртуальных каталогов
# cd /srv/tomcat
# sed -i 's/webapps/webapps\/localhost/' conf/server.d/vhost-localhost.xml
# mv webapps localhost
# mkdir webapps
# mv localhost webapps/
и заваршающее действие:
# chown -R tomcat:tomcat /srv/tomcat
Готово. теперь можно запускать созданный web-сервер:
# service tomcat6 start
# service nginx start
Зайдите в браузере по адресу http://ваш_сервер - вы должны увидеть Tomcat-страницу по-умолчанию.
Если всё правильно настроено и вы увидели страницу Tomcat, то можно установить автозапуск для демонов:
# chkconfig nginx on
# chkconfig --add tomcat6
# chkconfig tomcat6 on
ЗЫ: комментарии и замечания приветствуются :)
UPD: изменил немного скрипты - местами удалил "ручную" работу и описал для Tomcat 6 вместо Tomcat 7
Если вам пригодилась статья, то отправьте 5 рублей автору. Спасибо!
среда, сентября 8
а они всё прут и прут. о_О
понедельник, июля 26
скорость загрузки сайта и Google ajaxlibs
Собственно, отказался от использования Google ajaxLibs, т.к. сайты его использующие, открывались достаточно долго. задержка загрузки порядка +3-4 секунды.
Перетащил всё на собственный CDN-сервер.
Думаю ещё попробовать CDN от Yandex - сравню скорость загрузки с ним.
Перетащил всё на собственный CDN-сервер.
Думаю ещё попробовать CDN от Yandex - сравню скорость загрузки с ним.
Если вам пригодилась статья, то отправьте 5 рублей автору. Спасибо!
вторник, декабря 9
Переподключился сегодня в QIP... и...
В общем подумал, подумал и перешёл на SiM... благо он и лёгенький и модульный и кроссплатформенный! 10-15 минут для изучения интерфейсу, "заточки" под себя и снова я в сети...
----------------
Now playing on iTunes: DeeJay Acoustic - Made In Earth
via FoxyTunes
=============================малость погуглил и понял, что QIP можно забывать... ибо QIP 8070 - последняя редакция... автор пишет, что обновлений не будет... а QIP 2005 ставить - тяжёлый, зараза...
Системное сообщение
=============================
ICQ версии 5.1 больше не поддерживается. Скачайте бесплатную авторизованную версию ICQ с официального web-сайта ICQ.
=============================
System Message
=============================
ICQ version 5.1 is no longer supported. Download a free authorized ICQ version from ICQ's official website.
В общем подумал, подумал и перешёл на SiM... благо он и лёгенький и модульный и кроссплатформенный! 10-15 минут для изучения интерфейсу, "заточки" под себя и снова я в сети...
----------------
Now playing on iTunes: DeeJay Acoustic - Made In Earth
via FoxyTunes
воскресенье, декабря 7
Как убить рекламу в интернете?
здесь и далее серым пишу то, что утащил с проторов интернета.
утащено тут
---
Всем известно, что рекламы в интернете полным полно, она отвлекает внимание, съедает драгоценный трафик и просто замедляет загрузку web-страниц. Но есть хорошее решение - установить браузер Mozilla Firefox, Mozilla Flock или Mozilla SeaMonkey. Но ко всему прочему нужен еще плагин Adblock Plus + подписка(и) на бан-листы. Данный чудодейственный способ сохраняет до 30-50% трафика при просмотре веб-страниц и при этом не искажая их главного содержимого!
базовая подписка: Hackrus`s list anti-advertisement (general)
Данный бан-лист блокирует баннерные сети и контекстную рекламу.
подписаться
собственно, остальное вы можете найти по ссылке на источник...
----------------
Now playing on iTunes: l`Orange - Павел Воля - Продвинутые Города (l`Orange Cosmo remix)
via FoxyTunes
утащено тут
---
Всем известно, что рекламы в интернете полным полно, она отвлекает внимание, съедает драгоценный трафик и просто замедляет загрузку web-страниц. Но есть хорошее решение - установить браузер Mozilla Firefox, Mozilla Flock или Mozilla SeaMonkey. Но ко всему прочему нужен еще плагин Adblock Plus + подписка(и) на бан-листы. Данный чудодейственный способ сохраняет до 30-50% трафика при просмотре веб-страниц и при этом не искажая их главного содержимого!
базовая подписка: Hackrus`s list anti-advertisement (general)
Данный бан-лист блокирует баннерные сети и контекстную рекламу.
подписаться
собственно, остальное вы можете найти по ссылке на источник...
----------------
Now playing on iTunes: l`Orange - Павел Воля - Продвинутые Города (l`Orange Cosmo remix)
via FoxyTunes
суббота, ноября 29
JavaScript: Копирование в буфер
Возникла тут задачка - скопировать текст в буфер обмена.
Поковырявшись на просторах интернета было найдено пара хороших примеров...
1) копирование в буфер с использованием Flash-файла
2) копирование с использованием встроенных объектов браузера
Первый метод хорош тем, что сработает везде, где не выключена поддержка флешек и JavaScript.
Второй тем, что работает с родными объектами браузера. Но его минус (а может и плюс) в том, что в них возник запрос безопастности на доступ к выполнению кода.
В итоге "родилась" библиотека, которая использует сразу оба подхода - какой-нибудь да сработает.
скачать можно тут
выполнение очень простое:
1) файл "clipboard.swf" выкладываете в корень сайта. В противном случае нужно будет исправить путь в функции CopyToClipboardSWF
2) подключаете код к себе на страницу библиотеку
3) передаёте функции CopyToClipboard в качестве параметра текст, который вы хотите скопировать.
ЗЫ: если не имеете желания получать запросы безопастности от браузеров, то можете сразу вызывать CopyToClipboardSWF с передачей ему в качестве параметра копируемого текста.
В последующем данную библиотеку буду дописывать и переписывать... :)
UPD: работоспособность тестировалось на следующих браузерах: IE 7.0, FF 3.0.4, Opera 9.60, Google Chrome 0.4.154.25, Safari 3.2.1
----------------
Now playing on iTunes: DJ Slach & DJ Max Talker - VIP MIX
via FoxyTunes
Поковырявшись на просторах интернета было найдено пара хороших примеров...
1) копирование в буфер с использованием Flash-файла
2) копирование с использованием встроенных объектов браузера
Первый метод хорош тем, что сработает везде, где не выключена поддержка флешек и JavaScript.
Второй тем, что работает с родными объектами браузера. Но его минус (а может и плюс) в том, что в них возник запрос безопастности на доступ к выполнению кода.
В итоге "родилась" библиотека, которая использует сразу оба подхода - какой-нибудь да сработает.
скачать можно тут
выполнение очень простое:
1) файл "clipboard.swf" выкладываете в корень сайта. В противном случае нужно будет исправить путь в функции CopyToClipboardSWF
2) подключаете код к себе на страницу библиотеку
3) передаёте функции CopyToClipboard в качестве параметра текст, который вы хотите скопировать.
ЗЫ: если не имеете желания получать запросы безопастности от браузеров, то можете сразу вызывать CopyToClipboardSWF с передачей ему в качестве параметра копируемого текста.
В последующем данную библиотеку буду дописывать и переписывать... :)
UPD: работоспособность тестировалось на следующих браузерах: IE 7.0, FF 3.0.4, Opera 9.60, Google Chrome 0.4.154.25, Safari 3.2.1
----------------
Now playing on iTunes: DJ Slach & DJ Max Talker - VIP MIX
via FoxyTunes
Подписаться на:
Сообщения (Atom)