ubuntu无脑安装和配置nodejs、mongodb、redis、yarn、nginx、Let’s Encrypt环境,无需使用宝塔

q
qimoe
发布于 4 个月前

nodejs应用程序的五件套:nodejs/mongodb/redis/yarn/nginx,环境安装极其简单且无脑,比任何其他语言的环境安装都要简单的多,直接无脑敲命令行无脑安装就可以了,宝塔里边安装的环境坑比较多,能不用就尽量别用宝塔。

我们用ubuntu18.04来安装五件套

安装nodejs

直接安装最新的稳定版本14.15版本

$ curl -sL https://deb.nodesource.com/setup_14.x | sudo -E bash -
$ sudo apt-get install -y nodejs

验证安装之后的效果:

$ node -v
v14.15.1
$ npm -v
6.4

安装yarn

这里我推荐包管理器使用yarn

在Debian或Ubuntu Linux上,您可以通过我们的Debian软件包系统信息库安装Yarn。您首先需要配置存储库:

curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add -
echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list

在Ubuntu 16.04或更低版本以及Debian Stable上,您还需要配置NodeSource存储库以获取足够新的Node.js版本。

然后,您可以简单地:

sudo apt update && sudo apt install yarn

安装mongodb

下面的安装命令行是遵循mongodb官网的教程

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 9DA31620334BD75D9DCB49F368818C72E52529D4
$ echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
$ sudo apt-get update
$ sudo apt-get install -y mongodb-org

验证mongodb版本:

$ mongod --version
db version v4.0

启动mongodb服务和查询mongodb状态:

$ sudo systemctl start mongod
$ sudo systemctl status mongod

配置mongodb

$ mongo

切换至admin数据库:

> use admin

创建一个管理员账号:

> db.createUser( { user: "admin", pwd: "<Enter a secure password>", roles: [ { role: "root", db: "admin" } ] } )

切换到您应用程序使用的数据库:

> use yourapp

给您使用的数据库创建一个账号和密码:

> db.createUser( { user: "yourapp", pwd: "<Enter a secure password>", roles: [ { role: "readWrite", db: "yourapp" } ] } )

创建的这个账号拥有对yourapp数据库的完整的读写权限。

退出mongodb命令行:

> quit()

前往配置文件开启数据库认证:

vim /etc/mongod.conf

配置文件添加如下行:

security:
  authorization: enabled

重启mongodb数据库即可:

$ sudo systemctl restart mongod

安装redis

ubuntu安装redis直接无脑就行了:

sudo apt-get install redis-server

安装完成验证:

redis-cli

若未启动,直接使用命令行启动:

redis-server &

安装nginx

ubuntu上边安装nginx也是非常简单:

$ sudo apt-get install -y nginx

验证安装结果

$ nginx -v

启动和查看nginx状态

$ sudo systemctl start nginx
$ sudo systemctl status nginx

最后输入你的服务器IP在浏览器中,应该会看见nginx的欢迎界面。

配置nginx

ubuntu安装nginx之后的配置文件位置在/etc/nginx/sites-available和/etc/nginx/sites-enabled,我们在available里边创建配置文件,并且软链接至enabled文件夹中即可。

$ cd /etc/nginx/sites-available
$ sudo vim efvcms.com # config entered into file and saved
$ cd ../sites-enabled
$ sudo ln -s ../sites-available/efvcms.com

efvcms.com的配置内容如下:

server {
    listen 80;

    server_name efvcms.com www.efvcms.com;

    location / {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Host $http_host;
        proxy_set_header X-NginX-Proxy true;

        proxy_pass http://127.0.0.1:3000;
        proxy_redirect off;
    }
}

保存之后,重启nginx即可生效:

$ sudo systemctl reload nginx

开启ssl

使用Certbot就可以无脑给域名开启Let’s Encrypt的SSL,并且会一直自动续签。

安装snapd

$ sudo apt update
$ sudo apt install snapd

安装最新的snapd

sudo snap install core; sudo snap refresh core

安装certbot

sudo snap install --classic certbot

添加certbot到环境中

sudo ln -s /snap/bin/certbot /usr/bin/certbot

开始设置ssl

sudo certbot --nginx

随后会有几个选项,选择配置哪几个域名的ssl,基本全部Y就完事了,之后就不用管了,certbot会自动续签,并且会自动修改你的nginx的配置文件,非ssl域名会301跳转到ssl域名上。

总结

整个安装非常简单且无脑,整个流程下来最多10分钟全部安装完毕,并且开启了ssl和自动续签,在宝塔中的nginx环境是阉割过的,比如反代之后是无法续签的,比如配置X-Forwarded-For之后expressjs应用中trust proxy无效之类的太多坑,能不用宝塔就别用宝塔,这是我的忠告!

相关文章推荐
评论区
暂未开放
相关文章推荐