Установка и настройка Nginx на Debian 9

Nginx является свободный высоко-производительный HTTP-сервер с открытым исходным кодом. Он широко используется для балансировки нагрузки, почтовый прокси-сервер, общий TCP/UDP прокси-сервер, он предоставляет конфигурацию обратного прокси-сервера, потокового мультимедиа и многого другого. Он предназначен для эффективного обслуживания от низкого до высокого трафика веб-сайтов, и он является очень популярной альтернативой веб-сервера Apache. Nginx приводит в движение много нагруженных сайтов, таких как Яндекс, DropBox, Netflix, WordPress.

В этой статье мы покажем вам, как установить и настроить Nginx на Debian. Установка Nginx на сервере Debian является очень простой задачей, и если вы внимательно следовали всем инструкциям, приведенным ниже, вы должны иметь работоспособный сервер Nginx в течении менее чем 10 минут. Это руководство было написано и протестировано на Debian 9 VPS.



1. Вход с помощью SSH и обновление системы

Прежде чем мы начнем, вам необходимо войти на сервер через SSH с правами суперпользователя:

ssh root@IP_ADDRESS -p PORT_NUMBER

 

и заменить «IP_ADDRESS» и «PORT_NUMBER» на фактический IP-адрес сервера и номером порта SSH.

Давайте также убедимся, что ваш сервер Debian является обновленный, выполнив следующую команду:

apt-get update && sudo apt-get upgrade

 

Вот пример вывода, который вы должны получить:

Reading package lists... Done

Building dependency tree

Reading state information... Done

Calculating upgrade... Done

The following packages will be upgraded:

libperl5.24 perl perl-base perl-modules-5.24

4 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

Need to get 7813 kB of archives.

After this operation, 9216 B of additional disk space will be used.

Do you want to continue? [Y/n] Y

Get:1 http://security.debian.org stretch/updates/main amd64 libperl5.24 amd64 5.24.1-3+deb9u3 [3527 kB]

Get:2 http://security.debian.org stretch/updates/main amd64 perl amd64 5.24.1-3+deb9u3 [219 kB]

Get:3 http://security.debian.org stretch/updates/main amd64 perl-base amd64 5.24.1-3+deb9u3 [1344 kB]

Get:4 http://security.debian.org stretch/updates/main amd64 perl-modules-5.24 all 5.24.1-3+deb9u3 [2723 kB]

Fetched 7813 kB in 0s (12.0 MB/s)

(Reading database ... 36668 files and directories currently installed.)

Preparing to unpack .../libperl5.24_5.24.1-3+deb9u3_amd64.deb ...

Unpacking libperl5.24:amd64 (5.24.1-3+deb9u3) over (5.24.1-3+deb9u2) ...

Preparing to unpack .../perl_5.24.1-3+deb9u3_amd64.deb ...

Unpacking perl (5.24.1-3+deb9u3) over (5.24.1-3+deb9u2) ...

Preparing to unpack .../perl-base_5.24.1-3+deb9u3_amd64.deb ...

Unpacking perl-base (5.24.1-3+deb9u3) over (5.24.1-3+deb9u2) ...

Setting up perl-base (5.24.1-3+deb9u3) ...

(Reading database ... 36668 files and directories currently installed.)

Preparing to unpack .../perl-modules-5.24_5.24.1-3+deb9u3_all.deb ...

Unpacking perl-modules-5.24 (5.24.1-3+deb9u3) over (5.24.1-3+deb9u2) ...

Setting up perl-modules-5.24 (5.24.1-3+deb9u3) ...

Setting up libperl5.24:amd64 (5.24.1-3+deb9u3) ...

Setting up perl (5.24.1-3+deb9u3) ...

Processing triggers for libc-bin (2.24-11+deb9u3) ...

Processing triggers for man-db (2.7.6.1-2) ...

2. Установка Nginx на Debian 9

Вы можете установить Nginx из репозитория Debian. Просто запустите следующую команду, чтобы установить Nginx на сервере:

apt-get install nginx

 

Вы получите следующий результат:

Reading package lists... Done

Building dependency tree

Reading state information... Done

The following additional packages will be installed:

libnginx-mod-http-auth-pam libnginx-mod-http-dav-ext libnginx-mod-http-echo libnginx-mod-http-geoip libnginx-mod-http-image-filter libnginx-mod-http-subs-filter

libnginx-mod-http-upstream-fair libnginx-mod-http-xslt-filter libnginx-mod-mail libnginx-mod-stream nginx-common nginx-full

Suggested packages:

fcgiwrap nginx-doc

The following NEW packages will be installed:

libnginx-mod-http-auth-pam libnginx-mod-http-dav-ext libnginx-mod-http-echo libnginx-mod-http-geoip libnginx-mod-http-image-filter libnginx-mod-http-subs-filter

libnginx-mod-http-upstream-fair libnginx-mod-http-xslt-filter libnginx-mod-mail libnginx-mod-stream nginx nginx-common nginx-full

0 upgraded, 13 newly installed, 0 to remove and 0 not upgraded.

Need to get 0 B/1585 kB of archives.

After this operation, 2865 kB of additional disk space will be used.

Do you want to continue? [Y/n] y

 

После завершения установки Nginx запускаться автоматически.

Для того, чтобы убедиться , что Nginx действительно работает на вашем сервере, вы можете использовать следующую команду:

systemctl status nginx

● nginx.service - A high performance web server and a reverse proxy server

Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)

Active: active (running) since Sat 2018-04-14 11:44:12 CDT; 4min 10s ago

Docs: man:nginx(8)

Process: 6412 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)

Process: 6409 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)

Main PID: 6413 (nginx)

CGroup: /system.slice/nginx.service

├─6413 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;

├─6414 nginx: worker process

└─6415 nginx: worker process

3. Управление сервером Nginx

Есть несколько полезных команд, которые вы можете использовать для управления службой Nginx.

Во-первых, давайте удостоверимся, что ваш сервер Nginx запускается автоматически после перезагрузки сервера:

systemctl enable nginx

Synchronizing state of nginx.service with SysV service script with /lib/systemd/systemd-sysv-install.

Executing: /lib/systemd/systemd-sysv-install enable nginx

 

В случае, если вы хотите отключить автоматический запуск после перезагрузки сервера, вы можете использовать следующую команду:

systemctl disable nginx

 

Для того, чтобы проверить состояние службы Nginx, выполните следующую команду:

systemctl status nginx

 

Чтобы запустить службу Nginx, вы можете использовать:

systemctl start nginx

 

Чтобы остановить службу Nginx, вы можете использовать:

systemctl stop nginx

 

Вы можете перезапустить службу Nginx с командой:

systemctl restart nginx

4. Настройка веб-сервера Nginx

По умолчанию, установка Nginx создает корневой каталог веб — сервера по следующему адресу /var/www/html/.

Файл конфигурации по умолчанию для этого находится в следующем месте: /etc/nginx/sites-enabled/default/.

Основной файл конфигурации Nginx расположен в /etc/nginx/nginx.conf

В этой статье мы покажем вам, как создать новый блок сервера для нового домена mydomain.ru и установить его корень документа в /var/www/mydomain.ru

Во-первых, нам нужно будет создать корневой каталог документов с помощью следующей команды:

mkdir -p /var/www/mydomain.ru

 

Затем создайте файл index.html внутри этого каталога и добавmnt следующее содержание:

nano /var/www/mydomain.ru/index.html

<!DOCTYPE html>

<html>

<head>

 <title>mydomain.ru</title>

</head>

<body>

 <h1>Добро пожаловать на mydomain.ru</h1>

 <p>Это тестовый блок сервера mydomain.ru.</p>

</body>

</html>

 

Далее, давайте создадим новый блок сервера по следующему адресу:

nano /etc/nginx/sites-available/mydomain.ru.conf

 

И добавьте следующее содержание:

server {

       listen 80;

       listen [::]:80;



       server_name mydomain.ru www.mydomain.ru;



       root /var/www/mydomain.ru;

       index index.html;



       location / {

               try_files $uri $uri/ =404;

       }

}

 

Сохраните файл. Для того, чтобы активировать блок сервера необходимо создать символьную ссылку с помощью следующей команды:

ln -s /etc/nginx/sites-available/mydomain.ru.conf /etc/nginx/sites-enabled/mydomain.ru.conf

5. Проверьте установку Nginx

Проверка конфигурации Nginx и перезагрузка Nginx:

nginx -t

systemctl restart nginx

 

Если все настроено правильно, как указано, то вы должны быть в состоянии открыть MYDOMAIN.RU в вашем браузере и увидеть блок сервера mydomain.ru, который вы создали ранее.

Вот и все. Был успешно установлен и настроен Nginx на сервере Debian 9.

 



2018-04-20T15:43:05
Настройка Debian

Почему новичкам следует изучать Python

Первые шаги в программировании и компьютерной науке могут быть немного удручающими. Какой язык лучше взять? Какую IDE стоит использовать? И что более важно, почему?

На мой взгляд, самое главное, что вам нужно сделать в программировании — это выбрать правильный инструмент для работы. Вторая по важности вещь — выбрать инструмент, с которым вам наиболее удобно. Если бы я сказал, что вам подойдёт C++, потому что это самый быстрый язык, это не будет хорошим советом, если вы никогда не имели дело с управлением памятью или не писали свои структуры данных. Возможно, вы бы продирались сквозь него и получили плохой опыт.

Python, с другой стороны, решает многие проблемы за вас. Он работает заметно медленнее, чем C++, зато на нём гораздо проще писать. И как новичка вас вряд ли заботит его скорость, вы просто хотите сделать что-нибудь крутое и изучить основные понятия.

Итак, первое решение, которое вам нужно принять — какой язык вы хотите выучить. Почему из сотен языков новичку следует изучать Python? Тому есть несколько причин…

Простой синтаксис

Часть философии языка (как показано в PEP 20, “Дзен Python”), содержит следующее:

  • Красивое лучше, чем уродливое.
  • Простое лучше, чем сложное.
  • Читаемость имеет значение.

Так что, как можно видеть, Python создавался с самого начала из соображений простоты. Это было глотком свежего воздуха, поскольку господствовали тогда языки C и C++, не очень дружелюбные к пользователю.

Давайте сравним синтаксис языков Python и C++ на простом примере ‘Hello, World’:

C++:

#include stdout

int main() {  
    std::cout << "Hello, world!n";
}

Python:

print('Hello, world!')  

Разница довольно значительна, хотя мы всего лишь распечатали строку в консоли. Теперь для большей наглядности сравним его с PHP:

Python:

x=1  
while x <=5:  
    print 'x is less than 5:' + str(x)
    x += 1

PHP:

<?php  
$x=1;
while($x<=5) {  
    echo "x is less than 5: $x";
    x++;
}
?>

Python пытается избавиться от лишнего и требует только то, что действительно нужно, и именно поэтому он создавался без фигурных скобок и точек с запятой на концах строк. Взгляните на разницу (последнее сравнение синтаксиса, я обещаю):

Python:

def foo(x):  
    if x == 0:
        bar()
        baz()
    else:
        qux(x)
        foo(x - 1)

C:

void foo(int x)  
{
    if (x == 0) {
        bar();
        baz();
    } else {
        qux(x);
        foo(x - 1);
    }
}

На самом деле я не пытаюсь очернять другие языки. Все остальные упомянутые здесь языки замечательны и имеют массу применений, но они не столь пригодны для новичков.

С ключевыми словами is, not и with, хорошо написанный скрипт на Python можно читать почти как английский текст. Это особенно верно для условий в цикле if , которые бывает сложно прочесть, когда они разрастаются:

a = None
b = None

if a is not None and b is not None:
    print 'Foo!'
else:
    print 'Bar!'

Условное выражение выше гораздо яснее, чем обычное if ((a != null) && (b != null)).

Легко установить и начать работать

Многие новички, пытаясь изучить язык, сдаются ещё до того, как напишут первую строчку кода. В некоторых языках, таких как Java, вам нужно установить и запустить сложные директории проекта и потом компилировать код.

С Python, всё, что вам нужно — это загрузить и запустить установщик и выполнить python <your-script>.py. Не нужно никаких сложных структур каталогов.

Хотя это всё реже встречается в современных языках, компиляция кода может быть сложнее, чем вы думали (впрочем, это не обязательно плохо). Просто посмотрите на этот маленький makefile для C:

CC = gcc  
CFLAGS  = -g -Wall

TARGET = myprog

all: $(TARGET)

$(TARGET): $(TARGET).c
    $(CC) $(CFLAGS) -o $(TARGET) $(TARGET).c

clean:  
    $(RM) $(TARGET)

Замечу, что это простой makefile. Этому я бы предпочёл Python в любом случае.

Python позволяет вам изучить понятия программирования перед тем, как углубляться в детали того, как высокоуровневый код превращается в машинный, который вам безусловно следует знать, но не когда вы начинаете.

Огромная стандартная библиотека

Одно из наиболее знаменитых преимуществ Python — стандартная библиотека, и это не просто так. Она содержит более 300 модулей (в версии 3.5), от простейшего HTTP сервера (http.server) до баз данных (sqlite3), и сжатых библиотек (gzip).

Бóльшая часть того, вам захочется делать на Python, уже сделано за вас в стандартной библиотеке. Так что вы можете создавать крутые вещи без больших усилий, например приложения для машинного обучения. Мне постоянно приходится напоминать себе, что надо поискать модули, чтобы избежать переписывания кода самому. Поэтому перед тем, как вы попробуете написать библиотеку разбора адресов url, сначала проверьте, существует ли она!

Главное достоинство того, что код был написан до вас — знание того, что он тщательно протестирован и не содержит ошибок. Зачастую он был давно доступен и использовался крупнейшими компаниями (о них мы поговорим позже), так что вы знаете, через что он прошёл.

Сообщество

Большое, активное сообщество означает две вещи:

  • Много самописных библиотек
  • Много людей, готовых вам помочь

Возможно, это одни из наиболее важных причин, почему вам лучше использовать Python, независимо от уровня ваших навыков. Это значит, что в вашем распоряжении множество документации, руководств и примеров кода, чтобы с их помощью лучше изучить язык.

Python постоянно занимает высокие места в различных рейтингах, таких как Redmonk (#4) и Tiobe (#4). И что более важно, язык очень востребован работодателями. На графике ниже можно видеть (представлен Indeed), что Python — второй по этому показателю язык, что даёт вам возможность применить свои навыки программирования в работе.

Почему новичкам следует изучать Python

Легко отлаживать

Один из самых сложных навыков для новичка — это отладка. Именно здесь вы по-настоящему узнаёте язык и то, как он работает изнутри. Иногда у вас будут простые ошибки типа синтаксических, в других случаях они будут проявляться в 1 из 100 запусков вашей программы. Тут вам придётся ближе познакомиться со своим отладчиком и основными ошибками в языке. К счастью для вас, Python располагает хорошей системой обработки и отчётов об ошибках, чего нет у многих других языков.

Например, если что-то пойдёт на так в C++ (разыменование неправильного указателя, обращение к элементу вне массива и так далее), вам повезёт, если упадёт программа. В таком случае вы знаете, что где-то в ней есть проблема, но едва ли знаете где (а отладчики не всегда просты и понятны новичкам). Если вам не повезло и программа не упала (или падает в случайное время), вы получите непонятные и не очень очевидные ошибки.

Что не умеет делать Python

Окей, я не думал, что правильно написать статью про Python и не упомянуть о недостатках. Как и многие другие языки, он вовсе не совершенен, есть ряд вещей, для которых он неприменим.

Как я упоминал несколько раз, Python медленный. Точнее, очень медленный по сравнению с компилируемыми языками наподобие C, C++ или Go. Дело в том, что есть несколько особенностей, которые замедляют язык, вроде динамической типизации или сборщика мусора. Таким образом, не нужно использовать чистый Python для обработки больших массивов данных, вместо этого вам нужно добавить код на C++.

Из-за сборки мусора в Python’s его нельзя применять для систем реального времени. Причина в том, что она запускается в непредсказуемое время, так что вы не можете знать, займёт ли ваша функция 1 мс или 100 мс. Тут получается слишком много неизвестных. Вместо него для программ реального времени вам потребуется язык с ручным управлением памятью, такой как C или C++.

Поскольку потребляет много системных ресурсов и содержит интерпретатор, обычно можно (я говорю ‘обычно’, потому что есть другие варианты) запускать код на Python только под операционной системой (никаких микроконтроллеров и встроенных систем).

Вывод

Есть несколько причин, почему Python хорош для начинающих. Существует множество ресурсов для начинающих, так что не нужно много времени, чтобы начать программировать на Python.

Какой язык вы изучали первым и почему? Сообщите в комментариях!

Сообщение Почему новичкам следует изучать Python появились сначала на GitJournal.

Google и Facebook запретят рекламу криптовалют?

Думаю ни для кого не секрет, что Google и Facebook планируют полностью отказаться от рекламы криптовалют. К слову, Facebook уже отказался насколько мне известно. Хотелось бы знать мнение людей на эту тему. Почему столь крупные компании делают нечто подобное? Бояться конкуренции или проблема в другом? Интересно будет послушать ваши предположения.

 

Google Search Navigator — расширенная клавиатура для навигации в Google поиске

Мы можем легко найти изображение кота в Интернете без необходимости искать «как найти изображение кота в Интернете» с помощью Google. В погоне за повышением навыков поиска в Google (!), Сегодня мы наткнулись на расширение браузера под названием “Google Search Navigator”. Он предлагает некоторые сочетания клавиш для улучшения поиска Google. Google уже представил экспериментальное Сочетание клавиш для навигации результатов поиска. К сожалению, похоже, что Google удалил эту функцию как в 2017-07-31. К счастью, разработчик создал это расширение для улучшения навигации с помощью клавиатуры в поиске Google. Этот плагин является свободным и открытым исходным кодом. Таким образом, вы можете получить код свободно по ссылке в GitHub, указанной в конце данного руководства.

В этом руководстве мы рассмотрим, как использовать расширение “Google Search Navigator”, чтобы улучшить свой опыт поиска в Google с помощью некоторых клавиш клавиатуры.

 

Расширенная навигация клавиатуры в Google Поиске

При написании этого руководства плагин Google Search navigator доступен для веб-браузеров Google Chrome и Mozilla Firefox. Установите его из следующих ссылок в зависимости от используемого вами браузера.

  • Для Google Chrome / Chromium: Установите его из Интернет — магазина Chrome.
  • Для Mozilla Firefox: Установите из дополнений для Firefox.

После установки, вы увидите его значок в панели инструментов вашего браузера.

Google Search Navigator - расширенная клавиатура для навигации в Google поиске

 

Теперь вы можете эффективно использовать поиск на Google с помощью привязок. Теперь позвольте нам показать вам несколько примеров, чтобы вы могли лучше понять его. Например, мы идем искать какую нибудь книгу.

Заметили ли вы стрелку в первом результате, отмеченным красным цветом прямоугольником? Да! Плагин Google Search Navigator автоматически размещает кнопку со стрелкой в результате поиска. Для того, чтобы перейти к следующему результату, просто нажмите клавишу стрелку ВНИЗ или J на клавиатуре. Для перехода к предыдущему результату, нажмите стрелку UP или k. Чтобы вернуться в окно поиска, нажмите клавишу / (косая черта вперед рядом с клавишей SHIFT) клавиши ESC и измените условие поиска, если хотите.

Чтобы открыть результат поиска в текущем окне, нажмите кнопку ENTER или Space. В некоторых случаях вы можете захотеть перейти к более одному результату поиска. Если это так, нажмите Ctrl + Enter или SUPER key+Enter (клавиша Windows) или Ctrl + Space, чтобы открыть выбранный результат на фоновой вкладки. И нажмите Ctrl+Shift+Enter или Super key+Shift+Enter или Ctrl+Shift+Space, чтобы открыть выбранный результат в новом окне/вкладке.

Будь по умолчанию, Google покажет вам все результаты для вашего поиска. Вы можете перейти от всех результатов к другим результатам, поиск изображений, видео, результаты новостей. Например, для отображения результатов только изображений, нажмите клавишу i на клавиатуре. Теперь вы будете видеть только результаты изображений.

Аналогично, для отображения результатов видео нажмите v, для карт нажмите m, для новостей n.

Вот полный список поддерживаемых в настоящее время сочетания клавиш.

  • (стрелка вниз) или j: Выбрать следующий результат поиска ..
  • (стрелка вверх) или к: Выбрать предыдущий предыдущий результат.
  • / Или клавиша ESC: Фокус на поле ввода поиска.
  • ENTER или Space: Переход к выбранному результату.
  • Ctrl + Enter или SUPER key + Enter (клавиша Windows) или Ctrl + Space: Открыть выбранный результат на фоне вкладки.
  • Ctrl + Shift + Enter или SUPER key + Shift + Enter или Ctrl + Shift + Space: Открыть выбранный результат в новом окне / вкладке.
  • (стрелка влево) или h: Переход к предыдущей странице результатов поиска.
  • (Стрелка вправо) или l: Переход к следующей странице результатов поиска.
  • или s: Перейдите на вкладку Все (вкладку поиска по умолчанию).
  • a: Перейти на вкладку Изображения.
  • v: Перейти на вкладку Видео.
  • m: Перейти на вкладку Карты.
  • n: Перейти на вкладку Новости.

Просто распечатайте эти горячие клавиши и положите их на свой стол или сделайте скриншот и установите в качестве обоев. Таким образом, Вы можете избежать посещения каждый раз этой страницы.

Вы можете изменить настройки в соответствии с вашими желаниями. Для этого щелкните правой кнопкой мыши на значке плагина Google Search Navigator на панели инструментов и выбрать параметры. Вы увидите следующее окно. Измените сочетание клавиш, как вы хотите, и нажмите кнопку Сохранить, чтобы применить изменения.

Google Search Navigator - расширенная клавиатура для навигации в Google поиске

 

Вывод

Мы не знаем, почему Google отказался от этой функции. нам кажется она очень полезной функцией. Мы можем легко просматривать результаты поиска, не двигая руки прочь от клавиатуры и этот плагин немного увеличил свою производительность на поиске Google.

И это все. Надеюсь это вам поможет.



2018-04-20T09:41:29
Программное обеспечение

Самое главное в криптовалюте цена?

Смотрю что многие обращают внимание исключительно на стоимость криптовалюты. Действительно ли большое значение имеет именно отметка цена или есть и другие важные критерии от которых нужно отталкиваться при выборе криптовалюты для вложений?

 

Как убрать живот и выпрямить спину

Японский метод, чтобы убрать живот и выпрямить спину – минус 4 см за 5 минут в день


С распространением сидячего образа жизни у многих наблюдаются проблемы с позвоночником. Эту простую и эффективную технику коррекции фигуры разработал японский врач Фукуцудзи около 10 лет назад. Метод помогает избавиться от дряблого живота и возвращает скелет в естественное положение. Читать