我有一个vue应用程序,我正在使用pm2和apache进行测试。一旦pm2启动了应用程序并且该应用程序在端口3000上运行,我就使用apache反向代理来使用域和https。但是,当我需要使用基本url时,我希望在中获得相同的基本url。
目前,我得到的基本url如下
var base_url = window.location.origin;
在vue应用程序中使用时,此选项始终返回 localhost:3000
但由于url已被代理更改,因此返回的新url应为 mydomain.com
我如何检测应用程序正在使用代理处理请求,并在vue中返回正确的基本url?
我的apacheconf
<VirtualHost *:80>
ServerAdmin info@mydomain.com
ServerName mydomain.com
ServerAlias www.mydomain.com
DocumentRoot /var/www/html
ProxyRequests Off
ProxyPreserveHost On
ProxyVia Full
<Proxy *>
Require all granted
</Proxy>
ProxyPass / http://localhost:3000/
ProxyPassReverse / http://localhost:3000/
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
RewriteEngine on
RewriteCond %{SERVER_NAME} =mydomain.com [OR]
RewriteCond %{SERVER_NAME} =www.mydomain.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]
</VirtualHost>
1条答案
按热度按时间ncgqoxb01#
您需要告诉nginx将url向下传递到您的vue应用程序。你需要使用这样的东西(
nginx.conf
):这些是使其工作所需的一些标题。
或者,如果您使用的是apache,则可以添加此指令
ProxyPreserveHost On
它会起作用的。