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

gordy

Мастер
Регистрация
25 Авг 2015
Сообщения
228
Реакции
32
пришлось поднять веб сервер nginx на windows, использовал связку nginx php mysql phpmyadmin, пытаюсь развернуть сайт yii2-advanced, но с настройками nginx не получается так как никогда не сталкивался с настройкой...

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

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

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

Код:
#user  nobody;
worker_processes  1;
error_log  logs/error.log;
error_log  logs/error.log  notice;
error_log  logs/error.log  info;
pid        logs/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include mime.types;
   
    server {
       listen 443;
       server_name yii2-advanced.su;
       rewrite ^(.*) http://$host$1 permanent;
    }
   
   
    server {
         listen 80 default; # этот конфиг - по умолчанию для 80 порта
       
         server_name ~^(www\.)?(?<domain>.+)$;
         set $base_root C:/nginx/public_html/$domain; # передаем путь в переменную $base_root
         root $base_root;  # корень сайта определяем автоматически
         index index.php index.html; # в каком порядке искать индексные файлы
         charset utf-8;
       
        location = /admin {
        return 301 /admin/;
       }
     
       location / { # лицевая страница сайта
        root $base_root/frontend/web;
        try_files $uri $uri/ /frontend/web/index.php$is_args$args;
        location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|pdf|ppt|txt|bmp|rtf|js)$ {
            access_log off;
            expires max;
        }
        location ~ ^/assets/.+\.php(/|$) {
            deny all;
        }
    }
location /admin { # закрытая страница сайта
        alias $base_root/backend/web/;
        try_files $uri $uri/ /backend/web/index.php$is_args$args;
        location ~ ^/admin/.+\.(css|js|ico|png|jpe?g|gif|svg|ttf|mp4|mov|swf|pdf|zip|rar)$ {
            log_not_found off;
            access_log off;
            try_files $uri =404;
        }
        location ~ ^/admin/assets/.+\.php(/|$) {
            deny all;
        }
    }
    location /api {
        alias $base_root/api/web/;
        try_files $uri $uri/ /api/api/web/index.php$is_args$args;
        location ~ ^/api/.+\.(css|js|ico|png|jpe?g|gif|svg|ttf|mp4|mov|swf|pdf|zip|rar)$ {
            log_not_found off;
            access_log off;
            try_files $uri =404;
        }
        location ~ ^/api/assets/.+\.php(/|$) {
            deny all;
        }
    }
    client_max_body_size 64m;
    location ~ ^/.+\.php(/|$) {
        rewrite (?!^/backend/web)^/admin(/.+)$ /backend/web$1 break;
        rewrite (?!^/api/web)^/api(/.+)$ /api/web$1 break;
        rewrite (?!^/((frontend|backend|api)/web|admin|api))^ /frontend/web$uri break;
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
        fastcgi_pass 127.0.0.1:9000; # proxy requests to a TCP socket
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
        try_files $fastcgi_script_name =404;
          }
        }
     }

проблема в том что при открытии localhost дописывается /frontend/web и при открытии phpmyadmin тоже дописывается frontend/web

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

Код:
location / { # лицевая страница сайта
        root $base_root/frontend/web;
        try_files $uri $uri/ /frontend/web/index.php$is_args$args;
        location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|pdf|ppt|txt|bmp|rtf|js)$ {
            access_log off;
            expires max;
        }
        location ~ ^/assets/.+\.php(/|$) {
            deny all;
        }
    }

а вот как исправить не понимаю, помогите разобраться с проблемой?


 
Как то дофига у тебя тут написано, вот на YII на прошлой неделе делал

Код:
    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  ***************** написать хостнейм;
        root         /usr/share/nginx/html/web;
        index index.php index.html index.htm

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
            try_files $uri $uri/ /index.php?$args;
        }

     ### Ниже конфигурация для php-fpm
       location ~ \.php$ {
            try_files $uri =404;
            fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
        }

у меня правда YII basic
 
Назад
Сверху