Как поменять имя компьютера в ubuntu. Что делать если не меняется имя компьютера? Однократное изменения имени hostname

На данный момент самую большую популярность набрали два веб-сервера. Это Apache и Ngnix. У каждого из них есть свои плюсы и минусы. Apache был разработан еще в 1995 году и при его разработке учитывались не все возможные потребности пользователей, он потребляет много памяти и ресурсов системы, зато он прост в настройке. Nginx был разработан чуть позже в 2002 году уже учитывая ошибки Apache и ориентируясь на максимальную производительность.

Мы не будем подробно вникать в плюсы и минусы этих обоих веб-серверов. У каждого из них своя область применения. В этой инструкции будет рассмотрена установка Nginx Ubuntu 16.04. Хотя я буду говорить об Ubuntu 16.04, все действия подойдут и для других дистрибутивов. Настройка Nginx везде одинакова, только команда установки отличается.

Первым делом нужно установить сам веб-сервер в систему. Программа есть в официальных репозиториях, но ее версия уже немного устарела, поэтому если хотите самую новую версию, нужно добавить PPA:

sudo apt-add-repository ppa:nginx/stable

Сейчас в официальных репозиториях доступна версия 1.10.0, а в стабильной PPA уже доступна 1.10.1. Если для вас версия не нужна можно обойтись и без PPA. Дальше обновите списки пакетов из репозиториев:

И устанавливаем ngnix:

sudo apt install nginx

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

sudo systemctl enable nginx

Если вы уже сейчас откроете браузер, то увидите работающий nginx, но нам предстоит его еще настроить.

Настройка Nginx Ubuntu

Настройка Nginx Ubuntu намного сложнее чем Apache. Здесь мы не будем рассматривать все опции и возможности программы, а поговорим только об основном. Есть различные конфигурации, в которых Nginx используется в качестве прокси сервера, а основной сервер Apache, но нас это интересовать не будет. Нам нужна установка Nginx как самостоятельного веб-сервера.

Настройки Nginx сильно отличаются здесь есть только один основной файл конфигурации и файлы для виртуальных хостов. Настройка из каждой директории, как в Apache не поддерживается.

  • /etc/nginx/nginx.conf - главный файл конфигурации
  • /etc/nginx/sites-available/* - файлы конфигурации для виртуальных хостов, проще говоря для каждого сайта.
  • /etc/nginx/sites-enabled/* - файлы конфигурации активированных сайтов.

На самом деле файлы конфигурации для виртуальных хостов читаются только из директории sites-enabled, но здесь содержаться ссылки на sites-available. Такая система была придумана, чтобы дать возможность отключать на время те или иные сайты, не стирая их конфигурацию. Все остальные файлы содержат только объявления переменных и стандартные настройки, которые изменять не нужно. Что же касается nginx.conf, то в него включаются все файлы из sites-enables, а поэтому они могут содержать все точно такие же инструкции. А теперь давайте рассмотрим главный файл конфигурации:

sudo vi /etc/nginx/nginx.conf

Как видите файл разделен на секции. Общая структура такова:

глобальные опции
events {}
http{
server {
location{}
}
server {}
}
mail {}

  • глобальные опции отвечают за работу всей программы.
  • events - эта секция содержит настройки для работы с сетью.
  • http - содержит настройки веб-сервера. Должна содержать секцию servier для тонкой настройки каждого сайта.
  • server - в этой секции содержится настройка каждого размещенного на веб-сервере сайта.
  • location - секция location может находиться только внутри секции server и содержит настройки только для определенного запроса.
  • mail - содержит настройки почтового прокси.

Перед тем как перейти к опциям, нужно сказать еще пару слов о синтаксисе строки в конфигурационном файле. Он выглядит вот так:

параметр значение дополнительное_значение... ;

Строка должна обязательно заканчиваться ";", а все открытые скобки { должны быть закрыты.

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

  • user - пользователь, от имени которого будет работать программа.
  • worker_processes - устанавливает сколько процессов нужно запускать для параллелизации работы программы, нужно запускать не больше процессов, чем у вас есть ядер. Можно установить параметр auto и тогда программа определит это число сама.
  • pid = файл pid программы.
  • worker_rlimit_nofile - указывает максимальное количество файлов, которые может открыть программа. Рассчитывается как worker_processes * worker_connections* 2.

С глобальными опциями закончили, их было не так много и они не такие интереснее. Куда интереснее в плане оптимизации опции с секции events:

  • worker_connections - количество соединений, которые программа может обрабатывать одновременно на одном процессе. Если умножить worker_process на этот параметр, то мы получим максимальное количество пользователей, которые могут подключиться к серверу одновременно. Рекомендуется устанавливать значение от 1024 до 4048.
  • multi_accept - разрешить принимать много подключений одновременно, установите параметр on или off.
  • use - способ работы с сетевым стеком. По умолчанию используется poll, но для Linux эффективнее использовать epoll.
  • sendfile - использовать метод отправки данных sendfile. Значение on.
  • tcp_nodelay, tcp_nopush - отправлять заголовки и начало файла одним пакетом. Значение on.
  • keepalive_timeout - таймаут ожидания, перед тем как keepalive соединение будет разорвано, по умолчанию 65, но можно уменьшить до 10 секунд.
  • keepalive_requests - максимальное количество keepalive соединений от одного клиента, рекомендовано 100.
  • reset_timedout_connection - разрывать соединения после таймаута. Значение on.
  • open_file_cache - кэшировать информацию об открытых файлах. Строчка настройки выглядит вот так: open_file_cache max=200000 inactive=20s; max - максимальное количество файлов в кэше, время кэширования.
  • open_file_cache_valid - указывает по истечении какого времени нужно удалить информацию из кэша. Например: open_file_cache_valid 30s;
  • open_file_cache_min_uses - кэшировать информацию о файлах, которые были открыты как минимум указанное количество раз.
  • open_file_cache_errors - кэшировать информацию об отсутствующих файлах, значение on.

Основные параметры рассмотрели. Эти настройки помогут вам получить большую производительность от nginx. Секцию server и location мы рассмотрим в настройке виртуальных хостов.

Настройка сжатия Gzip

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

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

  • gzip_min_length - минимальная длина страницы в байтах, при которой нужно использовать сжатие, например, 1000 (1 кб)
  • gzip_proxied - нужно ли сжимать проксированые запросы, any говорит, что нужно сжимать все.
  • gzip_types - типы файлов, которые нужно сжимать, например: text/plain application/xml application/x-javascript text/javascript text/css text/json;
  • gzip_disable "msie6" - в IE 6 сжатие не поддерживается, поэтому отключаем.
  • gzip_comp_level - уровень сжатия, доступны варианты от 1 до 10. 1 - минимальное, 10 - максимальное сжатие.

Настройка виртуальных хостов

Как вы знаете, на сервере может размещаться несколько сайтов. Все запросы приходят на ip сервера, а nginx уже определяет на основе домена какой контент нужно выдать. Для того чтобы nginx знал что к какому домену относится нужно настроить виртуальные хосты. Каждый хост принято размещать в отдельном файле. Настройка хоста находится в секции server, но поскольку все файлы из sites-enabled импортируются в секцию http, то логика структуры конфигурационного файла не нарушается.

Рассмотрим пример настройки:

vi /etc/nginx/sites-enabled/сайт.conf

  • listen 80 - указывает, что нужно ожидать подключения на порту 80, может также содержать опцию default-server , которая означает, что этот домен будет открывается если домен не был задан в запросе.
  • root /var/www/html - директория, в которой находятся файлы сайта.
  • index index.html - страница, которая будет открываться по умолчанию.
  • server_name - доменное имя сайта.
  • access_log - файл для записи лога запросов к серверу, может использоваться как глобально в секции http, так и для определенного типа файлов в location.
  • error_log - лог ошибок веб-сервера, может принимать дополнительный параметр, указывающий подробность лога. warn - максимум, crit - только критические ошибки.

Это все основные настройки виртуального хоста, после них он уже будет работать. Но тут есть еще секция location, которая позволяет настроить поведение сервера для определенных директорий и файлов. Синтаксис location такой:

location адрес {}

В качестве адреса может использоваться как прямой запрос относительно корня сервера, так и регулярные выражения. Для использования регулярных выражений перед ним ставится символ "~". Примеры рассмотрим ниже, а пока рассмотрим возможные директивы:

  • allow - разрешить доступ к местоположению для пользователей, all - всех, также можно указать ip или подсеть.
  • deny - запретить доступ к местоположению, all - для всех.
  • try-files - пытается открыть файлы в определенном порядке, открывает первый обнаруженный файл. Например, такая конструкция: $uri $uri/index.html $uri.html =404; сначала пытается открыть $uri, затем index.html, если не найден $uri.html, и аж потом, если ни одного из предложных файлов не существует, выдает ошибку 404.
  • expires - задает время кэширования браузером отданного элемента, например, 1d - один день, 2h - два часа, 30s - 30 секунд.

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

Не выполнять логирование для favicon:

location = /favicon.ico {
log_not_found off;
access_log off;
}

Запретить доступ к файлам, начинающимся с точки:

location ~ /\. {
deny all;
}

Кэшировать обычные файлы на 90 дней:

location ~* ^.+\.(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
access_log off; log_not_found off; expires 90d;

Связка nginx, php-fpm, php-apc позволяет ускорить работу сайта при правильной настройке по сравнению с apache и снизить нагрузку на сервер. Особенно это актуально при настройке работы сайтов с большим количеством посещений. Это сочетание компонентов в последнее время становится все более популярным, но настройка при этом достаточно несложная и делается быстро. Давайте посмотрим пример настройки на Debian’e. Настроим nginx с кэшем + php-fpm + php-apc.

Для начала вспомним, что это за компоненты. Nginx — это быстрый и гибкий веб-сервер, который к тому же позволяет использовать кеширование. Php-fpm — это PHP FastCGI Process Manager, менеджер процессов FastCGI для PHP. FastCGI — это бинарный протокол клиент-серверного взаимодействия, позволяющий обрабатывать запросы многопоточно, в отличие от однопоточного CGI. А php-apc — это Alternative PHP Cache, свободный фреймворк для кеширования байт-кода PHP в памяти, что в разы может ускорить выполнение PHP, при неоднократном использовании кода, естественно. Таким образом, ускорение должно быть в нескольких местах. Первое — кэш nginx’а, второе — более быстрая отдача статики при помощи nginx’а по сравнению с apache, третье — кэширование байт-кода PHP, четвертое — более быстрое исполнение кода php при помощи php-fpm по сравнению со связкой apache + mod_php5.

Установка пакетов

Устанавливаем пакеты:

Apt-get install nginx php5-fpm php-apc php5-mysql

Всё необходимое установится по зависимостям

Настройка nginx

После установки пакетов необходимо задать настройки для nginx. Создаем файл настроек nginx для нашего сайта, назовем его «site»

Touch /etc/nginx/sites-available/site

В файл запишем следующее:

Server { # Слушаем 80 порт по IPv4 listen 0.0.0.0:80; # Название сайта (доменное имя) server_name site; # Индексный файл index index.php; # Корневая директория сайта root /var/www/site; # Запрещаем доступ к файлам.htaccess и.htpasswd location ~ /\.ht { deny all; } # Отдача статики location ~ \.(jpg|jpeg|ico|gif|css){ # Отключаем записи об отдаче статических файлов # Это поможет снизить количество операций записи на диск access_log off; expires max; root /var/www/site; } location ~ \.php { include /etc/nginx/fastcgi_params; fastcgi_pass unix:/var/run/php-fpm-site; fastcgi_index index.php; # Включаем кэш nginx, подключаем зону my-cache proxy_cache my-cache; # Таймауты хранения страниц в кэше в зависимости # от ответа сервера. 200 и 302 - 60 минут, 404 - 1 минута proxy_cache_valid 200 302 60m; proxy_cache_valid 404 1m; # Директория для временного хранения proxy_temp_path /var/cache/nginx/tmp; } }

Ln -s /etc/nginx/sites-available/site /etc/nginx/sites-enabled

В файл /etc/nginx/nginx.conf надо добавить кэш, который мы уже записали для использования. В начало секции http вставляем следующую строчку:

Proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my-cache:8m max_size=128m inactive=600m;

Эта строчка означает следующее: директория для хранения кэша — /var/cache/nginx. levels — уровни кэширования 1:2, это уровни вложенности директорий в директории для хранения кэша. Параметр keys_zone определяет название и объем зоны кэша (зон может быть несколько). Зона размером 1 мегабайт может хранить 8000 ключей. Параметр max_size определяет максимальный объем кэша, когда кэш достигнет этого объема, то старые файлы из кэша будут удаляться, чтобы освободить место. Если данные не будут запрошены из кэша в течение времени, указанного в параметре inactive (в нашем случае 600 минут), то они будут удалены из кэша. Если параметр inactive не указан, по умолчанию время составляет 10 минут.

Настройка php-fpm

Настройки php-fpm находятся в директории /etc/php5/fpm. В этой директории есть поддиректория pool.d, в которой хранятся файлы для работы с сайтами. Нам нужно создать файл для нашего сайта. Назовем его site.conf

Touch /etc/php5/fpm/pool.d/site.conf

В этот файл записываем следующее:

# Сокет-файл для обмена данными с nginx listen = /var/run/php-fpm-site.sock # Максимально доступное в системе количество соединений listen.backlog = -1 # Владелец сокета и группа владения listen.owner = www-data listen.group = www-data # Права, устанавливаемые при создании сокета listen.mode = 660 user = www-data group = www-data # Количество процессов будет контролироваться динамически pm = dynamic pm.max_children = 30 pm.start_servers = 2 pm.min_spare_servers = 2 pm.max_spare_servers = 5 pm.max_requests = 50 env = site env = /usr/local/bin:/usr/bin:/bin env = /tmp env = /tmp env = /tmp

Теперь можно запускать php-fpm командой

Service php5-fpm start

И после этого так же запустить nginx

Service nginx start

Давайте создадим директорию /var/www/site, если она еще не создана:

Mkdir -p /var/www/site

А в этой директории создадим файл /var/www/site/index.php со следующим содержимым:

Теперь в браузере откроем наш сервер по доменному имени. Например, «http://site». Должна открыться страница с информацией о сервере. Там же перечислены все модули, которые используются. В этом списке должен присутствовать модуль apc, и его статус должен быть «Enabled».

Настройка php-apc

Конфигурационный файл apc находится по следующему пути: /etc/php/fpm/conf.d/20-apc.ini

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

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

Добрый день!

Да, на мой взгляд, Nginx в несколько раз быстрее сервера Apache. Некоторые возразят - ведь Apache можно оптимизировать и он тоже станет быстрым. Это правда, но, не надо забывать, что и Nginx можно очень сильно разогнать. Подробно про оптимизацию я обязательно напишу отдельную статью.

Немного теории о Nginx + php-fpm

В веб-сервере Apache php является подключаемым модулем, такая связка работает медленно и потребляет много ресурсов. Из-за этой неудачной архитектуры, Apache обычно не может обработать более 200-300 запросов в секунду даже на очень мощном сервере. В Nginx же применена другая архитектура - сам веб-сервер Nginx обрабатывает только запросы на статику (картинки, css и прочее), а выполнение php отдает другому программному серверу - php-fpm. Php-fpm (FastCGI Process Manager) - это полностью самостоятельное программное обеспечение, его можно установить на одном сервере с Nginx (для небольших проектов), либо вынести на отдельный сервер. Большие проекты обычно обслуживают по несколько серверов с Nginx, php-fpm и базами данных.

Заменяя сервер Apache на Nginx + php-fpm, вы сможете ускорить обработку запросов пользователей и сильно сэкономить на "железе". Веб проект с посещаемостью до 10000 уникальных посетителей в день вполне сможет жить на самом дешевом виртуальном сервере от DigitalOcean за 5$ в месяц. Кстати, если вы перейдете по этой ссылке - DigitalOcean , вы получите 10$ при регистрации, а это 2 месяца использования виртуального сервера. Никаких дополнительных условий при этом там нет.

Но перейдем к делу. Я буду описывать процесс установки и настройки на примере CentOS 6.x, но он не сильно будет отличаться и для других дистрибутивов Linux.

Установка Nginx:

  • /var/run/php5-fpm.sock уже должен присутствовать на сервере? в ubuntu 16.04 не нашел такого файла в /var/run
  • 1. Установка репозитария Nginx: в стандартных дистрибутивах Linux по умолчанию нет дистрибутива Nginx, поэтому добавим его в систему.

    vi /etc/yum.repos.d/nginx.repo


    name=nginx repo
    baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
    gpgcheck=0
    enabled=1

    Далее нажмите ":wq" и Enter для сохранения и выхода. Все, теперь Nginx доступен для автоматической установки через менеджер пакетов yum. Если вы используете другой дистрибутив Linux - перейдите на для получения инструкций именно для вашей системы.

    2. Установка Nginx из репозитария: теперь просто выполните команду установки.

    Установка php-fpm:

    Php-fpm доступен по всех современных дистрибутивах по умолчанию, поэтому просто выполните установку:

    При этом будут установлен сам сервер и все вспомогательные пакеты. Если что-то не получается, можно собрать php-fpm из исходников самостоятельно, для подробных инструкций перейдите сюда .

    Настройка и запуск Nginx + php-fpm:

    1. Начнем с php-fpm: откройте файл конфигурации

    vi /etc/php-fpm.d/www.conf

    и пропишите там работу через сокет (так будет работать быстрее):

    listen = /var/run/php5-fpm.sock

    измените существующую строчку "listen =" или добавьте новую и удалите старую.

    2. Теперь перейдем к Nginx: создайте файл конфигурации для своего первого сайта (site1 замените на название сайта, хотя будет работать и так)

    vi /etc/nginx/conf.d/site1.conf

    Ниже приведена минимальная конфигурация, можете просто ее скопировать. Все что надо заменить, выделено красным. В данной конфигурации настроена отдача статических файлов и доступ к одному php-файлу - index.php. Все современные CMS запускаются одним файлом, поэтому такая конфигурация подойдет для большинства задач. Если вам надо запускать другие php-файлы, пропишите их отдельно. В данной конфигурации файлы сайта надо положить в папку /home/mysite/public_html/

    server {
    listen [ ip адрес сервера] :80;
    server_name сайт ;
    resolver 8.8.8.8;
    error_log /var/log/nginx/сайт _error.log warn;
    root /home/сайт /public_html;
    access_log /var/log/nginx/сайт -access.log;
    charset utf-8;
    index index.php;
    location ~ .*(gif|jpg|jpeg|png|ico|swf|txt|pdf|doc|docx|exe|xls|xlsx|strings|zip|rar|7z)$ {
    expires 1y;
    }

    Location ~ .*(html|htm|js|css)$ {
    expires 1y;
    }

    location ~ ^/index.php {
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_param SCRIPT_FILENAME /home/сайт /public_html/index.php;
    include /etc/nginx/fastcgi_params;
    fastcgi_param SCRIPT_NAME /index.php;
    }

    Теперь положите файлы вашего первого сайта в папку /home/site1 /public_html/ и мы готовы к запуску.

    3. Запуск nginx + php-fpm:

    service nginx start

    service php-fpm start

    Если вы все сделали правильно и нигде не ошиблись, результат будет такой:

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

    Я всегда рад помочь!

    В этом простом и кратком руководстве вы узнаете, как изменить имя компьютера в Ubuntu 17.04.

    Давайте узнаем, как изменить имя компьютера в Ubuntu и других дистрибутивах

    Имя по умолчанию устанавливается при установке Ubuntu. Вы можете легко изменить его на все, что угодно, на рабочем столе и сервере, отредактировав файлы хостов. Ниже показано, как это сделать:

    1. Нажмите комбинацию клавиш Ctrl+Alt+T на клавиатуре, чтобы открыть терминал . Когда он откроется, запустите следующую команду:

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

    2. Чтобы изменить имя навсегда, запустите команду для редактирования файлов хоста:

    sudo gedit /etc/hostname /etc/hosts

    Для сервера Ubuntu без GUI запустите sudo vi/etc/hostname и sudo vi/etc/hosts и отредактируйте их один за другим.

    В обоих файлах измените имя на то, что вы хотите, и сохраните их.

    Что делать если не меняется имя компьютера?

    Что делать в ситуации, когда вы поменяли имя компьютера, а после перезагрузки хост, название восстанавливается и становится все как было, например, становится каким-то там MrUbuntu-PC, то, скорее всего, виновата утилита NetworkManager . Думаю, вы знаете что это за программа. Утилита было создана для управления сетевыми соединениями в Linux. Конечно она сохраняет в себе такую информацию, как имя хоста. Ведь это нужно для быстрого определения устройства в сети.

    Здесь правильным будет решение либо удалить эту утилиту, либо просто изменить имя хоста Ubuntu с помощью того же NetworkManager. Для этого нужно сделать следующее:

    $ sudo vi /etc/NetworkManager/NetworkManager.conf

    И добавьте в файл такие строки:


    hostname=имя_компьютера

    Готово! Это приведет к тому, что имя хоста будет присвоено вашему новому имени после перезапуска. Теперь после ребута системы, NetworkManager поменяет имя хоста Ubuntu на правильное и после этого больше проблем с этим не возникнет.

    Почему это лучше делать через терминал?

    Ubuntu пока что еще не предоставляет графический интерфейс для этого.

    Этот процесс также будет работать на Linux Mint и других дистрибутивах на базе Debian. Другие дистрибутивы Linux — например, Fedora и аналогичные дистрибутивы на основе Red Hat — используют разные методы для указания имени хоста.

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

    Выводы

    Главное помнить, что при любом редактировании файлов в системе важно внимательно следовать руководству. Если вы выполнили смену имени, то, расскажите нам: все было для вас понятно сразу? - это важно, ведь, мы стараемся предоставлять инструкции максимально понятными для новичков.

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

    Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter .