Сосуществование NGINX и Apache на 80-порту — возможно?

Доброго времени суток.
У меня есть сервер на CentOS с установленным Apache.

Можно ли настроить NGINX и Apache так, чтобы NGINX отвечал только за раздачу статических файлов (jpg|jpeg|gif|png|svg|js|css|swf), а за все остальное как и раньше отвечал Apache?
  • Вопрос задан
  • 3512 просмотров
Решения вопроса 2
ptchol
@ptchol
Linux system administrator
Вешаем apache на 8080 к примеру.
А nginx настраиваем примерно следующим образом
server {
    listen 80;
    server_name domain.com;

    location / {
        proxy_pass http://domain.com:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_connect_timeout 120;
        proxy_send_timeout 120;
        proxy_read_timeout 180;
    }

    location ~* \.(jpg|jpeg|gif|png|svg|js|css|swf)$ {
        root /var/www/html/domain.com;
    }
}
Ответ написан
Комментировать
@inkvizitor68sl
Linux-сисадмин с 8 летним стажем.
Пример конфигурации для виртуалхоста ниже.
Apache в данном примере слушает порт 81 на локалхосте и тоже корректно настроен (то есть отличает запросы к разным сайтам, как минимум). 80й порт слушает nginx.

server {
		server_name domain.tld;
		listen 80;
		location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf)$ {
			root /path/to/your/website/docroot;
                        # если для статических файлов не нужны access-логи, то нужно расскоментировать следующую строку:
                        # access_log off;
			error_page 404 = @fallback;
		}
		location / {
			proxy_pass http://127.0.0.1:81;
			proxy_set_header Host $host;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header X-Forwarded-Proto $scheme;
			proxy_set_header X-Real-IP $remote_addr;
		}
		location ~* ^/(webstat|awstats|webmail|myadmin|pgadmin)/ {
			proxy_pass http://127.0.0.1:81;
			proxy_set_header Host $host;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header X-Forwarded-Proto $scheme;
			proxy_set_header X-Real-IP $remote_addr;
		}
		location @fallback {
			proxy_pass http://127.0.0.1:81;
			proxy_set_header Host $host;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_set_header X-Forwarded-Proto $scheme;
			proxy_set_header X-Real-IP $remote_addr;
		}
                location ~ /\. { 
                      deny all; 
                      access_log off; 
                      log_not_found off; 
               }


	}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 3
hell0w0rd
@hell0w0rd
Просто разработчик
А зачем вам апач, если есть nginx?
Ответ написан
Комментировать
@Nc_Soft
Если есть второй ип, то вешайте статику на другой домен/поддомен и настраивайте там отдачу. Вместе на одном ип и порту они существовать не могут.
Ответ написан
Комментировать
metamorph
@metamorph
Нет. Но Вам это и не нужно, достаточно пробросить "все остальное" на апач.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы