Jump to content
DevilStar

[GUIDE] Как быстро настроить VPS в качестве web сервера.

Recommended Posts

Добрый день. Спасибо за подробный гайд. 

Как вы и написали в конце оного у меня не стартовал nginx. При добавлении 

net.ipv4.ip_nonlocal_bind = 1

в файл 

/etc/sysctl.conf 

и выполнении команды 

sysctl -p /etc/sysctl.conf

появлялется такое сообщение:

sysctl: permission denied on key 'net.ipv4.ip_nonlocal_bind'

 

что бы это значило и как это исправить?

 

У вас просто нет прав на выполнение данной директивы (sysctl). Если я не ошибаюсь - у вас ведь виртуальная машина ? Если это так , то она использует параметры настройки ядра узловой машины и права на подобные изменения есть только у провайдера.

Share this post


Link to post
Share on other sites

У вас просто нет прав на выполнение данной директивы (sysctl). Если я не ошибаюсь - у вас ведь виртуальная машина ? Если это так , то она использует параметры настройки ядра узловой машины и права на подобные изменения есть только у провайдера.

 

Да, вы правы, виртуальная. Как же тогда заставить nginx работать?

Share this post


Link to post
Share on other sites

Да, вы правы, виртуальная. Как же тогда заставить nginx работать?

 

На самом деле , вы дали крайне мало информации. Какой у вас vps, какая операционка. Уж не установили вы случаем панель VESTA ? Если да - то в этом убожестве nginx запущен вроде как по умолчанию. Вообщем - пишите подробнее.

Share this post


Link to post
Share on other sites

На самом деле , вы дали крайне мало информации. Какой у вас vps, какая операционка. Уж не установили вы случаем панель VESTA ? Если да - то в этом убожестве nginx запущен вроде как по умолчанию. Вообщем - пишите подробнее.

 

Virtual CPU 2000Mhz, 512Mb memory, 32000Mb disk
debian-7.0-x86
да, Vesta случаем стоит, но и в ней nginx выключен. Запустить его получается только если отрубить apache и сначала запустить nginx а потом уж снова apache. И так до следующей перезагрузки.

Share this post


Link to post
Share on other sites

 

Virtual CPU 2000Mhz, 512Mb memory, 32000Mb disk
debian-7.0-x86
да, Vesta случаем стоит, но и в ней nginx выключен. Запустить его получается только если отрубить apache и сначала запустить nginx а потом уж снова apache. И так до следующей перезагрузки.

 

nginx стоит от весты или отдельно сами ставили?

 

ну и конечно же нужно просмотреть логи и от них уже плясать в вопросе об автостарте

Share this post


Link to post
Share on other sites

 

Virtual CPU 2000Mhz, 512Mb memory, 32000Mb disk
debian-7.0-x86
да, Vesta случаем стоит, но и в ней nginx выключен. Запустить его получается только если отрубить apache и сначала запустить nginx а потом уж снова apache. И так до следующей перезагрузки.

 

 

А есть возможность скопировать сюда то , что пишется в консоли после /etc/init.d/nginx  restart   ?

Share this post


Link to post
Share on other sites

А есть возможность скопировать сюда то , что пишется в консоли после /etc/init.d/nginx  restart   ?

так и так все понятно. Оба сервиса слушают один и то  же порт. Нужно произвести настройку сервисов.

Share this post


Link to post
Share on other sites

так и так все понятно. Оба сервиса слушают один и то  же порт. Нужно произвести настройку сервисов.

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

Share this post


Link to post
Share on other sites

 

DevilStar, а вот эти настройки можно применить на убунту 14? Подскажите пожалуйста оптимальные настройки для php.ini, апач, nginx, и mysql

 

Тюним php.ini

nano /etc/php5/apache2/php.ini

Находим и меняем параметры на эти (или на какие вам захочется):

max_execution_time =  180

upload_max_filesize = 64M

post_max_size = 64M

Сохраняем CTRL+O, энтер, CTRL+X

 

Перезапускаем апач:

service apache2 restart

Тюним апач, что бы не иметь проблем с жором памяти:

nano /etc/apache2/apache2.conf

Находим там блок:

<IfModule mpm_prefork_module>

    StartServers          8

    MinSpareServers       5

    MaxSpareServers      20

    ServerLimit         256

    MaxClients          200

    MaxRequestsPerChild 4000

</IfModule>

И приводим его к этому виду (эти параметры идеально подходят для vps с 512mb памяти. если памяти больше – можно и нужно ставить значения выше):

<IfModule mpm_prefork_module>

    StartServers          3

    MinSpareServers       3

    MaxSpareServers       9

    ServerLimit         256

    MaxClients           20

    MaxRequestsPerChild 3000

</IfModule>

Сохраняем, перезапускаем апач:

service apache2 restart

С апачем закончили, тюним базу данных:

nano /etc/mysql/my.cnf

Находим и ставим следующие значения:

max_connections         = 50

connect_timeout         = 5

wait_timeout            = 30

max_allowed_packet      = 16M

thread_cache_size       = 128

sort_buffer_size        = 512K

bulk_insert_buffer_size = 16M

tmp_table_size          = 16M

max_heap_table_size     = 16M

 

myisam_recover          = BACKUP

key_buffer_size         = 8M

#open-files-limit       = 2000

table_open_cache        = 400

myisam_sort_buffer_size = 8M

concurrent_insert       = 2

read_buffer_size        = 512K

read_rnd_buffer_size    = 512K

 

innodb_buffer_pool_size = 8M

innodb_log_buffer_size  = 8M

innodb_file_per_table   = 1

innodb_open_files       = 400

innodb_io_capacity      = 400

innodb_flush_method     = O_DIRECT

Сохраняем, перезапускаем бд:

service mysql restart

Готово.

 

Тюним конфиг nginx. Мой nginx.conf решает следующие проблемы - в соответствии с рекомендациями Google Insights кеширует статику в браузере и сжимает всё что нужно сжимать.

nano /etc/nginx/nginx.conf

Заменяем этим:

# Server globals

user                    www-data;

worker_processes        2;

error_log               /var/log/nginx/error.log;

pid                     /var/run/nginx.pid;

 

 

 

 

# Worker config

events {

        worker_connections  1024;

        use                 epoll;

}

 

 

 

 

http {

    # Main settings

    sendfile                        on;

    tcp_nopush                      on;

    tcp_nodelay                     on;

    client_header_timeout           1m;

    client_body_timeout             1m;

    client_header_buffer_size       2k;

    client_body_buffer_size         256k;

    client_max_body_size            100m;

    large_client_header_buffers     4   8k;

    send_timeout                    30;

    keepalive_timeout               60 60;

    reset_timedout_connection       on;

    server_tokens                   off;

    server_name_in_redirect         off;

    server_names_hash_max_size      512;

    server_names_hash_bucket_size   512;

 

 

 

 

    # Log format

    log_format  main    '$remote_addr - $remote_user [$time_local] $request '

                        '"$status" $body_bytes_sent "$http_referer" '

                        '"$http_user_agent" "$http_x_forwarded_for"';

    log_format  bytes   '$body_bytes_sent';

    #access_log          /var/log/nginx/access.log  main;

    access_log off;

 

 

 

 

    # Mime settings

    include             /etc/nginx/mime.types;

    default_type        application/octet-stream;

 

 

 

 

    # Compression

    gzip                on;

    gzip_comp_level     9;

    gzip_min_length     1000;

    gzip_buffers        8 64k;

    gzip_types          text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/javascript image/svg+xml;

    gzip_proxied        any;

 

 

 

 

    # Proxy settings

    proxy_redirect      off;

    proxy_set_header    Host            $host;

    proxy_set_header    X-Real-IP       $remote_addr;

    proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;

    proxy_pass_header   Set-Cookie;

    proxy_connect_timeout   90;

    proxy_send_timeout  90;

    proxy_read_timeout  90;

    proxy_buffers       32 4k;

 

 

 

 

    # Cloudflare https://www.cloudflare.com/ips

    set_real_ip_from   199.27.128.0/21;

    set_real_ip_from   173.245.48.0/20;

    set_real_ip_from   103.21.244.0/22;

    set_real_ip_from   103.22.200.0/22;

    set_real_ip_from   103.31.4.0/22;

    set_real_ip_from   141.101.64.0/18;

    set_real_ip_from   108.162.192.0/18;

    set_real_ip_from   190.93.240.0/20;

    set_real_ip_from   188.114.96.0/20;  

    set_real_ip_from   197.234.240.0/22;

    set_real_ip_from   198.41.128.0/17;

    set_real_ip_from   162.158.0.0/15;

    set_real_ip_from   104.16.0.0/12;

    set_real_ip_from   172.64.0.0/13;

    #set_real_ip_from   2400:cb00::/32;

    #set_real_ip_from   2606:4700::/32;

    #set_real_ip_from   2803:f800::/32;

    #set_real_ip_from   2405:b500::/32;

    #set_real_ip_from   2405:8100::/32;

    real_ip_header     CF-Connecting-IP;

 

 

 

 

    # SSL PCI Compliance

    ssl_session_cache   shared:SSL:10m;

    ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;

    ssl_prefer_server_ciphers on;

    ssl_ciphers        "ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES128-SHA256:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES256-GCM-SHA384:AES128-GCM-SHA256:AES256-SHA256:AES128-SHA256:AES256-SHA:AES128-SHA:DES-CBC3-SHA:HIGH:!aNULL:!eNULL:!EXPORT:!DES:!MD5:!PSK:!RC4";

 

 

 

 

    # Error pages

    error_page          403          /error/403.html;

    error_page          404          /error/404.html;

    error_page          502 503 504  /error/50x.html;

 

 

 

 

    # Cache

    proxy_cache_path /var/cache/nginx levels=2 keys_zone=cache:10m inactive=60m max_size=512m;

    proxy_cache_key "$host$request_uri $cookie_user";

    proxy_temp_path  /var/cache/nginx/temp;

    proxy_ignore_headers Expires Cache-Control;

    proxy_cache_use_stale error timeout invalid_header http_502;

    proxy_cache_valid any 3d;

 

 

    map $http_cookie $no_cache {

        default 0;

        ~SESS 1;

        ~wordpress_logged_in 1;

    }

 

 

 

 

    # Wildcard include

    include             /etc/nginx/conf.d/*.conf;

 

 

server {

 

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)$ {

        expires max;

    }

}

 

}

Share this post


Link to post
Share on other sites

1 раз настроил и забыл. Времени занимает часа два с перекурами. Работает, есть не просит. Процесс обновления - 15 минут раз в два месяца.

attachicon.gif2014-11-14_142254.png

А что нужно обновлять раз в 2 месяца?

Share this post


Link to post
Share on other sites

А что нужно обновлять раз в 2 месяца?

Исходя из текущей ситуации, когда в куче программ, которые стоят на VPS, находят 0-day уязвимости - обновлять систему нужно хотя бы раз в две недели. ImageMagic, ProFTPD, wget и т.п. тому подтверждение. И не гонитесь за аптаймом. Если видите, что обновляется ядро linux - обновитесь. 

 

Все, кто используют Vesta CP - срочно обновитесь. Была найдена и исправлена уязвимость, позволяющая сбросить пароль пользователю admin.

 

Подробности - http://forum.vestacp.com/viewtopic.php?f=28&t=11824

Share this post


Link to post
Share on other sites

Исходя из текущей ситуации, когда в куче программ, которые стоят на VPS, находят 0-day уязвимости - обновлять систему нужно хотя бы раз в две недели. ImageMagic, ProFTPD, wget и т.п. тому подтверждение. И не гонитесь за аптаймом. Если видите, что обновляется ядро linux - обновитесь. 

 

Все, кто используют Vesta CP - срочно обновитесь. Была найдена и исправлена уязвимость, позволяющая сбросить пароль пользователю admin.

 

Подробности - http://forum.vestacp.com/viewtopic.php?f=28&t=11824

Подскажите пожалуйста под системой, что понимается? По какому запросу гуглить?

И как можно увидеть обновление ядра linux? И как обновляться?

В vestacp в Обновления стоят только vesta (главный пакет), vesta-php (php интерпретатор), vesta-nginx (внутренний веб сервер). По ходу ядро linux значит в другом месте смотреть. 

Если у вас есть ссылки об обновлении системы и ядра linux, дайте пожалуйста (для начинающих). VPS у меня на убунту 14 

Share this post


Link to post
Share on other sites

Подскажите пожалуйста под системой, что понимается? По какому запросу гуглить?

И как можно увидеть обновление ядра linux? И как обновляться?

В vestacp в Обновления стоят только vesta (главный пакет), vesta-php (php интерпретатор), vesta-nginx (внутренний веб сервер). По ходу ядро linux значит в другом месте смотреть. 

Если у вас есть ссылки об обновлении системы и ядра linux, дайте пожалуйста (для начинающих). VPS у меня на убунту 14 

Из под админа через ssh - это обновление ОС, всех его компонентов. Обновления на весту так же прилетят таким способом, если обновление не было сделано через веб морду панели.

sudo apt-get update
sudo apt-get upgrade

Share this post


Link to post
Share on other sites

 

Из под админа через ssh - это обновление ОС, всех его компонентов. Обновления на весту так же прилетят таким способом, если обновление не было сделано через веб морду панели.

sudo apt-get update
sudo apt-get upgrade

В кроне панели вестасп это можно прописать? Просто в кроне вижу другие команды с sudo, поэтому спрашиваю

Share this post


Link to post
Share on other sites

В кроне панели вестасп это можно прописать? Просто в кроне вижу другие команды с sudo, поэтому спрашиваю

 

Можно просто под root пользователем зайти и выполнить команды:

apt-get update
apt-get upgrade

Share this post


Link to post
Share on other sites

Видимо, что-то пошло не так. Проблемы начались еще на этапе установки Mariadb, мало чего понимаю, но делалось все по инструкции. Теперь совсем все отвалилось. Я уже совсем запутался, мало чего понимаю
Скриншоты: https://yadi.sk/i/zabKu3SpsxCFF

https://yadi.sk/i/DtHsWXbFsxCFm

Может, возможно как-то с вами отдельно связаться? Боюсь, без помощи теперь совсем не разберусь..
 
 

Share this post


Link to post
Share on other sites

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

Скриншоты: https://yadi.sk/i/zabKu3SpsxCFF

https://yadi.sk/i/DtHsWXbFsxCFm

 

Может, возможно как-то с вами отдельно связаться? Боюсь, без помощи теперь совсем не разберусь..

 

 

 

UPD. Вроде разобрался, но не получается поднять Apache.

root@tonyanatakescamera:~# systemctl status apache2.service
● apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/apache2)
   Active: failed (Result: exit-code) since Tue 2016-07-05 00:10:13 MSK; 10s ago
  Process: 3429 ExecStart=/etc/init.d/apache2 start (code=exited, status=1/FAILURE)

Jul 05 00:10:13 tonyanatakescamera.example.com apache2[3429]: Starting web server: apache2 failed!
Jul 05 00:10:13 tonyanatakescamera.example.com apache2[3429]: The apache2 configtest failed. ... (warning).
Jul 05 00:10:13 tonyanatakescamera.example.com apache2[3429]: Output of config test was:
Jul 05 00:10:13 tonyanatakescamera.example.com apache2[3429]: apache2: Syntax error on line 83 of /etc/apache2/apache2.conf: Co...ctory
Jul 05 00:10:13 tonyanatakescamera.example.com apache2[3429]: Action 'configtest' failed.
Jul 05 00:10:13 tonyanatakescamera.example.com apache2[3429]: The Apache error log may have more information.
Jul 05 00:10:13 tonyanatakescamera.example.com systemd[1]: apache2.service: control process exited, code=exited status=1
Jul 05 00:10:13 tonyanatakescamera.example.com systemd[1]: Failed to start LSB: Apache2 web server.
Jul 05 00:10:13 tonyanatakescamera.example.com systemd[1]: Unit apache2.service entered failed state.
Hint: Some lines were ellipsized, use -l to show in full.

Share this post


Link to post
Share on other sites

Господа, а кто-нибудь знает, можно ли VestaCP запретить использовать префиксы в названиях БД, пользователей БД, а также изменить путь к каталогу пользователя?

 

Решил погонять на тестовой VPS-ке VestaCP и тут же столкнулся с тем, что чтобы запустить сайт нужно еще дибильные правки в код сайта вносить. На основном серваке использую ISPManager, а на дополнительных VPS - без панелек, так вот структуру каталогов пользователей использую такую же как и ISPManager, так удобно синхронизировать данные и использовать одни и те же bash-скрипты на всех машинах.

Share this post


Link to post
Share on other sites

Здравствуйте! Подскажите как можно добавить в vesta панель домен в зоне .рф в punycode выдает ошибку.

Спасибо

Share this post


Link to post
Share on other sites

Спасибо за инфу

Для "Спасибо" есть кнопочка "Мне нравится". И не стоит цитировать ВСЁ сообщение - посмотрите как это ужасно в итоге выглядит. Это был дружеский совет, если что.

Share this post


Link to post
Share on other sites

Для "Спасибо" есть кнопочка "Мне нравится". И не стоит цитировать ВСЁ сообщение - посмотрите как это ужасно в итоге выглядит. Это был дружеский совет, если что.

плюсы я умею выставлять....Зачем учить?

Share this post


Link to post
Share on other sites

Здравствуйте! Подскажите как можно добавить в vesta панель домен в зоне .рф в punycode выдает ошибку.

Спасибо

Добрый день.

 

VestaCP сама конвертирует кириллистический домен в punycode. Таким образом, добавлять надо домен как есть, например "тестовый-домен.рф"

Share this post


Link to post
Share on other sites

Добрый день.

 

VestaCP сама конвертирует кириллистический домен в punycode. Таким образом, добавлять надо домен как есть, например "тестовый-домен.рф"

Добрый день!

Да действительно домен добавился кириллицей, но теперь я не могу выполнять команды в консоли, так как, например, в команде cd /home/admin/web/домен.рф/public_html присутствует кириллица и в результате выдает ошибку.

Спасибо!

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...