Приветствую снова StackExchange! Первый пост на Superuser.
Я установил Apache и PHP на свой компьютер, и все работает отлично, когда я ввожу "localhost" на своем компьютере. Но я хочу, чтобы когда кто-то вводит, http://<my ip>:<random port number that isn't used>
я хотел, чтобы он перенаправлялся на http://localhost/internet/
. Как мне сделать это с переадресацией портов? И что мне нужно настроить в Apache?
Я знаю, что это может быть вопрос №87465094 о переадресации портов, но я не видел никаких решений моей проблемы ни здесь, на Superuser, ни в остальном Интернете.
Тью
решение1
Во-первых, вы смешиваете две концепции в одну идею.
- Переадресация портов TCP/IP
- HTTP-перенаправление
Вы можете достичь желаемого, объединив эти два понятия, но это отдельные концепции.
HTTP-перенаправление
Итак, давайте пока проигнорируем переадресацию портов. Давайте сначала настроим часть перенаправления.
$ sudo editor /etc/apache2/sites-available/thews_site
Это создает новый файл конфигурации для новогосайтКонфигурация в Apache. В ней мы можем разместить всю конфигурацию для нашего сайта.
Наш виртуальный хост
Давайте определим ваш новый сайт Apache:
NameVirtualHost *:12345
<VirtualHost *:12345>
Redirect / http://www.superuser.com
</VirtualHost>
Это создает новый сайт, доступ к которому можно получить с любого локального IP-адреса, нотольков порту 12345
.
Само определение сайта довольно короткое. Оно имеет только 1 запись конфигурации. Перенаправление на целевой сайт.
Конфигурация порта Apache
Нам также нужно указать Apache прослушивать наш новый порт!
$ sudo echo "Listen 12345" >> /etc/apache2/ports.conf
Это добавит строку Listen 12345
в конец /etc/apache2/ports.conf
. Либо вы можете добавить ее самостоятельно с помощью текстового редактора.
Теперь давайте включим сайт
$ sudo a2ensite thews_site
$ sudo invoke-rc.d apache2 restart
Это установит наш ранее определенный сайт каквключено. Вторая команда перезапустит Apache.
Тестирование
Если вы http://localhost:12345
сейчас войдете в свой браузер, вы будете перенаправлены на superuser.com
!
Перенаправление порта
Теперь вы можете настроитьПеренаправление порта. Вы бы сделали это на своем маршрутизаторе. Скажите маршрутизатору перенаправить ваш публичный порт 33333
на ваш локальный порт 12345
.
Теперь, если кто-то захочет перейти наyour-public-ip:33333
ониперенаправиться на superuser.com
.
Все эти примеры были для сред на базе Debian. Надеюсь, вы сможете адаптировать их, если вам это понадобится.
Удачи :)