DevilStar

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

109 posts in this topic

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

Как вы и написали в конце оного у меня не стартовал 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. Таким образом, добавлять надо домен как есть, например "тестовый-домен.рф"

campusboy likes this

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.