настройка веб-сервера


настраиваем сервер nginx для статики, динамику проксируем на apache

Для выдачи контента в виде HTML-страниц, при HTTP-запросе от клиентов, предназначены Web-серверы. Самые распространенные из них это Apache и nginx. Сервер nginx обычно используют для статических сайтов, а сервер Apache для динамических.

Также сервер nginx часто используют как прокси-сервер, который принимает запросы от http-клиентов и передаёт их другим сетевым службам, например веб-серверу Apache, получает от этих служб ответ и передаёт его обратно клиенту.

Таким образом все соединения идут через nginx, что обеспечивает большую безопасность. Ниже будут приведены рабочие настройки для обоих серверов, где nginx будет отдавать HTTP-запросы для статических сайтов, а запросы для динамических сайтов будет передавать (проксировать) на Apache. Для установки nginx в Ubuntu используется следующая команда: sudo apt-get install nginx

Допустим наш статический контент (HTML-файлы) находится в /var/www/html/, а динамический (PHP-файлы) в /home/alex/cloud/, тогда настройки будут следующие. Конфигурационный файл nginx.conf лежит в /etc/nginx/ Вот его рабочие настройки как для HTTP так и дляHTTPS:

user www-data;
worker_processes 2;
pid /run/nginx.pid;
include /etc/nginx/modules-enabled/*.conf;
worker_rlimit_nofile 30000;
events {
worker_connections 8000;
multi_accept on;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
# reset_timeout_connection on;
keepalive_timeout 65;
keepalive_requests 1000;
types_hash_max_size 2048;
server_tokens off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
gzip on;
gzip_vary on;
# gzip_proxied any;
gzip_comp_level 9;
gzip_types text/plain text/css application/json
application/javascript text/xml application/xml application/xml+rss
text/javascript;
server {
listen 185.67.140.21:80;
server_name musik.ru www.musik.ru;
location /{root /var/www/html;}
# location /meloma/{root /home/alexandro;}
# location /html5/{root/home/alexandro/music;}
}
server{
listen 185.67.140.21:443 http2;
server_name musik.ru www.musik.ru;
listen 443 ssl http2;
ssl_prefer_server_ciphers on;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl on;
ssl_certificate /etc/ssl/musik.crt;
ssl_certificate_key /etc/ssl/musik.key;
server_name musik.ru;
location /{root /var/www/html;}
}
}


Настройка кэша и проксирования на 46.8.204.10:16749

Настраиваем кэширование в папку /data/nginx/cache . В этой папке будут копиться файлы страниц сайта и информация от браузера.

В блок http(s) {} добавляем:

proxy_cache_path /data/nginx/cache keys_zone=cache:30m loader_threshold=300
loader_files=200 max_size=1G;
proxy_cache_use_stale error timeout invalid_header http_502;

В блок server {} добавляем:

location / {
proxy_pass http://46.8.204.10:16749;
proxy_cache cache;
proxy_cache_valid any 5m;
proxy_cache_bypass $cookie_session;
proxy_no_cache $cookie_session;
}


Не забываем создать соответствующие каталоги:

mkdir -p /data/nginx/cache
chown -R www-data /data/nginx/cache
chmod 700 /data/nginx/cache


Проверим главную страницу сайта на прочность в сто потоков:

ab -n 1000 -c 100 http://paradies.site/


для проксирования на Apache в оба блока server добавить location:

location /cloud/{root /home/alex;
index index.php index.html index.htm;
proxy_pass http://185.67.140.21:8080;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_redirect default;
try_files $uri $uri/ =404; }



Для установки apache в Ubuntu используется следующая команда:
sudo apt-get install apache2
Настройки конфигурационного файла 000-default.conf находятся в /etc/apache2/sites-available
Вот его рабочие настройки:

вместо круглых скобок поставьте <>
(VirtualHost *:8080)
ServerName 192.168.0.102
ServerAdmin webmaster@localhost
DocumentRoot /home/alex
(Directory /home/alex)
# Options -Indexes +FollowSymLinks +MultiViews
AllowOverride All
Require all granted
(/Directory)
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
(/VirtualHost)



настройки файла ports.conf

Listen 8080
# (IfModule ssl_module)
# Listen 443
# (/IfModule)
# (IfModule mod_gnutls.c)
# Listen 443
# (/IfModule)

все if-модули 443 порта комментируем (иначе апач в связке с энжинс не запустится)

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

мои контактные данные здесь или здесь