Я только что настроил nginx для обслуживания статического запроса на одном сайте, но у меня много сайтов на моем сервере, и мне интересно, должен ли я исправлять новые Конфигурация сервера nginx для всех из них? Что я сейчас делаю. У меня есть файл со всеми виртуальными хостами записей для Apache с некоторыми-вещи, как это:Apache и окончательная конфигурация для nginx для правильного обслуживания всех виртуальных хостов
NameVirtualHost *:8080
<VirtualHost *:8080>
ServerName sky2high.net
DocumentRoot /home/mainsiter/data/www/sky2high.net
</VirtualHost>
<VirtualHost *:8080>
ServerName surdo.asmon.ru
DocumentRoot /home/surdo/data/www/surdo.asmon.ru
</VirtualHost>
<VirtualHost *:8080>
ServerName surdoserver.ru
DocumentRoot /home/surdo/data/www/surdoserver.ru
</VirtualHost>
У меня есть это в ports.conf Апача:
Listen 8080
И поэтому я создал Nginx для работы с одной сайта (sky2high.net), созданный следующий настроить файл (/etc/nginx/sites-enabled/sky2high.net):
server {
listen 80;
server_name sky2high.net www.sky2high.net;
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
access_log /var/log/nginx.access_log;
location ~* \.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|xml|docx|xlsx)$ {
root /home/mainsiter/data/www/sky2high.net/;
index index.php;
access_log off;
expires 30d;
}
location ~ /\.ht {
deny all;
}
location/{
proxy_pass http://127.0.0.1:8080/;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-for $remote_addr;
proxy_set_header Host $host;
proxy_connect_timeout 60;
proxy_send_timeout 90;
proxy_read_timeout 90;
proxy_redirect off;
proxy_set_header Connection close;
proxy_pass_header Content-Type;
proxy_pass_header Content-Disposition;
proxy_pass_header Content-Length;
}
}
И это прекрасно работает для этого домена, но, конечно, еще виртуальные хосты сломана.
Итак, вопрос заключается в следующем: существует ли опция конфигурации для nginx, ведьма может помочь обрабатывать весь запрос со всех виртуальных хостов (домены) и правильно обслуживать их? Я имею в виду, что опция, которая позволяет не писать файлы конфигурации separete для каждого виртуального хоста (со всеми этими удвоенными файлами, такими как root и index options), но только для всех виртуальных хостов?
PS: Должен ли я переместить вопрос на сервер?
ОБНОВЛЕНИЕ: Эмм .. Интересно, как это работает, но это так. Я сделал следующие конфигурационные файлы:
/etc/nginx/nginx.conf
user www-data;
worker_processes 2;
error_log /var/log/nginx/error.log;
pid /var/run/nginx.pid;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
access_log /var/log/nginx/access.log;
sendfile on;
#tcp_nopush on;
#keepalive_timeout 0;
keepalive_timeout 65;
tcp_nodelay on;
gzip on;
gzip_min_length 1000;
gzip_proxied any;
gzip_disable "msie6";
include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
и
/и т.д./Nginx/сайты с поддержкой/по умолчанию
server {
listen 80;
location/{
proxy_pass http://127.0.0.1:8080/;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Connection close;
proxy_pass_header Content-Type;
proxy_pass_header Content-Disposition;
proxy_pass_header Content-Length;
}
}
I не понимаю, как это работает, но это ...
ОБНОВЛЕНИЕ 2: или это не работает! Я посмотрел на «верх» в консоли и заметил, что apache обслуживает не только запрос php, но и для статического контента. =
Вы можете изменить одну строку на: proxy_set_header хоста $ хоста: $ proxy_port; – dalore