Путь веб-сайта Nginx по умолчанию в подкаталоге, а не / (root) - PullRequest
0 голосов
/ 09 ноября 2019

Я хочу настроить свой сайт так, чтобы он работал в подкаталоге, а не mydomain/. Я имею в виду, что вместо того, чтобы зайти на mysite.com/ и посмотреть сайт, я хочу, чтобы это было видно из mydomain/myproject. Я использую uwsgi для разговора с сайтом фляги, и вот мой /etc/nginx/sites-available/myproject файл конфигурации.

server {
    server_name mydomain www.mydomain;

    location / {
        include uwsgi_params;
        uwsgi_pass unix:/root/Desktop/myproject/myproject.sock;
    }

    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/mydomain/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/mydomain/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot


}
server {
    if ($host = www.mydomain) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    if ($host = mydomain) {
        return 301 https://$host$request_uri;
    } # managed by Certbot


    listen 80;
    server_name mydomain www.mydomain;
    return 404; # managed by Certbot

}

Я пытался изменить код с location / на location /myproject или location = /myproject, ноэто дало мне не найден!

Добавлена ​​информация Вот мой config.ini файл

[uwsgi]
module = server:app

master = true
processes = 5

socket = myproject.sock
chmod-socket = 660
vacuum = true

die-on-term = true

route-run = fixpathinfo:

Я использую uwsgi версии 2.0.18 и nginx / 1.14.0 (Ubuntu) Спасибо

1 Ответ

1 голос
/ 09 ноября 2019

попробуйте это ...

Конфигурация NGINX:


location /mylocation {
        include uwsgi_params;
        uwsgi_pass unix:/myproject/myproject.sock;
        uwsgi_param SCRIPT_NAME /mylocation;
    }

Файл INS UWSGI:

route-run = fixpathinfo:

Редактировать: я пробовал с переписать путь в моемКонфигурация nginx, и это сработало. Ничего особенного, чтобы настроить в вашем файле wsgi ini!

location /be {
    rewrite /be/(.+) /$1 break;
        include uwsgi_params;
        uwsgi_pass unix:/myproject/myproject.sock;

    }

EDIT : Итак, мой вывод, что fixpathinfo в uwsgi ini, кажется, не работает при использовании"/" (root) внутри FlaskApp. Если Flask использует «/», вы должны установить rewrite /be/(.*) /$1 break; в вашем NGINX Config

Спасибо, CyberDem0n !! Nginx - переписать request_uri перед uwsgi_pass

...