Найти - Пользователи
Полная версия: Запуск сервера Tornado
Начало » Web » Запуск сервера Tornado
1 2 3
dbogdanoff
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, заработала именно описанная мной схема, запуск скрипта, открытие браузера. Попробуйте, прикольно))

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

dbogdanoff
Локально и не пробовал.
Моя машина под управлением windows, полагаю, что это не проблема, но локально мне задачу не надо решать.
Локально по отношению к серверу надо подключаться, а не с клиента.
То есть в консоли сервера запустить хотя бы telnet на тот порт.
dbogdanoff
py.user.next, тоже верно, принял, спасибо.
dbogdanoff
Товарищи, посмотрите, пожалуйста, 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.
PooH
Ваши правила не работают потому, что перед ними стоит правило 18, которое режет все. До ваших дело просто не доходит. Дело в том, что iptables -A добавляет правило в конец цепочки. Вам надо вставить свои правила перед 18.

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

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

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



Конечно я указываю свои порты.
PooH
dbogdanoff
Всё работает и с ними и без них.
Это потому, что у вас сейчас торнадо напрямую смотрит в сеть на порту 9000. Для проб пойдет. Обычно в продакшене перед приложениями ставят nginx в качестве обратного прокси-сервера, нгинкс может отдавать статику не нагружая приложение, балансировать нагрузку на несколько запущенных экзепляров приложений(как в примере), ну и вообще много чего можно делать. В таком случае получается другая схема, торнадо висит на внутренним ип 127.0.0.1:<порт>(а можно и на unix-сокете), наружу смотрит только nginx на внешнем ип и 80 порту, и транслирует запросы на внутренний. В таком случае и правило в iptables для 9000 порта не понадобиться. И вообще, меньше в интернет торчит, спокойней сон :)
dbogdanoff
Раз началась такая пляска, приведу пример своей быстро собранной конфигурации 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()
dbogdanoff
Ещё у меня есть пару вопросов.
Проксируя 9000-й порт через nginx, я уже не могу на том же порту, по тому же адресу организовать сокет?
Или конкретизирую вопрос, запрос должен быть таким, чтобы миновать nginx, так?
И как мне избавиться от постоянного ручного запуска в терминале?
python app.py
Смотреть в сторону демонизации? Можно немного примеров?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB