DokuWiki

It's better when it's simple

User Tools

Site Tools


playground:playground

This is a playgroud in DokuWiki

Please play in this site.

日本語は? hallo x

Level 2 Headline2

d的 xx 123
air 汉字 aac
land
sea
воздух d的
земля d道德 d点对点
море d
aaa 更多

This is done now..


Level 3 Headline

Level 4 Headline

Level 5 Headline - yeah

Hello world

Справка ку ку m(

ハローワールド

ハローワールド

Alpha

This is a test.

And more test.

sdsdsd

sdsdsd

sdsdsdsd

sdsdsd

sdsdsdsd

some link goes here

External Link

  1. 1
  2. 2
  3. 3
  • 1
  • 2
  • 3
Person Role Date
Bob CE 01/01
Bob CE 01/01
Bob CE 01/01
Bob CE 01/01
Bob CE 01/01
Bob CE 01/01
Bob CE 01/01

Handbook of Space

uwsgi + nginx + django

хабрастатья
Вывесим на 8000 порт, примера ради.
Схема

Пользователь <-> Веб-сервер <-> Сокет <-> uwsgi <-> Django

Подготовка

virtualenv

virtualenv uwsgi-tutorial
cd uwsgi-tutorial
source bin/activate
att
eええ
Manufacturer Model Number Display Technology
LG XX-XXXXXXXXX LCD with CFL Backlight
Samsung XXXXXXX-XXXX OLED
Sony XX-XXXXXX-XX Plasma
Vizio XXXXXXXXXXXX LCD with LED Backlight

这么搞吃的消的啊??

uwsgi

Для начала в виртуальное окружение(примера ради)

pip install uwsgi
apt-get install pythonX.Y-dev

Проверки ради создадим

# test.py
def application(env, start_response):
    start_response('200 OK', [('Content-Type','text/html')])
    return [b"Hello World"] # python3
    #return ["Hello World"] # python2

и запустим uwsgi

uwsgi --http :8000 --wsgi-file test.py

Проверим работоспособность django приложения
Для начала

python manage.py runserver 0.0.0.0:8000

Затем можно

uwsgi --http :8000 --module mysite.wsgi
public class Test {
}

nginx

sudo apt-get install nginx
sudo /etc/init.d/nginx start 

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

доп конфиг для проекта
http://github.com/nginx/nginx/blob/master/conf/uwsgi_params

uwsgi_param  QUERY_STRING       $query_string;
uwsgi_param  REQUEST_METHOD     $request_method;
uwsgi_param  CONTENT_TYPE       $content_type;
uwsgi_param  CONTENT_LENGTH     $content_length;

uwsgi_param  REQUEST_URI        $request_uri;
uwsgi_param  PATH_INFO          $document_uri;
uwsgi_param  DOCUMENT_ROOT      $document_root;
uwsgi_param  SERVER_PROTOCOL    $server_protocol;
uwsgi_param  HTTPS              $https if_not_empty;

uwsgi_param  REMOTE_ADDR        $remote_addr;
uwsgi_param  REMOTE_PORT        $remote_port;
uwsgi_param  SERVER_PORT        $server_port;
uwsgi_param  SERVER_NAME        $server_name;

Для sites-available/enable
mysite_nginx.conf

# mysite_nginx.conf

upstream django {
    # server unix:///path/to/your/mysite/mysite.sock; # взаимодействие с uwsgi через Unix-сокет (мы воспользуемся этим вариантом позже) 
    server 127.0.0.1:8001; # взаимодействие с uwsgi через веб-порт 
}

# конфигурация веб-сервера
server {
    # порт, который будет слушать веб-сервер в ожидании запросов от пользователй
    listen      8000;
    # доменное имя
    server_name     yourserver.com; # замените на собственный домен или IP адрес
    charset     utf-8;

    # максимальный размер загружаемых на сервер данных
    client_max_body_size 75M;  

    # обслуживание медиа файлов и статики
    location /media  {
        alias /path/to/your/mysite/media;  # расположение медиафайлов (при необходимости измените)
    }

    location /static {
        alias /path/to/your/mysite/static;  # расположение статики (при необходимости измените)

    }

    # Остальные запросы перенаправляются в Django приложение
    location / {
        uwsgi_pass  django;
        include     /path/to/your/mysite/uwsgi_params; # файл uwsgi_params, который мы только что взяли с github
    }
}

Не забывает собрать статику для приложения(соберется в папку STATIC_ROOT из settings.py)

STATIC_ROOT = os.path.join(BASE_DIR, "static/")
python manage.py collectstatic

Проверки ради заходим на

http://yourserver.com:8000/media/media.png

nginx + uwsgi + test.py

uwsgi --socket :8001 --wsgi-file test.py

Тоже проверки ради

Unix socket

Производительнее чем web-порты
Редактируем конфиг из /etc/nginx

server unix:///path/to/your/mysite/mysite.sock; # взаимодействие с uwsgi через Unix-сокет
# server 127.0.0.1:8001; # взаимодействие с uwsgi через веб-порт 
uwsgi --socket mysite.sock --wsgi-file test.py

ini

Для удобства проще все записать в конфиг, сложенный в папке приложения
mysite_uwsgi.ini

#mysite_uwsgi.ini 
[uwsgi]

# Настройки, связанные с Django
# Корневая папка проекта (полный путь)
chdir           = /path/to/your/project
# Django wsgi файл
module          = project.wsgi
# полный путь к виртуальному окружению
home            = /path/to/virtualenv

# общие настройки
# master
master          = true
# максимальное количество процессов
processes       = 10
# полный путь к файлу сокета
socket          = /path/to/your/project/mysite.sock
# права доступа к файлу сокета
# chmod-socket    = 664
# очищать окружение от служебных файлов uwsgi по завершению
vacuum          = true
uwsgi --ini mysite_uwsgi.ini

uwsgi глобально

выходим из virtualenv

deactivate
sudo pip install uwsgi

Проверяем

uwsgi --ini mysite_uwsgi.ini

Автозапуск

Отсебятина

для python3 использовать uwsgi_python3 из пакета uwsgi-plugin-python3
проект лучше выкинуть в /var/www с соответствующей подменой путей в конфиге
права отдать www-data пользователю, с доступом 744

Footnotes

Footnotes with Markdown extra and special content 8-)

Footnotes work mostly like reference-style links. A footnote is made of two things: a marker in the text that will become a superscript number; a footnote definition that will be placed in a list of footnotes at the end of the document. A footnote looks like this:

That's some text with a footnote.[^1]

[^1]: And that's the footnote. Footnote definitions can be found anywhere in the document, but footnotes will always be listed in the order they are linked to in the text. Note that you cannot make two links to the same footnotes: if you try, the second footnote reference will be left as plain text.

Each footnote must have a distinct name. That name will be used to link footnote references to footnote definitions, but has no effect on the numbering of the footnotes. Names can contain any character valid within an id attribute in HTML.

Footnotes can contain block-level elements, which means that you can put multiple paragraphs, lists, blockquotes and so on in a footnote. It works the same as for list items: just indent the following paragraphs by four spaces in the footnote definition:

That's some text with a footnote.[^1]

[^1]: And that's the footnote.

  That's the second paragraph.

If you want things to align better, you can leave the first line of the footnote empty and put your first paragraph just below:

[^1]:

  And that's the footnote.
  That's the second paragraph.

OUTPUT

It’s probably true that a single footnote markup cannot satisfy everyone. A future version may provide a programming interface to allow different markup to be generated. But for today, the output follows what can be seen on Daring Fireball, with slight modifications. Here is the default output from the first sample above:

<p>That's some text with a footnote.

 <sup id="fnref-1"><a href="#fn-1" class="footnote-ref">1</a></sup></p>

<div class=“footnotes”> <hr /> <ol>

<li id=“fn-1”> <p>And that's the footnote.

 <a href="#fnref-1" class="footnote-backref">&#8617;</a></p>

</li>

</ol> </div> A little cryptic, but in a browser it will look like this:

That’s some text with a footnote.1

And that’s the footnote. ↩ The class=“footnote-ref” and class=“footnote-backref”> attributes on the links express the relation they have with the elements they link to. They can be used to style the elements with CSS rules such as:

a.footnote-ref { … } a.footnote-backref { … } You can customize the class and title attributes for footnote links and backlinks. See the configuration reference for more details.

fff

8-O

playground/playground.txt · Last modified: 2017-03-26 09:58 by 130.69.124.12