如何在宝塔上搭建express后端

问题

按照网络上的关于在宝塔上搭建express后端的方法,在我的环境下是有问题的。先简单叙述网上其他博文中的办法:先新建站点,然后上传express后端到站点目录下,然后再pm2管理器中启动,最后在站点的配置文件加上几行:

location / {
	    proxy_pass http://127.0.0.1:3000; // 监听的本地端口
}

然而这样会导致一个情况:只有根目录下的网页可以访问到,于是会导致如图情况:

连页面请求的css、js等文件都请求不到。

解决方案

研究了宝塔端pm2后,终于发现了正确的搭建方式:先在pm2中启动express后端,再在pm2中添加映射。具体的方式如下:

1. 上传写好的express后端

上传到一个方便管理的目录下

2. 在pm2中启动express

填写好文件夹地址、启动文件和项目名,点击添加,pm2可以自动在正确的端口启动express。这里使用了express-generator,所以启动文件是bin/www

3. 添加映射

点击上图中需要添加映射的项目右边的“映射”

填入需要添加映射的站点即可,宝塔会自动创建一个网站,在左侧“网站”面板中可以管理。

这时候所有的资源都请求得到了。

原因猜测

原方法访问不到的原因必然是仅仅加上那几行,Nginx无法正确映射所有的express框架中访问的资源的url。而直接使用pm2的自动配置映射的功能,可以自动完成对Nginx的配置,比较省时。