вопросы убунт NGINX uwsgi HTTPS развертываний встречаются Джанго

Участвуйте в три дня, наконец, Django успешно развернуты в Ubuntu, запишите его;

Цитируется из пузыря чай :

Проект Nginx + Uwsgi + Django под процессом развертывания Ubuntu подробно

Описание помещения:

Джанго в качестве серверного апплета, запрос апплета из-за бэкэнд HTTPS запросы, поэтому Django должен поддерживать протокол HTTPS запросов

ОТ РЕДАКЦИИ:

Перед развертыванием проекта Django, Django поставляется с первым сервером беготни, чтобы увидеть, если нет проблем, то развертывание, в противном случае сам проект может иметь проблемы, но это не приводит к развертыванию права

Выполните команду: питон manage.py runserver .....

Различные конфигурации:

1, поддержка Nginx HTTPS запросы

nginx.conf 1) Конфигурация объекта проекта

Выше Nginx потребности компонента # Подключения к 
вышестоящим Джанго { 
    # UNIX: ///home/breavo/PyWorkSpace/mysite_code_shuffle/config/eshop.sock 
    Сервер xx.xx.xx.xx: 8002; # xx.xx.xx.xx IP является сервером, если облако серверов Tencent, сервер является внешним IP, где ф и порт находятся в связи и uwsgi варианте, тот же профиль и uwsgi.ini 
} 


# серверная конфигурация 
сервера { 
    # ваш порт сайта быТь ON служил Волей 
    прослушивания SSL 90; # порт прослушивания может быть любой порт, но порт был использован и не конфликтный 
    # прослушивания 8003; 
    # в имени домена IT по прослужит 
    server_name indoor.crazymonkey.ml; # здесь это имя домена также может быть родной IP, с выше xx.xx.xx.xx 
    кодировок UTF- 8;. 

    # макс Загрузить размер 
    client_max_body_size 75М; # ADJUST Испытать
 
    # SSL Конфигурация
    SSL на; # открытой проверки SSL, поддержка HTTPS запросы 
    ssl_certificate /root/hewenjuan/Indoor_Localization/2446810_www.preciselocation.top.pem; # SSL сертификат ставится в положение 
    ssl_certificate_key /root/hewenjuan/Indoor_Localization/2446810_www.preciselocation.top.key; # используя абсолютный путь , конечно , настоящие друг 

    # Джанго Медиа 
    РАСПОЛОЖЕНИЯ / Медиа { 
        Алиас / корень / hewenjuan / Indoor_Localization / СМИ; # медиафайлы вашего Джанго проекта - мерзавец совершить внести необходимые изменения, есть фотографии и т.д., 
    } 

    РАСПОЛОЖЕНИЕ / статический { 
        # Алиас / путь / к / вашему / в MySite / статические; # вашего проект Django APOS статических файлов - мерзавец фиксации внести необходимые изменения 
        Алиаса / корневой / hewenjuan / Indoor_Localization / статические; # статического расположения файла, Django проекта администратор статических файлы 
    } 

    # окончательно, посылать все запросы без средств массовой информации к Джанго сервер.
    место / { 
        uwsgi_pass Джанго; # это ссылка на вышеуказанную конфигурацию верхнего Джанго
        # Включить / дом / breavo / PyWorkSpace / mysite_code_shuffle / конфигурации / uwsgi_params; # В uwsgi_params файл , который вы установили 
        включить / и т.д. / Nginx / uwsgi_params; 
    } 
}

  

  Примечание: Проверьте правильность указанного выше файла с Nginx Nginx -t команды

2), расположенный, соответствующий элементу uwsgi.ini

Mysite_uwsgi.ini File # 
[к uwsgi] 
Гнездо = xx.xx.xx.xx: # 8002 Tencent облака внутренний IP, порт и часть nginx.conf Джанго же конфигурации 
# Джанго настройки , связанные 
# Базовый каталог (полный путь) 
в Chdir = / Indoor_Localization # Джанго директория проекта / корень / hewenjuan 
# Файл Джанго WSGI в 
модуль = Indoor_Localization.wsgi # 
# Модуль = конфигурации / hello.py: Заявление 
/ wsgi.py положение wsgi_file = Indoor_Localization # Джанго wsgi.py проект , расположенный, по отношению к началу ChDir Catalog 
# wsgi_file = /root/hewenjuan/Indoor_Localization/config/hello.py:application 
# в virtualenv (Полный путь) 
virtualenv = /root/.pyenv/versions/indoorLocation/bin/python3.6 # Python виртуальной среды абсолютное положение 
# дом = /root/.pyenv 
дом = /root/.pyenv/versions/indoorLocation

# Настройки связанные с процессом 
# мастер 
мастер = истина 
# максимальное количество рабочих процессов 
процессов = 10 
# сокет (используйте полный путь , чтобы быть безопасным 
# гнездо = /root/hewenjuan/Indoor_Localization/Indoor_Localization.sock 
# ... с соответствующими разрешениями - может быть необходима 
CHMOD-сокет = 666 
# ясных сред на выход 
вакууме = TRUE 

статистик =% (CHDIR) /config/uwsgi.status            

PidFile =% (ChDir) /config/uwsgi.pid  
# демоном =% (Chdir) /config/uwsgi.log # открыть поле, uwsgi работает в фоновом режиме, сохранять в файл журнала, если поле не включается, а затем запустить на переднем плане, журнал отображается на экране ( удобство отладки)
# PidFile =% (ChDir) / конфигурации /uwsgi.pid 
#plugins = /root/.pyenv/versions/indoorLocation/bin/python3.6

  3) Каждый раз, когда вы изменяете код файла проекта Django, необходимо перезапустить uwsgi и Nginx, поэтому он написал загрузки файла start.sh

killall -9 uwsgi # закрыть весь процесс uwsgi, иногда не выключая последний процесс uwsgi начнет новую ошибку и другие проблемы 
-9 uwsgi # Количество killall, иногда будет закрыт , как только ситуация не выключить 
uwsgi --ini mysite_uwsgi.ini # начать mysite_uwsgi.ini файлы , которые начинаются uwsgi процесса 
перезапустить /etc/init.d/nginx процесс перезапуска # Nginx

  Описание: Запустить start.sh команду: ш start.sh

 

2, uwsgi поддержка HTTPS запросы

 1) uwsgi.ini расположение

# Mysite_uwsgi.ini файл 
[uwsgi] 
# 2446810_www.preciselocation.top.pem, 2446810_www.preciselocation.top.key是证书SSL HTTPS = xx.xx.xx.xx: 443,2446810_www.preciselocation.top.pem, 2446810_www.preciselocation .top.key # xx.xx.xx.xx是腾讯云内部IP # настройки Django связанные # базовый каталог (полный путь) ChDir = / корень / hewenjuan / Indoor_Localization файл WSGI # Джанго модуль = Indoor_Localization.wsgi # модуль = конфиг / hello.py: применение wsgi_file = Indoor_Localization / wsgi.py # wsgi_file = /root/hewenjuan/Indoor_Localization/config/hello.py:application # virtualenv (полный путь) virtualenv = /root/.pyenv/versions/indoorLocation/ бен / python3.6 # Дом = /root/.pyenv дом = /root/.pyenv/versions/indoorLocation # настройки связанные с процессом # мастер мастер = истина # максимальное количество рабочих процессов процессов = 10 # сокет (используйте полный путь , чтобы быть безопасным # гнездо = /root/hewenjuan/Indoor_Localization/Indoor_Localization.sock # ... с соответствующими правами - может быть необходима CHMOD-сокет = 666 # ясных среды на выходе вакууме = TRUE статистик =% (ChDir) /config/uwsgi.status PidFile = % (ChDir) /config/uwsgi.pid # демон =% (ChDir) /config/uwsgi.log # PidFile =% (ChDir) /config/uwsgi.pid #plugins = /root/.pyenv/versions/indoorLocation/bin/python3.6

  

Проблемы, возникающие:

1, каждый раз, когда вы выходите из аккаунта будет предложено снова войти в систему, pyenv не существует

 

Причина:

Метод: Командная строка: источник ~ / .bashrc, т.е. .bashrc исполнение файла заявление (заявления инициализации включают pyenv)

2, Nginx вопрос прав: Джанго админ стиль фона не отображается, просмотреть журнал ошибок Nginx (Location: /var/log/nginx/error.log), отказано в разрешении отображения Permission Denied

Разрешения на выполнение статических файлов в проекте Django не хватает: Reason

Методы: Откройте файл /etc/nginx/nginx.conf, изменять пользовательские WWW-данные для корневого пользователя (корень: имя вашей учетной записи в настоящее время вошли в систему, это может быть другой Ubuntu)

参考qingspace : https://www.cnblogs.com/qingspace/p/6838747.html

3, недоступен модификатор просил

Причина: Виртуальная среда не является активным питоном

Метод: Введите команду: pyenv активировать хх хх активировать среду хх ваш проект, где виртуальная среда питон

 4, в зависимости установки проекта: пип установка -r requirements.txt, столкнулась с проблемой: установка не удалось, интерфейс не показывает безуспешный

Успешно ... показано ниже появляется только представляет успешную установку

 Причина: requirements.txt файл имеет win_xx установочного пакета, то есть питон система установки пакет окно доступа используется, подобный win32 и т.д., что может быть удалено;

Так как можно написать код, используя оконную систему, при развертывании в системе Linux

Решение: Удалить win32 и другой пакет установки для оконных систем

рекомендация

отwww.cnblogs.com/heiao10duan/p/11159524.html