nginx.conf — подготовка конфига NGiNX в качестве прокси-сервера Apache

После того, как NGiNX и Apache разведены на разные порты: NGiNX по умолчанию встаёт на 80-й порт, а вот для Apache порт нужно поменять на 8080. Итак, после этого нужно прописать в конфиге /etc/nginx/nginx.conf соответствующие настройки для того, чтобы NGiNX обрабатывал свои запросы на 80-м порту, а то, что предназначено для Apache, отправлял ему на обработку. Также нужно сразу настроить работу с виртуальными хостами, если планируется, что на сервере будет размещаться более одного сайта. Ну и другие настройки типа сжатия, кэширования на стороне браузера и т.п.. В той статье я приведу готовый листинг получающегося конфига nginx.conf. Какие опции за что отвечают, возможно опишу позже.



Готовый nginx.conf с подготовкой NGiNX в качестве прокси-сервера Apache

Собственно вот что получается:

user  www-data;
worker_processes  4;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
	use epoll;
}


http {

	upstream apache24 {
		server 127.0.0.1:8080;
	}

    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    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_header_timeout 30;
	client_body_timeout 30;
	reset_timedout_connection on;
	client_max_body_size 32m;
	client_body_buffer_size 4m;

    sendfile        on;
    tcp_nopush     on;
	tcp_nodelay on;

    keepalive_timeout  30;
	
	proxy_buffering on;
	proxy_connect_timeout 300; 
	proxy_send_timeout 300;
	proxy_read_timeout 300;
	proxy_buffer_size 64k;
	proxy_buffers 8 64k;
	proxy_busy_buffers_size 64k;
	proxy_temp_file_write_size 10m;

    gzip  on;
	gzip_disable "msie6";
	gzip_proxied any;
	gzip_min_length 1024;
	gzip_comp_level 4;
	gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript application/atom+xml application/rdf+xml;

    include /etc/nginx/conf.d/*.conf;
	include /etc/nginx/sites-enabled/*;
}

P.S.

Подробности как-нибудь потом, в другой раз, может быть... если захочется. =)

Ошибка первой перезагрузки NGiNX и как её исправить

По какой-то причине, у меня не записывается pid NGiNX в файл /var/run/nginx.pid при его первом старте (сразу после установки). Поэтому при попытке перезагрузить (рестартануть), NGiNX ругается:

root@server:~# service nginx restart
Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.

Для того, чтобы он перестал ругаться, нужно его остановить вручную. Для этого воспользуемся командой lsof, чтобы выяснить процесс, который слушает 80-й порт и командой kill - убъём все процессы NGiNX. После того, как на 80-м порту никого не осталось, NGiNX спокойно перезагружается:

root@server:~# lsof -i :80 | grep LISTEN
nginx   4012  root    6u  IPv4  26897      0t0  TCP *:http (LISTEN)
nginx   4015 nginx    6u  IPv4  26897      0t0  TCP *:http (LISTEN)
root@server:~# kill 4012 4015
root@server:~# lsof -i :80 | grep LISTEN
root@server:~# service nginx restart

И это происходит только один раз (при смене конфига NGiNX). После этого данная ошибка не наблюдается.

Заберите ссылку на статью к себе, чтобы потом легко её найти!
Раз уж досюда дочитали, то может может есть желание рассказать об этом месте своим друзьям, знакомым и просто мимо проходящим?
Не надо себя сдерживать! ;)

Старт! Горячий старт на просторы интернета
Старт! Горячий старт на просторы интернета
Старт! Меню