使用 pm2 apache 配置 nodejs api
configure nodejs api using pm2 apache
我有 nodejs 应用 运行在 centos 7 上使用 pm2
当我 运行
在服务器上
curl http://127.0.0.1:3021/products
它 returns 我的数据符合预期。
现在我希望 api 可以访问外部服务器。
所以我正在尝试配置某种反向代理?
我已经安装了 Apache 运行ning 并在服务器 https://forge.puppet.com/puppetlabs/apache
上使用 puppet 模块进行了配置
apache::vhost { 'my-api.local':
port => 80,
proxy_preserve_host => true,
proxy_dest_match => 'http://127.0.0.1:3021',
docroot => '/opt/nodejs-apis/my-api.local/current/build',
}
我的主机文件中有条目
my-api.local 指向我的 vagrant box ip.
当我在浏览器中访问 http://my-api.local 时,我得到了关注
{"statusCode":400,"error":"Bad Request","message":"Invalid URL: //"}
知道我错过了什么吗?
一些有用的链接
Running Node as a service with PM2 - connection refused
https://www.tecmint.com/install-pm2-to-run-nodejs-apps-on-linux-server/
更新
看完这个https://www.youtube.com/watch?v=KTdv_DzwTS0
我什至更改了虚拟主机文件,现在看起来像这样。
<VirtualHost *:80>
ServerName my-api.local
ProxyPreserveHost On
ProxyPass / http://localhost:3021/
ProxyPassReverse / http://localhost:3021/
</VirtualHost>
但还是没有运气:(
花了几个小时 :(, 终于这个解决了
apache::vhost { 'my-api.local':
port => 80,
proxy_preserve_host => true,
proxy_pass => { 'path' => '/', 'url' => 'http://localhost:3021' } ,
docroot => false,
}
如上 /etc/httpd/conf.d/ 中生成的
<VirtualHost *:80>
ServerName my-api.local
ProxyPreserveHost On
ProxyPass / http://localhost:3021/
ProxyPassReverse / http://localhost:3021/
</VirtualHost>
但是还需要刷新pm2服务..
不要忘记调用 api :) 例如 http://my-api.local/products
感谢https://serverfault.com/questions/804795/puppet-apache-vhost-proxypassreverse-configuration提供线索
我有 nodejs 应用 运行在 centos 7 上使用 pm2
当我 运行
在服务器上curl http://127.0.0.1:3021/products
它 returns 我的数据符合预期。
现在我希望 api 可以访问外部服务器。
所以我正在尝试配置某种反向代理?
我已经安装了 Apache 运行ning 并在服务器 https://forge.puppet.com/puppetlabs/apache
上使用 puppet 模块进行了配置apache::vhost { 'my-api.local':
port => 80,
proxy_preserve_host => true,
proxy_dest_match => 'http://127.0.0.1:3021',
docroot => '/opt/nodejs-apis/my-api.local/current/build',
}
我的主机文件中有条目 my-api.local 指向我的 vagrant box ip.
当我在浏览器中访问 http://my-api.local 时,我得到了关注
{"statusCode":400,"error":"Bad Request","message":"Invalid URL: //"}
知道我错过了什么吗?
一些有用的链接
Running Node as a service with PM2 - connection refused https://www.tecmint.com/install-pm2-to-run-nodejs-apps-on-linux-server/
更新
看完这个https://www.youtube.com/watch?v=KTdv_DzwTS0
我什至更改了虚拟主机文件,现在看起来像这样。
<VirtualHost *:80>
ServerName my-api.local
ProxyPreserveHost On
ProxyPass / http://localhost:3021/
ProxyPassReverse / http://localhost:3021/
</VirtualHost>
但还是没有运气:(
花了几个小时 :(, 终于这个解决了
apache::vhost { 'my-api.local':
port => 80,
proxy_preserve_host => true,
proxy_pass => { 'path' => '/', 'url' => 'http://localhost:3021' } ,
docroot => false,
}
如上 /etc/httpd/conf.d/ 中生成的
<VirtualHost *:80>
ServerName my-api.local
ProxyPreserveHost On
ProxyPass / http://localhost:3021/
ProxyPassReverse / http://localhost:3021/
</VirtualHost>
但是还需要刷新pm2服务.. 不要忘记调用 api :) 例如 http://my-api.local/products
感谢https://serverfault.com/questions/804795/puppet-apache-vhost-proxypassreverse-configuration提供线索