-
-
Save webnitros/cbedc11250444be44de8720b5939b9e4 to your computer and use it in GitHub Desktop.
Настройка хостов nginx для домашнего использования
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# По мотивам http://habrahabr.ru/post/142648/ | |
# Все проекты лежат по адресу: /home/projects/{имя.проекта}/public | |
server { | |
listen 80 default; # этот конфиг - умолчательный для 80 порта | |
server_name _; # хитрый ключик, обозначающий, что этот конфиг применим для любого сайта | |
set $sathost $host; # В sathost будет лежать имя сайта. Так же должна называться директрия с сайтом | |
root /home/projects/$sathost/public; # конень сайта определяем автоматически | |
index index.php index.html index.htm; # в каком порядке искать индексные файлы | |
access_log /var/log/nginx/$sathost.access.log; | |
error_log /var/log/nginx/$sathost.error.log error; | |
location ~ \.(jpg|jpeg|gif|css|png|js|ico|xml|swf|pdf|mov|fla|zip|rar)$ { | |
if (!-e $request_filename) { # если нет статического файла отдаем 404 | |
return 404; | |
} | |
} | |
location / { # правила ниже применяются для любых запросов | |
if (!-d /home/projects/$sathost/public) { # если не нашли директорию с именем запрошенного сайта | |
return 404; | |
} | |
# начало rewrite | |
set $rflag 1; # так как логического объединения в условных выражениях нет, то вводим переменную для сложения двух условий. flag указывает на необходимость сделать переадресацию | |
if (-e $request_filename) { # если есть запрошенный файл, то переадресация не нужна | |
set $rflag 0; | |
} | |
if (!-f /home/projects/$sathost/public/index.php) { # если нет index.php в корне сайта, то переадресация тоже не нужна, ибо некуда | |
set $rflag 0; | |
} | |
if ($rflag = 1) { # | |
rewrite ^ /index.php?$args last; | |
} | |
# конец rewrite | |
if (-f $request_filename) { # для статических файлов включаем кэш на час | |
access_log off; | |
break; | |
} | |
} | |
location ~ \.php$ { # этот блок сработает при запросе .php файлов | |
root /home/projects/$sathost/public; | |
fastcgi_pass 127.0.0.1:9000; # тут висит php-fpm | |
fastcgi_index index.php; | |
fastcgi_param SCRIPT_FILENAME /home/projects/$sathost/public/$fastcgi_script_name; | |
include fastcgi_params; | |
break; | |
} | |
location ~ /\.ht { # в файлах, начинающихся на «.ht» могут лежать пароли или оставшиеся настройки от Апача - отдавать это ни к чему. | |
deny all; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment