Итак, все мое приложение отлично работает на apache. Однако я хочу проверить, насколько увеличивается количество запросов в секунду, если вместо этого я помещу все статические файлы через nginx.
Я нашел эту ветку: https://stackoverflow.com/questions/869001/how-to-serve-all-existing-static-files-directly-with-nginx-but-proxy-to-apache-t
Но у меня есть пара проблем. Я новичок в nginx, поэтому не знаю, где разместить конфигурацию. (Файл находится в /etc/nginx/nginx.conf, но я не знаю, просто добавляю ли код внизу или как?)
Кроме того, как я могу запустить оба сервера одновременно? Это потому, что они оба слушают порт 80? Прямо сейчас я должен остановить одно, чтобы запустить другое, и это все, что у меня есть.
Спасибо за любую помощь.
Они могут быть на одном порту, если они на разных IP. Или они могут быть на разных портах с одним и тем же IP-адресом, но не на обоих (также могут быть разные IP-адреса и разные порты). Сценарий с несколькими IP-адресами требуется, если это будут разные серверы, но вы можете использовать несколько IP-адресов на одном сервере.
Клянусь, я не пытаюсь вас запутать :-)
В директива местоположения в предоставленной вами ссылке войдет в директива сервера (Обратите внимание, что в документации для директивы location есть «context: server»). Если вы используете последнюю версию Ubuntu с apt-установкой по умолчанию, вы, вероятно, захотите изменить default в каталоге с поддержкой сайтов. Например (немного глупо, поскольку он все передает Apache):
server {
listen 80 default;
access_log /var/log/nginx/localhost.access.log;
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:2500;
}
}
В этом случае я использую один и тот же сервер для обоих. Nginx прослушивает 80, а Apache - 2500. Вы должны указать DNS на IP-адрес сервера Nginx, поскольку именно он обрабатывает все запросы, проксируя другие серверы. В основном, с точки зрения клиента, они общаются только с сервером Nginx.
Я не могу помочь с конфигурацией nginx, потому что сам еще не использовал ее, но если вы посмотрите фрагменты конфигурации в том вопросе, который вы связали, вы увидите, что Apache работает на порту 8080. Это ключ к тому, чтобы оба работали одновременно - они должны быть на разных портах. Поскольку nginx выполняет проксирование для Apache, пользователь никогда не видит, на каком порту работает последний, и ему это не нужно.