LINUX.ORG.RU

Сообщения Closius

 

Tornado логирование

Добрый день.

У меня есть сервер на торнадо. Использую только вебсокеты.

Подскажите плиз как настроить логирование для него??? Хотя бы чтоб определенные вычисления (типа print() или через логгер) попадали в файл.

Читаю офф доку ниче не пойму... Вроде и подключил, но не работает.


from tornado.options import options, define, parse_command_line
import logging

...


class MessagesHandler(tornado.websocket.WebSocketHandler):
    def __init__(self, *args, **kwargs):
        super(MessagesHandler, self).__init__(*args, **kwargs)

    def open(self, v):

	...

        print("%s: %s is connected" % (timezone.now(), self.sender_name))


if __name__ == '__main__':
    args = sys.argv
    args.append("--log_file_prefix=/home/ubuntu/my_server_env/logs/tornado.log")
    parse_command_line(args)

    logging.info('Starting up')

    application = tornado.web.Application([
        (r'/' + API_VERSION_TORNADO + r'/connect$', MessagesHandler),
    ])

    ioloop = tornado.ioloop.IOLoop.instance()

    application.db = momoko.Pool(
        dsn='dbname=%s '
            'user=%s '
            'password=%s '
            'host=%s '
            'port=%s' % (  DATABASES['default']['NAME'],
                           DATABASES['default']['USER'],
                           DATABASES['default']['PASSWORD'],
                           DATABASES['default']['HOST'],
                           DATABASES['default']['PORT'] ),
        size=1,
        ioloop=ioloop,
    )

    future = application.db.connect()
    ioloop.add_future(future, lambda f: ioloop.stop())
    ioloop.start()
    future.result()

    application.listen(PORT, address=ADDRESS)
    ioloop.start()

 ,

Closius
()

Закон о персональных данных и социальная сеть

Добрый день.

Я и мой друг разрабатываем мобильное приложение для айфона, которое представляет собой социальную сеть для знакомств.

Эта социальная сеть может работать в любой точке мира, то есть нет нацеленности на определенную страну. Язык интерфейса английский.

Живем мы в РФ. Юридического лица у нас пока нет и регистрировать его мы собираемся не в россии.

Вопрос: Несем и мы какую-либо ответственность в РФ за этот сервис? Какие у нас могут могут быть проблемы с этим в РФ? И как избежать проблем?

Перемещено tailgunner из security

 ,

Closius
()

Проблемы с nginx

Добрый день.

Проблема с nginx..

Все работает кроме одного. Я хочу чтобы при обращении на example.com был мой лендинг, а при обращении на example.com/.. был Django.

Сейчас при обращении к example.com пишет 404 The requested URL /index.html was not found on this server.

Как мне это дело наладить?

Вот мой файл настройки

upstream django_server {
      server unix:/home/ubuntu/my_server/run/gunicorn.sock fail_timeout=0;
}

upstream tornado_server {
        server 127.0.0.1:8890;
        server 127.0.0.1:8891;
        server 127.0.0.1:8892;
}

server {

    listen 80 default_server;

        server_name example.com;

        server_tokens off;
        default_type application/json;
        keepalive_timeout 65;
        proxy_read_timeout 60;
        tcp_nodelay on;
        proxy_next_upstream error;
        client_max_body_size 5m;

        gzip on;
        gzip_http_version 1.0;
        gzip_comp_level 2;
        gzip_proxied any;
        gzip_min_length  1000;
        gzip_buffers 16 8k;
        gzip_types *;

# Landing
        location = / {
                root /home/ubuntu/landing_page;
                index index.html index.htm;
     }
        location /assets/.. {
                alias /home/ubuntu/landing_page/assets;
     }

# Doc
        location /docs {
                index index.html index.htm;
                auth_basic "restricted";
                auth_basic_user_file /home/ubuntu/.htpasswd;
                alias /home/ubuntu/my_server/docs/build/html;
        }

# Tornado
        location = /api/v1.0/connect {
                proxy_pass http://tornado_server;
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_set_header Host $http_host;
                proxy_redirect off;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Scheme $scheme;
        }

# Dajango
        location /static/ {
                alias   /home/ubuntu/my_server/_static/;
        }
        location / {
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header Host $http_host;
                proxy_redirect off;
                proxy_pass http://django_server;
        }

}

 ,

Closius
()

Один домен два ip

Добрый день.

У меня есть домен: example.com

На него я купил сертификат, валидировал его, все хорошо, все работает.

Но потом я добавил почту на отдельный сервак. Итого у меня появилось два ip.

Первый ip: example.com (Django, Tornado, лендинг пейдж)

Второй ip: example.com/mail (e-mail, iRedMail)

Round robin dns тут не поможет, в этом я уже убедился.

Как бы сделать чтоб все работало? У меня nginx везде.

PS: Нет я не хочу себе contact@mail.example.com

Я хочу contact@example.com

 , , , ,

Closius
()

Заменить строку в которой есть «foo»

Добрый день.

Есть файл с таким содержимым:

AAA="2533"
BBBB="99df"
CCC="llk.ff."

значения переменных (AAA, BBBB, CCC) могут быть любыми

Нужна команда которая бы нашла ССС и заменила его так:

AAA="2533"
BBBB="99df"
CCC="tttt"

Как это сделать при помощи sed ?

 , ,

Closius
()

Postfix silent instalation

Добрый день.

Пишу

sudo apt-get -y install postfix

а он мне выдает этот ***ный аля гуи экран. Как сделать так, чтобы он утснавливается без всяхких настроек?

 

Closius
()

Записать текст в файл

Добрый день.

Есть следующий текст:

#!/bin/bash
#
NAME="my_server"                                # Name of the application
DJANGODIR=$MY_HOME                              # Django project directory
SOCKFILE=$FOR_SOME/run/gunicorn.sock              # we will communicte using this unix socket
USER=ubuntu                                               # the user to run as
GROUP=webapps                                 # the group to run as
NUM_WORKERS=3                                     # how many worker processes should Gunicorn spawn
DJANGO_SETTINGS_MODULE=my_server.settings   # which settings file should Django use
DJANGO_WSGI_MODULE=my_server.wsgi               # WSGI module name
#
echo "Starting $NAME as `whoami`"
#
# Activate the virtual environment
cd $DJANGODIR
source ../bin/activate
export DJANGO_SETTINGS_MODULE=$DJANGO_SETTINGS_MODULE
export PYTHONPATH=$DJANGODIR:$PYTHONPATH
#
# Create the run directory if it doesn't exist
RUNDIR=$(dirname $SOCKFILE)
test -d $RUNDIR || mkdir -p $RUNDIR
#
# Start your Django Unicorn
# Programs meant to be run under supervisor should not daemonize themselves (do not use --daemon)
exec ../bin/gunicorn ${DJANGO_WSGI_MODULE}:application \
  --name $NAME \
  --workers $NUM_WORKERS \
  --user=$USER --group=$GROUP \
  --bind=unix:$SOCKFILE \
  --log-level=debug \
  --log-file=$FOR_SOME/logs/gunicorn_my_server.log

Как этот текст записать в файл в bash скрипте? Через echo " не получается.

 

Closius
()

nginx раздача статики

Добрый день

Есть у меня документация. index.html находится по пути $MY_DIR_HOME/docs/build/html

Мне надо чтоб по запросу http://myfu***ngsite.com/docs выдавалась моя index.html

Я добавляю в sites-available файл типа my_docs с таким содержимым.

server {
        listen 80;
        root $MY_DIR_HOME/docs/build/html;
        index index.html index.htm;

        location "/docs" {
                try_files $uri $uri/ =404;
        }
}

Делаю слабую сслыку в sites-enabled, презапускаю nginx и ничего не работает.

Подскажите плиз...

 ,

Closius
()

Выполнять в скрипте команды от разных пользователей

Добрый день

Как можно в bash скрипте выполнять команды (например mkdir) от имени другого пользователя?

У меня в скрипте происходят установки разных пакетов (sudo apt-get ...)

Я написал скрипт без sudo, а сам скрипт запускаю через sudo bash script.sh Но тогда все созданные директории в скрипте создаются от имени root.. А мне надо от имени пользователя (например ubuntu)

 ,

Closius
()

mkdir внтури скрипта

Добрый день.

Есть у меня скрипт:

script.sh:

#!/bin/bash mkdir hello

запускаю sudo bash script.sh

Создается непонятная директория вида «hello?»

Что это?? как это??

Скрипт создавал на винде, потом его запихнул в дропбокс и скачал на сервере. Сделал ему права и запустил.

Сделал точно такой же скрипт только прям из линукса и все нормально...

 

Closius
()

Кластеризация гео данных

Предлагаю обсудить такой вопрос: Кластеризация гео данных (куча точек разбросано на карте и чтобы они не накладывались друг на друга их объединяют в кластер и говорят, что там столько то их).

На сколько я понимаю кластеризация - это довольно ресурсоемкий процесс.. В связи с этим есть два варианта: 1) Проводим кластеризацию на сервере и возвращаем список в котором есть обычные точки и кластеры. 2) Возвращаем список всех маркеров в регионе и проводим кластеризацию на клиенте.

Кто за какой вариант и почему? PS: Приложение под смартфоны, то есть под мобильные девайсы.

 ,

Closius
()

Наследование InlineModelAdmin в Django admin.py

Добрый день всем!

У меня есть модели: User, UserInfo, PhotoAlbum, Photos

Наследование такое: User<-->UserInfo-->>PhotoAlbum-->>Photos

-->> - один ко многим <--> - один к одному

Я хочу все это дело отобразить в админке.

Но не понимаю как.. помогите пожалуйста..

Вот мой код admin.py:

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User

from .models import UserInfo, PhotoAlbum, Photos

class PhotosInfoLine(admin.StackedInline):
    model = Photos
    can_delete = False
    verbose_name_plural = 'Photos'

class PhotoAlbumInfoLine(admin.StackedInline):
    model = PhotoAlbum
    can_delete = False
    verbose_name_plural = 'PhotoAlbum'


class UserInfoInline(admin.StackedInline):
    model = UserInfo
    fields = ('id', 'imgUrl', 'head', 'descr', 'age', 'gender', 'interests', 'status', 'is_blocked', 'reason_of_blocking', 'is_deleted')
    can_delete = False
    verbose_name_plural = 'UserInfo'


class UserAdminIL(UserAdmin):
    list_display = ('username','id', 'first_name', 'last_name', 'email' , 'date_joined', 'last_login', 'is_active')
    fieldsets = (
        (None, {
            'fields': ('username', 'first_name', 'last_name', 'email', 'date_joined', 'last_login', 'is_active'),
        }),
    )
    readonly_fields = ('date_joined', 'last_login', 'id',)
    list_filter = ('date_joined', 'last_login')

    ordering = ('-date_joined',)
    inlines = (UserInfoInline, )


admin.site.unregister(User)
admin.site.register(User, UserAdminIL)

 ,

Closius
()

RSS подписка на новые темы