На днях на работе настраивал себе на машине nginx в связке с апачем, обычно апача хватало, но новый проект требует быстродействия да нетривиальных вещей – поэтому было решено сразу писать под nginx некоторые вещи.
Задание состояло в том, чтоб подвеситть С++ скрипт на fastcgi для проверки прав на отдачу картинов по фиктивному пути, но об этом пока рано говорить полностью. Проблема состояла в том, что дома тоже захотелось поставить эту связку – уж больно мне понравился nginx, а апач пусть пока постоит.
Все поставил, все неплохо, а вот виртуальные хосты настраивать жжуть как «долго», да и лениво каждый раз одно и тоже писать. В общем нашел скрипт автоматического создания всего этого барaхла и модифицировал под свои цели. Собсвенно всем рекомендую:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | #!/bin/bash # Author: Geraschenko A [arturgspb.ru] echo -n "Введите имя создаваемого хоста: " read newHost # Задаем путь до root хоста (!у вас может другое) newPath="/var/www/${newHost}" # Создаем директорию mkdir "${newPath}" sudo chmod 777 $newPath # Определяем имя хоста newHost="${newHost}.localhost" #Производим запись в hosts file="/etc/hosts" b=$(cat $file) newContent="127.0.0.1 ${newHost}"$'\n'"127.0.0.1 www.${newHost}"$'\n'$b sudo bash -c "echo '${newContent}' > $file" #Добавляем сайт в sites-available apache2 и прописываем в него нужные директивы sap=/etc/apache2/sites-available/$newHost sudo touch $sap sudo chmod 777 $sap directives=" ServerName ${newHost} ServerAlias ${newHost} www.${newHost} DocumentRoot ${newPath} AllowOverride All " echo "$directives" > $sap #Включаем виртуальный хост sudo a2ensite $newHost #Включаем rewrite sudo a2enmod rewrite #Перезапускаем apache2 сервер sudo /usr/sbin/apache2ctl restart #Добавляем сайт в sites-available nginx и прописываем в него нужные директивы sap=/etc/nginx/sites-available/$newHost sudo touch $sap sudo chmod 777 $sap directives="server { listen 80; server_name ${newHost}; location / { root ${newPath}; proxy_pass http://${newHost}:8080; proxy_set_header Host \$host; proxy_set_header X-Real-IP \$remote_addr; proxy_set_header X-Forwarded-For \$remote_addr; proxy_connect_timeout 120; proxy_send_timeout 120; } }" echo "$directives">$sap # Создаем символическую ссылку на файл директив sudo ln -s /etc/nginx/sites-available/$newHost /etc/nginx/sites-enabled/$newHost # Перезапускаем сервер sudo /etc/init.d/nginx restart |
Похожие статьи:


0 Comments.