Только что переместил свой веб-сайт с IIS на Linux (LEMP на Ubuntu Server 16.04)
Я все еще изучаю Linux, и я не уверен, как добиться следующего:
У меня работает веб-сайт, скажем, www.qwerty.com с настроенной для него аналитикой Google. Допустим, это находится в /var/www/html/qwerty.com/public
Я хочу создать виртуальный каталог на этом сайте, чтобы обслуживать 2 отдельные страницы с встроенным видеоплеером и видео.
позволяет сказать :
www.qwerty.com/videos содержит все файлы для показа видео № 1 и находится в /var/www/html/videos[12203 providedwww.qwerty.com/videos/video2 содержит все файлы для показа видео # 2 и находится в / var / www / html / videos / video2
. Я хочу сделать это, поскольку оба URL-адреса этих страниц имеют свой собственный индивидуальный код аналитики Google, поэтому посетители отслеживаются только на этих страницах, а не на всех qwerty. .com.
Добиваюсь ли я этого, используя символические ссылки для каталогов video1 и video 2, указывающие на основной / var / www / html / qwerty. com / public?
Спасибо за вашу помощь
БЛОК СЕРВЕРА ДОБАВЛЕН РЕДАКТИРОВАТЬ
fastcgi_cache_path /var/www/html/qwerty.com/cache levels = 1: 2 keys_zone = QWERTY: 100m inactive = 60m;
сервер {
server_name www.qwerty.com
root /var/www/html/qwerty.com/public/;
index index.php index.html index.htm video.html;
location ~ /\. {
deny all;
}
location ~* /(?:uploads|files)/.*\.php$ {
deny all;
}
add_header X-Frame-Options "SAMEORIGIN" always;
add_header X-Content-Type-Options "nosniff" always;
add_header X-Xss-Protection "1; mode=block" always;
location = /robots.txt {
log_not_found off;
access_log off;
}
location = /favicon.ico {
log_not_found off;
access_log off;
}
location ~* \.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)$|^(\..*|Entries.*|Repository|Root|Tag|Template)$|\.php_
{
return 444;
}
location ~* ^.+\.(js|css|swf|xml|txt|ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
access_log off;
log_not_found off;
expires max;
}
location ~* \.(pl|cgi|py|sh|lua)\$ {
return 444;
}
location /videos {
root /var/www/html;
}
location /videos/videos2 {
root /var/www/html;
}
set $skip_cache 0;
if ($request_method = POST) {
set $skip_cache 1;
}
if ($query_string != "") {
set $skip_cache 1;
}
if ($request_uri ~* "(/wp-admin/|/xmlrpc.php|/wp-(app|cron|login|register|mail).php|wp-.*.php|/feed/|index.php|wp-comments-popup.php|wp-links-opml.php|wp-locations.php|sitemap(_index)?.xml|[a-z0-9_-]+-sitemap([0-9]+)?.xml)") {
set $skip_cache 1;
}
if ($http_cookie ~* "comment_author|wordpress_[a-f0-9]+|wp-postpass|wordpress_no_cache|wordpress_logged_in") {
set $skip_cache 1;
}
if ($http_cookie ~* "PHPSESSID"){
set $skip_cache 1;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
location /phpmyadmin {
auth_basic "Admin Login";
auth_basic_user_file /etc/nginx/allow_phpmyadmin;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
location ~* \.(?:manifest|appcache|html?|xml|json)$ {
expires -1;
}
location ~* \.(?:rss|ato)$ {
expires 1h;
add_header Cache-Control "public";
}
location ~* \.(?:jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc)$ {
expires 1d;
add_header Cache-Control "public";
log_not_found off;
access_log off;
}
location ~* \.(?:css|js)$ {
expires 7d;
add_header Cache-Control "public";
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_cache_bypass $skip_cache;
fastcgi_no_cache $skip_cache;
fastcgi_cache QWERTY;
fastcgi_cache_valid 60m;
}
location ~ /purge(/.*) {
fastcgi_cache_purge QWERTY "$scheme$request_method$host$1";
}
}
Способ nginx для этого:
location /videos {
root /var/www/html;
}
Здесь мы настраиваем другой корневой каталог для nginx для URI, начинающихся с / videos
. Поскольку nginx автоматически добавляет видео
после каталога, указанного в корне
, у нас есть только / var / www / html
Просто добавьте блок местоположения в существующий блок сервера. Это может быть не идеально, но должно дать вам хорошую идею.
location /videos/ {
root /var/www/html/;
}
Добавьте дополнительные блоки местоположения для любых других, которые вам потребуются.
В конечном итоге вам может потребоваться немного более сложная логика сопоставления путей, например, регулярные выражения или подстановочные знаки. Здесь есть хорошее руководство .