Форум сайта python.su
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
Офлайн
dbogdanoff
Нужно явно открыть порт 9000? Как это сделать?
iptables -A INPUT -p tcp --dport 9000 -j ACCEPT
dbogdanoffЛокально по отношению к серверу надо подключаться, а не с клиента.
Локально и не пробовал.
Моя машина под управлением windows, полагаю, что это не проблема, но локально мне задачу не надо решать.
Отредактировано py.user.next (Дек. 20, 2015 03:33:36)
Офлайн
py.user.next, тоже верно, принял, спасибо.
Офлайн
Товарищи, посмотрите, пожалуйста, 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
Офлайн
Ваши правила не работают потому, что перед ними стоит правило 18, которое режет все. До ваших дело просто не доходит. Дело в том, что iptables -A добавляет правило в конец цепочки. Вам надо вставить свои правила перед 18.
iptables -I INPUT 17 -p tcp –dport 9000 -j ACCEPT
ЗЫ: И на всякий случай, вдруг не в курсе, цепочки хранятся в памяти, чтобы они сохранились после перезагрузки в центосе надо выполнить service iptables save
Отредактировано PooH (Дек. 20, 2015 15:50:13)
Офлайн
Товарищи, я восхищён, это самое дружелюбное и отзывчивое сообщество, что я встречал.
Последний вариант сейчас опробовать возможности нет, но как доберусь до компа попробую. Отпишусь по результату.
Спасибо!
Офлайн
Да, всё верно. Работает как часы.
Ещё есть вопрос, на странице оф. документации Tornado есть пример настройки nginx'а, какой в них смысл?) Всё работает и с ними и без них.
Конечно я указываю свои порты.
Отредактировано dbogdanoff (Дек. 20, 2015 23:06:35)
Офлайн
dbogdanoffЭто потому, что у вас сейчас торнадо напрямую смотрит в сеть на порту 9000. Для проб пойдет. Обычно в продакшене перед приложениями ставят nginx в качестве обратного прокси-сервера, нгинкс может отдавать статику не нагружая приложение, балансировать нагрузку на несколько запущенных экзепляров приложений(как в примере), ну и вообще много чего можно делать. В таком случае получается другая схема, торнадо висит на внутренним ип 127.0.0.1:<порт>(а можно и на unix-сокете), наружу смотрит только nginx на внешнем ип и 80 порту, и транслирует запросы на внутренний. В таком случае и правило в iptables для 9000 порта не понадобиться. И вообще, меньше в интернет торчит, спокойней сон :)
Всё работает и с ними и без них.
Офлайн
Раз началась такая пляска, приведу пример своей быстро собранной конфигурации 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"; } }
if __name__ == "__main__": http_server = tornado.httpserver.HTTPServer(application) http_server.listen(9001, address='127.0.0.1') tornado.ioloop.IOLoop.instance().start()
Офлайн
Ещё у меня есть пару вопросов.
Проксируя 9000-й порт через nginx, я уже не могу на том же порту, по тому же адресу организовать сокет?
Или конкретизирую вопрос, запрос должен быть таким, чтобы миновать nginx, так?
И как мне избавиться от постоянного ручного запуска в терминале?
python app.py
Отредактировано dbogdanoff (Дек. 21, 2015 13:21:25)
Офлайн