Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 20, 2015 00:29:53

dbogdanoff
От: Калининград
Зарегистрирован: 2015-12-19
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Запуск сервера Tornado

Period +100500

Статус:

[b]service iptables status[/b]
Table: filter
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
2    ACCEPT     tcp  --  213.136.83.249       0.0.0.0/0           tcp /* Access to host from vmi27602 */ 
3    ACCEPT     udp  --  213.136.83.249       0.0.0.0/0           udp /* Access to host from vmi27602 */ 
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:8070 /* Access to manager of pool */ 
5    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
6    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           multiport dports 20,21 
7    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80 
8    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:3306 
9    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:443 
10   ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:8890 
11   ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:8891 
12   ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:8893 
13   ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:8894 
14   ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:5222 
15   ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:5223 
16   ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
17   ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
18   REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 
19   ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:8001 /* Tornado */ 
Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         
1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 
Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

Выполнил команды:
service iptables save
service iptables stop

И заработало! Приблагодарен.
Period, отключение фаервола явно не выход, подскажите, пожалуйста, что мне нужно сделать, чтобы сервер работал на нужном мне порту? Нужно явно открыть порт 9000? Как это сделать? С iptables на вы.

4kpt_III, заработала именно описанная мной схема, запуск скрипта, открытие браузера. Попробуйте, прикольно))

Офлайн

#2 Дек. 20, 2015 03:31:25

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9880
Репутация: +  853  -
Профиль   Отправить e-mail  

Запуск сервера Tornado

dbogdanoff
Нужно явно открыть порт 9000? Как это сделать?
iptables -A INPUT -p tcp --dport 9000 -j ACCEPT

dbogdanoff
Локально и не пробовал.
Моя машина под управлением windows, полагаю, что это не проблема, но локально мне задачу не надо решать.
Локально по отношению к серверу надо подключаться, а не с клиента.
То есть в консоли сервера запустить хотя бы telnet на тот порт.



Отредактировано py.user.next (Дек. 20, 2015 03:33:36)

Офлайн

#3 Дек. 20, 2015 10:03:19

dbogdanoff
От: Калининград
Зарегистрирован: 2015-12-19
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Запуск сервера Tornado

py.user.next, тоже верно, принял, спасибо.

Офлайн

#4 Дек. 20, 2015 10:29:23

dbogdanoff
От: Калининград
Зарегистрирован: 2015-12-19
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Запуск сервера Tornado

Товарищи, посмотрите, пожалуйста, iptables status:

Table: filter
Chain INPUT (policy ACCEPT)
num  target     prot opt source               destination         
1    ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           state RELATED,ESTABLISHED 
2    ACCEPT     tcp  --  213.136.83.249       0.0.0.0/0           tcp /* Access to host from vmi27602 */ 
3    ACCEPT     udp  --  213.136.83.249       0.0.0.0/0           udp /* Access to host from vmi27602 */ 
4    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:8070 /* Access to manager of pool */ 
5    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:22 
6    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           multiport dports 20,21 
7    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:80 
8    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:3306 
9    ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:443 
10   ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:8890 
11   ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:8891 
12   ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:8893 
13   ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:8894 
14   ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:5222 
15   ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:5223 
16   ACCEPT     icmp --  0.0.0.0/0            0.0.0.0/0           
17   ACCEPT     all  --  0.0.0.0/0            0.0.0.0/0           
18   REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 
19   ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           state NEW tcp dpt:8001 /* Tornado */ 
20   ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           tcp dpt:9000 
21   ACCEPT     tcp  --  0.0.0.0/0            0.0.0.0/0           multiport dports 9000 
Chain FORWARD (policy ACCEPT)
num  target     prot opt source               destination         
1    REJECT     all  --  0.0.0.0/0            0.0.0.0/0           reject-with icmp-host-prohibited 
Chain OUTPUT (policy ACCEPT)
num  target     prot opt source               destination

Так как открытие порта не помогает, помогает только остановка iptables.

Офлайн

#5 Дек. 20, 2015 15:45:51

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Запуск сервера Tornado

Ваши правила не работают потому, что перед ними стоит правило 18, которое режет все. До ваших дело просто не доходит. Дело в том, что iptables -A добавляет правило в конец цепочки. Вам надо вставить свои правила перед 18.

iptables -I INPUT 17 -p tcp –dport 9000 -j ACCEPT

ЗЫ: И на всякий случай, вдруг не в курсе, цепочки хранятся в памяти, чтобы они сохранились после перезагрузки в центосе надо выполнить service iptables save



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Отредактировано PooH (Дек. 20, 2015 15:50:13)

Офлайн

#6 Дек. 20, 2015 17:06:21

dbogdanoff
От: Калининград
Зарегистрирован: 2015-12-19
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Запуск сервера Tornado

Товарищи, я восхищён, это самое дружелюбное и отзывчивое сообщество, что я встречал.

Последний вариант сейчас опробовать возможности нет, но как доберусь до компа попробую. Отпишусь по результату.
Спасибо!

Офлайн

#7 Дек. 20, 2015 23:06:16

dbogdanoff
От: Калининград
Зарегистрирован: 2015-12-19
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Запуск сервера Tornado

Да, всё верно. Работает как часы.
Ещё есть вопрос, на странице оф. документации Tornado есть пример настройки nginx'а, какой в них смысл?) Всё работает и с ними и без них.



Конечно я указываю свои порты.

Отредактировано dbogdanoff (Дек. 20, 2015 23:06:35)

Офлайн

#8 Дек. 21, 2015 06:16:09

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

Запуск сервера Tornado

dbogdanoff
Всё работает и с ними и без них.
Это потому, что у вас сейчас торнадо напрямую смотрит в сеть на порту 9000. Для проб пойдет. Обычно в продакшене перед приложениями ставят nginx в качестве обратного прокси-сервера, нгинкс может отдавать статику не нагружая приложение, балансировать нагрузку на несколько запущенных экзепляров приложений(как в примере), ну и вообще много чего можно делать. В таком случае получается другая схема, торнадо висит на внутренним ип 127.0.0.1:<порт>(а можно и на unix-сокете), наружу смотрит только nginx на внешнем ип и 80 порту, и транслирует запросы на внутренний. В таком случае и правило в iptables для 9000 порта не понадобиться. И вообще, меньше в интернет торчит, спокойней сон :)



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Офлайн

#9 Дек. 21, 2015 11:05:41

dbogdanoff
От: Калининград
Зарегистрирован: 2015-12-19
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Запуск сервера Tornado

Раз началась такая пляска, приведу пример своей быстро собранной конфигурации nginx'а, для проксирования изнутри сервера Tornado. Ищущие что-то почерпнут, а эксперты могут дать комментарии:

server {
    listen 9000;
	
    server_name localhost;
	
	access_log /var/log/nginx/tornado_access.log main;
	error_log  /var/log/nginx/tornado_error.log warn;
	
	server_name_in_redirect off;
	
	proxy_set_header	X-Real-IP $remote_addr;
	proxy_set_header	X-Forwarded-For $proxy_add_x_forwarded_for;
	proxy_set_header	Host $host:9000;
	
	# Main location
	location / {
	  proxy_pass "http://127.0.0.1:9001";
	}
}

И соответственно само приложение Python'а теперь во вне не лезет и слушает проксируемый порт:
if __name__ == "__main__":
    http_server = tornado.httpserver.HTTPServer(application)
    http_server.listen(9001, address='127.0.0.1')
    tornado.ioloop.IOLoop.instance().start()

Офлайн

#10 Дек. 21, 2015 13:10:01

dbogdanoff
От: Калининград
Зарегистрирован: 2015-12-19
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Запуск сервера Tornado

Ещё у меня есть пару вопросов.
Проксируя 9000-й порт через nginx, я уже не могу на том же порту, по тому же адресу организовать сокет?
Или конкретизирую вопрос, запрос должен быть таким, чтобы миновать nginx, так?
И как мне избавиться от постоянного ручного запуска в терминале?

python app.py
Смотреть в сторону демонизации? Можно немного примеров?

Отредактировано dbogdanoff (Дек. 21, 2015 13:21:25)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version