Преамбула
Для часто используемых серверов вы можете узнать больше об apache, tomcat (сервер приложений Java), lls и других серверах. Мы узнали больше о том, что nginx часто используется для обратных прокси. Суть в том, что nginx — это еще и высокопроизводительный веб-сервер. Обратный прокси-сервер, обычно используемый для ресурсов статической внешней страницы и балансировки нагрузки.
Ниже блоггер познакомит вас с nginx. И обратный прокси-сервер nginx, статические ресурсы и сравнение стресс-тестов.
Установить
Окружение автора - ubuntu 18.04, так что скачивать очень просто. Источник yum для Centos также имеет nginx. для окон. Просто скачайте и используйте его напрямую.
- скачать нгинкс:
sudo apt get nginx
- Загрузите jmeter с официального сайта, установите его самостоятельно и распакуйте (
sudo chomd -R 777 apache-jmeter-5.1.1
)
Таким образом загружаются некоторые основные инструменты. Прямой доступ к nginx или sudo nginxlocalhost
Если есть hello nginx, установка прошла успешно.Для jmeter, если вы его установили, то можете зайти на официальный сайт для его установки.
对于nginx安装后的一些路径,都在
- Все файлы конфигурации находятся в /etc/nginx
- Файлы программы находятся в /usr/sbin/nginx
- Лог размещается в /var/log/nginx
- и создали сценарий запуска nginx в /etc/init.d/
还有nginx的一些常用关闭命令
- nginx -s reload : перезагрузка вступает в силу после изменения конфигурации.
- nginx -s reopen : повторно открыть файлы журнала
- Отключить нгинкс: nginx -s stop : быстро остановить nginx quit : полностью и упорядоченно остановить nginx
- Другие способы остановить nginx: ps -ef | grep nginx убить -9 ххх
Если у вас недостаточно прав, не забудьте добавитьsudo
обратный прокси
Для nginx многие используют nginx+tomcat для балансировки нагрузки. Улучшить параллелизм системы. Для файла конфигурации nginx в/etc/nginx/conf.d/
под новымproxy.conf
(также можно настроить в nginx/nginx.conf)
Например, я хочу использовать свой локальный порт 8081 для проксирования локального nginx.
upstream tomcat-server{
server 47.100.58.250:8080 ;
}
server{
listen 8081;
server_name localhost;
location / {
proxy_pass http://tomcat-server;
root html;
index index.html;
}
}
Я изменил nginx/nginx.conf, чтобы удалить некоторые временно неиспользуемые файлы.
user root;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
events {
worker_connections 1024;
}
http {
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log /var/log/nginx/access.log main;
client_max_body_size 20m;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Load modular configuration files from the /etc/nginx/conf.d directory.
# See http://nginx.org/en/docs/ngx_core_module.html#include
# for more information.
include /etc/nginx/conf.d/*.conf;
}
Таким образом, вы можете проксировать доступ к адресу сервера локальноhttp://localhost:8081/Конечно, если есть несколько серверов, которые можно настроить в восходящем направлении, можно также настроить вес каждого узла и так далее. Он не будет представлен подробно.
сервер статических ресурсов
Сегодня популярно разделение передней и задней части. nginx принимается многими энтузиастами фронтенда. Через nginx можно легко развернуть статические ресурсы, чтобы добиться эффекта динамического и статического разделения.
Настроить сервер статических ресурсов с помощью nginx очень просто. Создайте новый static.conf в указанном выше файле того же уровня conf.d/
server {
listen 8082;
server_name localhost;
location / {
root /home/tomcat9/webapps/ROOT/;
autoindex on;
}
}
Корень — это абсолютный путь tomcat (вы можете настроить его по своему усмотрению), я заранее запустил index.jsp домашней страницы tomcat и сохранил его как файл index.html.
Ну, теперь мы закончили两件事
:8081端口负载均衡(反向代理到我服务器)
,8082端口制成本地tomcat的静态文件服务器
.
Затем откройте томкэт. Слева nginx как сервер для возврата статики
Сравнение стресс-тестов nginx и tomcat
Параллельное сравнение результатов
- Скачанный ранее jmeter готов к работе. для той же статической страницы. путь nginxhttp://localhost:8082/, котhttp://localhost:8080/.
- Добавьте группу потоков. Сначала протестируйте 15 000 потоков, запрашивающих домашнюю страницу одновременно в течение 1 с. Добавьте http-запрос в группу потоков. ip: локальный. порт: 8080 Добавьте свой любимый формат данных в Add -> Listener (вы можете найти плагин, если вам нужен qps)
- В сравнении Среди них tomcat, максимум около qps2400Результат nginx явно сильнее, максимум qps3000
Сравнение влияния на сервер
- Когда 20000 одновременных запросов в течение 10 с. Прикрепленное состояние процессора на момент завершения работы процессора tomcat достигло 21,6%. Память составляет 6,4%, то есть с параллельным tomcat сильно давит на процессор и память сервера.Однако nginx почти не меняет память в процессе стресс-теста и почти не ест память. Использование процессора также меньше, чем у tomcat.
Суммировать:
показатель | nginx | tomcat |
---|---|---|
средний ответ | 0ms | 1ms |
Лучшие 95% времени отклика | 4 | 5 |
Верхнее время отклика 99% | 7 | 16 |
запросов в секунду (наблюдение) | 3000 | 2400 |
влияние на память | 0% | 6.4% |
влияние на процессор | 21.6% | 14% |
разное | Легкий и мощный | Java ест немного памяти и тормозит |
(Среда измерения относительно однородна)
что сказать в спину
С помощью серии сравнений откройте для себя возможности nginx. Балансировка нагрузки и серверы статических ресурсов могут снизить нагрузку на параллелизм. И у nginx еще много знаний. Требуются дальнейшие исследования. И преимуществ nginx гораздо больше, чем эти, и вам нужно глубоко изучить!
В то же время, реклама для вашего собственного публичного аккаунта