paulenot
@paulenot
IT Issue

Как в Ubuntu сделать поддомен на отдельный порт?

Имеется сайт на веб-фреймворке Jam.Python, при запуске он занимает адрес 0.0.0.0 на порте 8080.
Так же имеется веб-сервер Apache с сайтом на PHP7 доступного по адресу 127.0.0.1 на порте 80.

В файле /etc/hosts я добавил адрес с портом приложения:
127.0.0.1	  localhost
0.0.0.0:8080	crm.localhost


При запуске приложения на Python выводит IP и порт:
user@web-server:/var/www/crm$ python server.py 
 * Running on http://0.0.0.0:8080/ (Press CTRL+C to quit)


Но это не сработало, при переходе на crm.localhost открывается каталог /var/www/html/ который должен быть доступен только для localhost. Почему не работает, и как назначить поддомен на отдельный порт?
  • Вопрос задан
  • 669 просмотров
Решения вопроса 1
paulenot
@paulenot Автор вопроса
IT Issue
Решил все в разы проще, без установки лишнего, на поддомене разместил такой код:
<!DOCTYPE html><html><head>
	<meta charset="utf-8">
	<title>TITLE</title>
	<style type="text/css">
		* {
		    margin: 0;
		    padding: 0;
		    width: 100%;
		    height: 100%;
		    border: none;
		}
	</style>
</head><body>
	<iframe src="<?php print($_SERVER['REQUEST_SCHEME'].'://'.$_SERVER['HTTP_HOST'].':8080'.$_SERVER['REQUEST_URI']) ?>"></iframe>
</body></html>
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
ky0
@ky0
Миллиардер, филантроп, патологический лгун
Разберитесь сначала, что такое 0.0.0.0 и как /etc/hosts работает, прежде чем глупости туда добавлять.
Ответ написан
Комментировать
ерунду делаешь. Оставь hosts в покое, возьми nginx, apache c PHP настрой на 8081 и остальное настраивай в nginx
Ответ написан
Комментировать
SignFinder
@SignFinder
Wintel\Unix Engineer\DevOps
1. Второй строкой вы вписали в /etc/hosts в корне неправильную информацию.
Портов там быть не может и 0.0.0.0 для создания DNS записей тоже не нужно делать-используйте либо 127.0.0.1, если нужен доступ через localhost, либо ip адрес внешнего интерфейса, если нужен доступ по сети.
2. Создайте в apache отдельный VirtualHost для вашего домена, либо используйте default virtualhost, если сайт будет один.
3. Всем в сети, кто будет обращаться к вашему домену - так же нужно внести записи в локальный hosts файл.
Ответ написан
Комментировать
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
Сделай /etc/hosts:
127.0.0.1 localhost
127.0.0.1 crm.localhost

и открывай crm.localhost:8080

P.S. Правда localhost:8080 тоже будет работать так-же (и любой другой IP-адрес, прописанный на этом сервере), потому что 0.0.0.0 означает "используй любые имеющиеся IP-адреса".
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы