Node.js Express Alexa Hodnocení webů globálně po celém světě podle zemí Wise Používání alexa-rank-nodejs

Může to být velmi jednoduchá otázka, ale nevím, co hledat, abych vyřešil můj problém. Neváhejte mě přesměrovat na správný zdroj, což by také pomohlo.

Toto je poprvé, co se snažím nasadit aplikaci z Node.js na skutečný server (testoval jsem pouze lokálně).

Moje aplikace je postavena na NextJS. Úspěšně jsem to postavil na svém serveru a poté spustil:

npm run start 

Zdá se, že aplikace běží perfektně, ale aktuálně běží na mé doméně na portu :8080, což znamená, že k němu mám přístup pouze z této domény example.com:8080.

Snažil jsem se ho donutit, aby běžel na portu 80 ale tento port je již používán.

Snažil jsem se přimět Apache poslouchat port 8080 podle této příručky, ale pak moje aplikace odmítne spustit, protože port je také již používán.

Jak zajistím, aby se moje aplikace zobrazovala na example.com? Je to něco, co musím udělat z mého nastavení DNS domény?

Je možné také stále provozovat Apache na jiném portu?

Skončil jsem s tím hodně a mám řešení. Nejsem si jistý, jestli je to dobré řešení, ale přesto je to řešení.


Problém

Největším problémem zde je, že musím běžet současně aplikaci NodeJS A Wordpress. Wordpress musí být přístupný na veřejné adrese, aby k němu měla moje aplikace přístup.

Zatím jsem nenašel způsob, jak spustit Wordpress na jiném portu. Nevím, jestli je to možné. Apache umět být spuštěn na různých portech, ale zdá se, že jde o globální nastavení, které by ovlivnilo všechny weby spuštěné na serveru.

Moje řešení

Moje řešení je docela jednoduché. Vytvořil jsem ještě dalšího virtuálního hostitele Apache umístěného v subdoméně api.example.com a přesunul do ní svoji instalaci Wordpressu.

Tímto způsobem se nemusím starat o to, aby se moje aplikace zobrazovala na portu :80 přes moji instalaci Wordpressu.

Poté jsem spustil aplikaci na své základní doméně example.com v přístavu :8080 a upravil jsem mého Apache Virtual Host úpravou etc/apache2/sites-available/example.com.conf s tímto kódem:

 ServerAdmin [email protected] ServerName example.com DocumentRoot /var/www/example.com/public_html  Options -Indexes +FollowSymlinks AllowOverride None Require all granted  ProxyRequests Off ProxyPreserveHost On ProxyVia Full  Require all granted   ProxyPass http://127.0.0.1:8080/ ProxyPassReverse http://127.0.0.1:8080/  ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined  

Důležitá část je zde:

  ProxyPass http://127.0.0.1:8080/ ProxyPassReverse http://127.0.0.1:8080/  

Co to dělá, je vzít si cokoli na portu :8080 a místo toho jej zobrazit na portu :80 které jsme nastavili na začátku a v kořenovém adresáři domény .

To by se dalo napsat jako pokud jste chtěli svou aplikaci zobrazit na example.com/app.

Mějte na paměti, že nejsem odborníkem na Apache a tuto odpověď jsem dal dohromady asi z 10 webů, které obsahovaly jen část toho, co jsem potřeboval. Vysvětlení, jak to může fungovat, může být špatné, to je jen moje chápání. Pokud je to špatně, opravte mě.

Pracoval pro vás: Charles Robertson | Chcete nás kontaktovat?