Szukałem w Google i nie miałem wielkiego sukcesu w znalezieniu odpowiedzi. Używam serwera na Ubuntu i mam zainstalowane programy korzystające z różnych niestandardowych portów. Każdy używa innego portu, w moim przypadku są to 9090, 9091, 9092, 9093 i 9094. Skonfigurowałem serwer Apache i mam nazwę domeny, która może teraz połączyć się z moim serwerem zamiast wpisywać mój adres IP. To, czego szukam, to sposób na utworzenie katalogów, które mogą wskazywać na wymienione przeze mnie porty. Chcę coś takiego:
https://www.mydomain.com/app1 https://www.mydomain.com/app2 http://www.mydomain.com/app3
Niektóre porty obsługują protokół SSL, inne nie. Po prostu uporządkowałem je (9090-9094), aby ułatwić sobie korzystanie z mojej strony. Chciałbym, aby / app1 wskazywał na port 9090 SSL, / app2 wskazywał na port 9091 SSL i / app3 wskazywał na port 9092 inny niż SSL. Czy istnieje prosty sposób to zrobić? Próbowałem dodać ProxyPass i tym podobne w oparciu o inne posty, ale nic nie działało. Czy muszę dodać nową stronę?
Ponadto, jeśli wiąże się to z edycją plików, co, jak się spodziewam, będzie bardzo mile widziane, gdybyś mógł podać domyślną lokalizację pliku i miejsce dodawania rzeczy. Wciąż widziałem posty mówiące o dodaniu ProxyPass, więc po prostu założyłem, że weszło do VirtualHost, ale nie byłem do końca pewien. Zasadniczo wiem bardzo niewiele na temat konfiguracji serwera WWW i muszę być traktowany jako taki.
Przepraszam za wszelkie nieprawidłowe tagi i doceniam czas poświęcony na przeczytanie posta oraz wszelką pomoc, którą możesz udzielić.
EDYCJA: Dla wyjaśnienia, aplikacje są już dostępne poprzez https://www.mydomain.com:9090
, itp. Chciałbym po prostu skorzystać z tego, https://www.mydomain.com/appName
aby dostać się do tej samej lokalizacji / strony opublikowanej przez te aplikacje.
EDYCJA 2: Z / etc / apache2 / sites-available / default
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
ProxyRequests Off
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /app1 https://localhost:9090/
ProxyPassReverse /app1 https://localhost:9090/
</VirtualHost>
źródło
<VirtualHost 10.0.0.1:80 > ServerName server.domain.com DocumentRoot /usr/local/apache/htdocs </VirtualHost>
Odpowiedzi:
Upewnij się, że następujące moduły Apache są zainstalowane i załadowane:
Możesz to sprawdzić, uruchamiając następującą komendę jako root (zakładając, że httpd znajduje się w $ PATH)
httpd -t -D DUMP_MODULES
Następnie spróbuj zmienić konfigurację na:
Serwer proxy powinien teraz działać, jeśli odwiedzasz
http://localhost/app1
lubhttp://mydomain.com/app1
zakładasz, że mydomain.com wskazuje na localhost.źródło
ProxyRequests Off <Proxy *> Order deny,allow Deny from all Allow from 127.0.0.1 </Proxy> SSLProxyEngine on ProxyPass /app1 https://localhost:9090 ProxyPassReverse /app1 https://localhost:9090
?ProxyPass /app1/ https://localhost:9090/
i to samo dla ProxyPassReverse, jeśli jest używane. Po drugie, dodaj przekierowanie RewriteRule:RewriteRule ^/app1$ /app1/ [R]
as / app1 nie byłby wtedy proxy.