Моя среда
Конда 4.7.10, 3.6.7 Python, Django 3.0.3
Установка uWSGI
pip install uwsgi
Если есть проблема, рассмотрим следующее решение: Ссылки Ссылки
apt-get install python3-dev
apt-get install gcc-4.7 ##卸载你的gcc版本,安装为4.7:
rm /usr/bin/gcc
ln -s /usr/bin/gcc-4.7 /usr/bin/gcc
И, наконец, повторно выполнить команду установкиpip install uwsgi
Тест UWSGI работает правильно
- Test.py создать новый файл:
touch test.py
Если вы хотите удалить запуск послеrm 文件名
входа в следующем:
def application(env, start_response):
start_response('200 OK', [('Content-Type','text/html')])
return [b"Hello World"] # python3
#return ["Hello World"] # python2
- Run uWSGI:
uwsgi --http :8080 --wsgi-file test.py
может быть ошибка:
ошибка при загрузке это время в библиотеках Shared:: uwsgi libpcre.so.1: Не удается открыть Shared Object File: Нет такого файла или каталога
Решение: Ссылки Ссылки
find / -name libpcre.so.* ##找到所有的系统中libpcre
ln -s /root/anaconda3/lib/libpcre.so.1 /lib ##创建libpcre.so.1软链到/lib下
which uwsgi ##测试一下是否好用了
Вот яма, если ваш сервер является облаком, я, например, было Али облака, мы должны обратить внимание на работы настроек портов и группы безопасности портов, соответствующие консоли облака сервера, или он не может правильно работать с HTTP портом доступа.
Тип браузера
http://example.com:8000
появится инструкция Hello World , чтобы успешно работать.
Ниже представляет собой обычный путь: в веб - клиенте <-> uWSGI <-> Python
ps.Ubuntu команда убить определяет процесс:kill -9 $(lsof -i tcp:8080 -t)
От простого к test.py проекта Django
- Создание проекта Django и убедитесь , что он работает правильно: как создать ссылку здесь
. Ps помните облако сервер проект Django settings.py положить вALLOWED_HOSTS = ['']
вместоALLOWED_HOSTS = ['*']
, позволяют другой нормальный адрес доступа. UWSGI использовать для запуска:
uwsgi --http :8000 --module mysite.wsgi
Если вы можете запустить следующее описание нормального пути нормального: веб - клиент <-> uWSGI <-> Django , как
правило , мы не разрешаем ваш браузер напрямую общаться с uWSGI, то есть работа с веб - сервера.Установка Nginx
sudo apt-get install nginx
sudo /etc/init.d/nginx start ##启动nginx服务
Доступ браузера через порт 80, вы должны получить сообщение от Nginx: «Добро пожаловать в Nginx!» .
Это показывает нормальный путь: веб - клиент <-> , а веб - сервер
Конфигурация Nginx статических маршрутов
- каталог Новый Django с именем в
uwsgi_params
файле, содержимое файла из здесь Copy - каталог Новый Django назван в
mysite_nginx.conf
документе, говорит:
upstream django {
server 0.0.0.0:8081; #web socket
}
server {
listen 8080; #nginx端口
server_name xx.xx.xx.xx; #IP地址
charset utf-8;
client_max_body_size 75M;
location /media {
alias /path/to/your/mysite/media; #media文件路径
}
location /static {
alias /path/to/your/mysite/static; #static文件路径
}
location / {
uwsgi_pass django;
include /path/to/your/mysite/uwsgi_params; #uwsgi_parms文件路径
}
}
- Вышеуказанные документы, связанные с / и т.д. / Nginx / сайты с поддержкой для того, чтобы определить Nginx
sudo ln -s ~/path/to/your/mysite/mysite_nginx.conf /etc/nginx/sites-enabled/
- settings.py файл ИЗМЕНЯЮТ Джанго, добавьте следующее заявление:
STATIC_ROOT = os.path.join(BASE_DIR, "static/")
- Выполните следующую команду:
python manage.py collectstatic
- Перезагрузка Nginx
sudo /etc/init.d/nginx restart
Тест
тест фотографии test.jpg в СМИ папку доступа ,xx.xx.xx.xx:8080/media/test.jpg
если они могут получить доступ, что указывает на Nginx при условии правильных файловых службзапрос динамической конфигурации Nginx
Nginx , чтобыtest.py
приложение сказать «привет мир» это.
uwsgi --socket :8081 --wsgi-file test.py
socket :8081
: Протокол использования uWSGI, порт 8081, то же самое время, Nginx уже настроен для связи с uWSGI в порту, в то время как внешний порт 8000. Доступ:xx.xx.xx.xx:8080/
появление «привет мир» объяснил нормальный следующий путь: веб - клиент <-> на веб - сервер <-> гнездо <-> uWSGI <-> PythonВместо того чтобы использовать сокет порт Unix
Мы в настоящее время с помощью простого TCP сокета, заменить Unix сокета с меньшими затратами.- Редактирование
mysite_nginx.conf
файла
в первом предложенииserver 0.0.0.0:8081; #web socket
читайтеserver unix:///path/to/your/mysite/mysite.sock;
здесь / путь / к / ваш / ..... в свой собственный путь, mysite.sock автоматически генерируется, не игнорировать его. - Перезагрузка Nginx:
sudo /etc/init.d/nginx restart
- Снова запустить uWSGI:
uwsgi --socket mysite.sock --wsgi-file test.py
В браузере, перейдите по ссылке:
xx.xx.xx.xx:8000/
здесь может появиться 502 Bad Gateway, потому что Nginx не орган , чтобы войти в каталог, он не может получить доступ к файлу сокета, один решение изменить идентификатор пользователя работает Nginx, то /etc/nginx/nginx.conf первая строка WWW-пользовательских данных, изменение прав доступа для WWW-данных достаточно высоких пользователей, перезагрузите Nginx. Я прямо в корень, вы можете работать должным образом.Использование uWSGI и Nginx запущенного приложения Django
Введите следующую команду для запуска приложения Django
uwsgi --socket mysite.sock --module mysite.wsgi --chmod-socket=664