Различия
Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версия | |||
| linux:nginx:yii [2021/10/22 02:34] – dx | linux:nginx:yii [2021/10/22 03:39] (текущий) – dx | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| + | ====== Настройка nginx для Yii ====== | ||
| + | |||
| + | |||
| + | ===== Yii 1.1 ===== | ||
| + | |||
| + | Пример из руководства по установке [[https:// | ||
| + | |||
| + | <hidden yii 1.1 nginx> | ||
| + | < | ||
| + | server { | ||
| + | set $host_path "/ | ||
| + | access_log | ||
| + | |||
| + | server_name | ||
| + | root | ||
| + | set $yii_bootstrap " | ||
| + | |||
| + | charset utf-8; | ||
| + | |||
| + | location / { | ||
| + | index index.html $yii_bootstrap; | ||
| + | try_files $uri $uri/ / | ||
| + | } | ||
| + | |||
| + | location ~ ^/ | ||
| + | deny all; | ||
| + | } | ||
| + | |||
| + | # отключаем обработку запросов фреймворком к несуществующим статичным файлам | ||
| + | location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ { | ||
| + | try_files $uri =404; | ||
| + | } | ||
| + | |||
| + | # передаем PHP-скрипт серверу FastCGI, прослушивающему адрес 127.0.0.1: | ||
| + | location ~ \.php { | ||
| + | fastcgi_split_path_info | ||
| + | |||
| + | # позволяем yii перехватывать запросы к несуществующим PHP-файлам | ||
| + | set $fsn / | ||
| + | if (-f $document_root$fastcgi_script_name){ | ||
| + | set $fsn $fastcgi_script_name; | ||
| + | } | ||
| + | |||
| + | fastcgi_pass | ||
| + | include fastcgi_params; | ||
| + | fastcgi_param | ||
| + | |||
| + | # PATH_INFO и PATH_TRANSLATED могут быть опущены, | ||
| + | fastcgi_param | ||
| + | fastcgi_param | ||
| + | } | ||
| + | |||
| + | # не позволять nginx отдавать файлы, начинающиеся с точки (.htaccess, .svn, .git и прочие) | ||
| + | location ~ /\. { | ||
| + | deny all; | ||
| + | access_log off; | ||
| + | log_not_found off; | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ===== Yii 2 ===== | ||
| + | |||
| + | https:// | ||
| + | |||
| + | Recommended Nginx Configuration | ||
| + | * https:// | ||
| + | * https:// | ||
| + | |||
| + | <hidden recommended nginx> | ||
| + | < | ||
| + | server { | ||
| + | charset utf-8; | ||
| + | client_max_body_size 128M; | ||
| + | |||
| + | listen 80; ## listen for ipv4 | ||
| + | #listen [::]:80 default_server ipv6only=on; | ||
| + | |||
| + | server_name mysite.test; | ||
| + | root / | ||
| + | index | ||
| + | |||
| + | access_log | ||
| + | error_log | ||
| + | |||
| + | location / { | ||
| + | # Redirect everything that isn't a real file to index.php | ||
| + | try_files $uri $uri/ / | ||
| + | } | ||
| + | |||
| + | # uncomment to avoid processing of calls to non-existing static files by Yii | ||
| + | #location ~ \.(js|css|png|jpg|gif|swf|ico|pdf|mov|fla|zip|rar)$ { | ||
| + | # try_files $uri =404; | ||
| + | #} | ||
| + | #error_page 404 /404.html; | ||
| + | |||
| + | # deny accessing php files for the /assets directory | ||
| + | location ~ ^/ | ||
| + | deny all; | ||
| + | } | ||
| + | |||
| + | location ~ \.php$ { | ||
| + | include fastcgi_params; | ||
| + | fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; | ||
| + | fastcgi_pass 127.0.0.1: | ||
| + | # | ||
| + | try_files $uri =404; | ||
| + | } | ||
| + | |||
| + | location ~* /\. { | ||
| + | deny all; | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ===== Таймауты и буферы ===== | ||
| + | |||
| + | По советам Yii гуру | ||
| + | |||
| + | buffer | ||
| + | |||
| + | < | ||
| + | fastcgi_buffer_size 128k; | ||
| + | fastcgi_buffers 256 4k; | ||
| + | fastcgi_busy_buffers_size 256k; | ||
| + | fastcgi_temp_file_write_size 256k; | ||
| + | </ | ||
| + | |||
| + | timeout | ||
| + | |||
| + | < | ||
| + | fastcgi_connect_timeout 600s; | ||
| + | fastcgi_send_timeout | ||
| + | fastcgi_read_timeout | ||
| + | </ | ||
| + | |||
| + | Оффтоп для Apache | ||
| + | |||
| + | < | ||
| + | proxy_connect_timeout 900; | ||
| + | proxy_send_timeout | ||
| + | proxy_read_timeout | ||
| + | send_timeout | ||
| + | </ | ||
| + | |||
| + | ===== Закрыть прямой доступ к каталогам yii ===== | ||
| + | |||
| + | ==== Для версии yii1 ==== | ||
| + | |||
| + | < | ||
| + | location ~ ^/ | ||
| + | deny all; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ==== Для версии yii2 ==== | ||
| + | |||
| + | < | ||
| + | location ~ ^/ | ||
| + | deny all; | ||
| + | } | ||
| + | |||
| + | location ~ / | ||
| + | deny all; | ||
| + | access_log off; | ||
| + | log_not_found off; | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ===== Secure cookie ===== | ||
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | Пример | ||
| + | |||
| + | <code php> | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ] | ||
| + | ], | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ], | ||
| + | ' | ||
| + | .... | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ] | ||
| + | ], | ||
| + | ' | ||
| + | .... | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ], | ||
| + | ], | ||
| + | </ | ||
| + | |||
| + | ===== Ссылки ===== | ||
| + | |||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||
| + | |||
| + | {{tag> | ||