За последние 24 часа нас посетили 22893 программиста и 1236 роботов. Сейчас ищут 795 программистов ...

настройка перенаправлений nginx

Тема в разделе "Настройка веб-сервера", создана пользователем mixnet, 15 дек 2019.

  1. mixnet

    mixnet Новичок

    С нами с:
    11 авг 2018
    Сообщения:
    146
    Симпатии:
    7
    пришлось поднять веб сервер nginx на windows, использовал связку nginx php mysql pmyadmin, пытаюсь развернуть сайт yii2-advanced, но с настройками nginx не получается так как никогда не сталкивался с настройкой...

    структура такая

    nginx
    --conf
    --php
    public_html
    --localhost
    --mysql
    --phpMyAdmin
    --yii2-advanced.su

    вот так настроил nginx

    Код (Text):
    1. #user  nobody;
    2. worker_processes  1;
    3.  
    4. error_log  logs/error.log;
    5. error_log  logs/error.log  notice;
    6. error_log  logs/error.log  info;
    7.  
    8. pid        logs/nginx.pid;
    9.  
    10.  
    11. events {
    12.     worker_connections  1024;
    13. }
    14.  
    15.  
    16. http {
    17.     include mime.types;
    18.    
    19.     server {
    20.        listen 443;
    21.        server_name yii2-advanced.su;
    22.        rewrite ^(.*) http://$host$1 permanent;
    23.     }
    24.    
    25.    
    26.     server {
    27.          listen 80 default; # этот конфиг - по умолчанию для 80 порта
    28.        
    29.          server_name ~^(www\.)?(?<domain>.+)$;
    30.          set $base_root C:/nginx/public_html/$domain; # передаем путь в переменную $base_root
    31.          root $base_root;  # корень сайта определяем автоматически
    32.          index index.php index.html; # в каком порядке искать индексные файлы
    33.          charset utf-8;
    34.        
    35.         location = /admin {
    36.         return 301 /admin/;
    37.        }
    38.      
    39.        location / { # лицевая страница сайта
    40.         root $base_root/frontend/web;
    41.         try_files $uri $uri/ /frontend/web/index.php$is_args$args;
    42.         location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|pdf|ppt|txt|bmp|rtf|js)$ {
    43.             access_log off;
    44.             expires max;
    45.         }
    46.         location ~ ^/assets/.+\.php(/|$) {
    47.             deny all;
    48.         }
    49.     }
    50.  
    51.  location /admin { # закрытая страница сайта
    52.         alias $base_root/backend/web/;
    53.  
    54.         try_files $uri $uri/ /backend/web/index.php$is_args$args;
    55.  
    56.         location ~ ^/admin/.+\.(css|js|ico|png|jpe?g|gif|svg|ttf|mp4|mov|swf|pdf|zip|rar)$ {
    57.             log_not_found off;
    58.             access_log off;
    59.             try_files $uri =404;
    60.         }
    61.         location ~ ^/admin/assets/.+\.php(/|$) {
    62.             deny all;
    63.         }
    64.     }
    65.  
    66.     location /api {
    67.         alias $base_root/api/web/;
    68.  
    69.         try_files $uri $uri/ /api/api/web/index.php$is_args$args;
    70.  
    71.         location ~ ^/api/.+\.(css|js|ico|png|jpe?g|gif|svg|ttf|mp4|mov|swf|pdf|zip|rar)$ {
    72.             log_not_found off;
    73.             access_log off;
    74.             try_files $uri =404;
    75.         }
    76.         location ~ ^/api/assets/.+\.php(/|$) {
    77.             deny all;
    78.         }
    79.     }
    80.  
    81.     client_max_body_size 64m;
    82.  
    83.     location ~ ^/.+\.php(/|$) {
    84.         rewrite (?!^/backend/web)^/admin(/.+)$ /backend/web$1 break;
    85.         rewrite (?!^/api/web)^/api(/.+)$ /api/web$1 break;
    86.  
    87.  
    88.         rewrite (?!^/((frontend|backend|api)/web|admin|api))^ /frontend/web$uri break;
    89.  
    90.         # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    91.         #
    92.         location ~ \.php$ {
    93.         fastcgi_pass 127.0.0.1:9000; # proxy requests to a TCP socket
    94.         fastcgi_split_path_info ^(.+\.php)(.*)$;
    95.         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    96.         include fastcgi_params;
    97.         try_files $fastcgi_script_name =404;
    98.           }
    99.         }
    100.      }
    проблема в том что при открытии localhost дописывается /frontend/web и при открытии phpmyadmin тоже дописывается frontend/web

    это из за вот этого

    Код (Text):
    1. location / { # лицевая страница сайта
    2.         root $base_root/frontend/web;
    3.         try_files $uri $uri/ /frontend/web/index.php$is_args$args;
    4.         location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|pdf|ppt|txt|bmp|rtf|js)$ {
    5.             access_log off;
    6.             expires max;
    7.         }
    8.         location ~ ^/assets/.+\.php(/|$) {
    9.             deny all;
    10.         }
    11.     }
    а вот как исправить не понимаю, помогите разобраться с проблемой?
     
  2. Roman __construct

    Roman __construct Активный пользователь

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
    говорят сейчас многие переходят на Apache, потому что если используешь nginx - может вломиться ОМОН - аккуратней там, береги себя
     
  3. mixnet

    mixnet Новичок

    С нами с:
    11 авг 2018
    Сообщения:
    146
    Симпатии:
    7
    где Вы такую байку нашли?) ссылку пожалуйста на оригинал статьи
     
    Roman __construct нравится это.
  4. mixnet

    mixnet Новичок

    С нами с:
    11 авг 2018
    Сообщения:
    146
    Симпатии:
    7
    так по сути там вся проблема в «нарушении авторских и смежных прав», а никто не говорит что нельзя использовать проект, или я что то не знаю? скиньте ссылку где говорится что запрещено использовать Nginx (если такая информация есть)
     
  5. Roman __construct

    Roman __construct Активный пользователь

    С нами с:
    27 апр 2019
    Сообщения:
    1.270
    Симпатии:
    112
    да я прикалываюсь же ))

    воскресный вечер такой воскресный)))
     
  6. mixnet

    mixnet Новичок

    С нами с:
    11 авг 2018
    Сообщения:
    146
    Симпатии:
    7
    :)кому приколы, а кто то не знает как настроить этот веселый nginx))), уже второй день мучаюсь много вариантов было, ну пока не получается
     
    Roman __construct нравится это.
  7. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Новый владелец может сменить лицензию и nginx внезапно перестанет быть не только бесплатной, но и opensource. Так что вполне даже может быть.
     
  8. mixnet

    mixnet Новичок

    С нами с:
    11 авг 2018
    Сообщения:
    146
    Симпатии:
    7
    я тоже об этом подумал, ну пока можно пользоваться
     
  9. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    У вас же там в конфиге череда rewrite, убирайте их и не будет лишних редиректов.
     
  10. mixnet

    mixnet Новичок

    С нами с:
    11 авг 2018
    Сообщения:
    146
    Симпатии:
    7
    1. rewrite (?!^/backend/web)^/admin(/.+)$ /backend/web$1 break;
    2. rewrite (?!^/api/web)^/api(/.+)$ /api/web$1 break;


    3. rewrite (?!^/((frontend|backend|api)/web|admin|api))^ /frontend/web$uri break;
    если это убрать то вообще работать не будет
     
  11. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    Я уверен на офф сайте yii есть пример рабочей конфигурации Nginx Рамблер.
     
  12. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    ну так да, потому что где-то в логике тоже напутано с url.

    У вас есть location, который подбирается исходя из введенного адреса, есть root/alias, которые указывают где на самом деле лежат файлы, есть try_files, которые указывают в каком порядке проверять что можно загрузить. Где-то в них есть ошибка, которая закрывается костылем в виде rewrite, убираете его, а затем разбираетесь со всем остальным.
     
  13. lastdays

    lastdays Активный пользователь

    С нами с:
    27 сен 2012
    Сообщения:
    410
    Симпатии:
    74
    Пропиши алиас, типа
    ln -s /usr/share/phpmyadmin /var/www

    Зачем тебе перенаправление, если тебе это не нужно.