Je veux que mon Laravel utilise Nuxt JS côté client et utilise Laravel comme panneau d'administration backend et api (s).
Ceci est mon code pour proxy du projet Laravel vers Nuxt JS mais cela ne fonctionne pas correctement. p >
<VirtualHost *:80>
ServerName nuxt.local
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/nuxt/public
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ProxyPassMatch /^(admin-panel)(.*)$ !
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/
ProxyPreserveHost on
LogLevel debug
</VirtualHost>
Je souhaite empêcher les routes "panneau d'administration" et "api" d'atteindre le proxy.
3 Réponses :
httpd.conf dans votre répertoire apache. Ensuite, faites une copie originale et conservez-la. ProxyPassMatch ^(admin-panel)(.*)$ http://localhost:3000/
Effectuez les modifications comme vous le souhaitez. Vous voudrez peut-être vous assurer que c'est correct avant d'ajouter:
ProxyPassMatch /^(admin-panel)(.*)$ !
Peut-être, vous voulez quelque chose comme ceci:
<VirtualHost *:3000>
ServerAdmin localhost
DocumentRoot "/var/www/html/nuxt/public"
ServerName localhost
ProxyRequests On
ProxyPreserveHost On
ProxyPass / http://127.0.0.1:3000/
<Directory "/var/www/html/nuxt/public">
Options Indexes FollowSymLinks MultiViews
MultiviewsMatch Any
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Après chaque modification dans httpd.conf , vous voudrez peut-être redémarrer apache et tester pour voir si cela fonctionnerait.
Au lieu d'utiliser la directive ProxyPassMatch , essayez simplement d'exclure chaque URL de votre passe de proxy:
ProxyPass / http://localhost:3000/ ProxyPass /admin-panel ! ProxyPass /api !
Il existe probablement un moyen de les combiner en une seule ligne avec regular expression aussi, quelque chose comme: ProxyPass ^ / (admin-panel | api) (. *) $!
Merci, mais dans ce cas, l'URL de mon panneau d'administration ne fonctionne pas
@NitinSinghNaruka Bien sûr que cela ne fonctionnera pas, vous avez demandé d'exclure la route panneau d'administration . Si vous supprimez le ProxyPass / admin-panel! de votre configuration Apache, cela fonctionnera à nouveau.
Je veux dire que le panneau d'administration ne gère pas avec Laravel
J'ai résolu le problème
Je poste mon code de configuration apache2. Peut-être que cela peut être utile pour tout.
\URL::forceRootUrl(env('APP_URL'));
et dans le fichier laravel routes / web.php, écrivez le
<VirtualHost *:80>
ServerName blog.net
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/blog/public
<LocationMatch "/">
allow from all
Satisfy any
ProxyPass http://localhost:3000/
ProxyPassReverse http://localhost:3000/
</LocationMatch>
<LocationMatch "/admin-panel/*">
allow from all
Satisfy any
ProxyPass http://localhost/blog/public
ProxyPassReverse http://localhost/blog/public
</LocationMatch>
<LocationMatch "/admin/*">
allow from all
Satisfy any
ProxyPass http://localhost/blog/public
ProxyPassReverse http://localhost/blog/public
</LocationMatch>
<LocationMatch "/api/*">
allow from all
Satisfy any
ProxyPass http://localhost/blog/public
ProxyPassReverse http://localhost/blog/public
</LocationMatch>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
pour utiliser l'URL du projet et non l'URL proxy