前言

服务器 阿里云学生ECS服务器
系统 ubuntu16.04LTS
环境 nodejs、mongoDB、Express

1、安装和配置Nginx

(1)同源和跨域

对于同源,只要URI中协议名、主机名、端口三者有其中一条不同,则视为不同源。不同源之间请求资源,则为跨域。其中主机名部分,主域和子域视为不同、域名与其对应的IP也视为不同,这就是说看着必须得一样。

nginx是一个强大的http服务器,作用是解析链接信息,告诉服务器客户端需要做什么。为了安全性,我们会把外界和服务器进行隔开,而nginx就像一个消息的传递者,用户电脑发来一个网络请求地址给nginx,nginx找到进行切换成对应的请求转给服务器。

(2)nginx的安装

//更新源列表
~$ sudo apt-get update//安装nginx
~$ sudo apt-get install nginx//检查是否安装成功
~$ nginx -v
nginx version: nginx/1.4.6 (Ubuntu)//启动nginx
~$ sudo service nginx restart

(3)nginx的配置

我们首先得去云服务器自行下载SSL证书。

下载好两个证书文件之后,将文件放到云服务器上面安装。

先在服务器创建文件接收目录

//打开etc/nginx目录
~$ cd /etc/nginx///新建ssl文件夹
~/etc/nginx$ mkdir ssl

通过xftp将文件复制到该目录下,然后进行查看:

//打开etc/nginx/ssl目录
~$ cd /etc/nginx/ssl///输入ls查看里面的文件
~/etc/nginx/ssl$ ls
1_www.***.com_bundle.pem  2_www.***.com.key

文件已经传输成功,下面进行配置:

进入nginx文件夹:

//打开etc/nginx/conf.d目录
~$ cd /etc/nginx/conf.d///创建weapp.conf文件
~/etc/nginx/conf.d$ touch weapp.conf

在weapp.conf文件中粘贴下面的内容,我列出需要修改的3个地方,替换成自己域名的信息。

upstream app_weapp {server localhost:5757;keepalive 8;
}server {listen      80;#=====需要修改=========替换成自己的域名server_name www.***.com;#服务器自动把 HTTP 的请求重定向到 HTTPSrewrite ^(.*)$ https://$server_name$1 permanent;
}server {listen      443;#=====需要修改=========替换成自己的域名server_name www.***.com;ssl on;#=====需要修改=========下面两行替换成自己SSL文件的路径ssl_certificate           /etc/nginx/ssl/1_www.***.com_bundle.pem;ssl_certificate_key       /etc/nginx/ssl/2_www.***.com.key;ssl_session_timeout       5m;ssl_protocols             TLSv1 TLSv1.1 TLSv1.2;ssl_ciphers               ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA;ssl_session_cache         shared:SSL:50m;ssl_prefer_server_ciphers on;location / {proxy_pass http://app_weapp;proxy_http_version 1.1;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection 'upgrade';proxy_set_header Host $host;proxy_cache_bypass $http_upgrade;}
}

验证并重启nginx服务:

//输入nginx -t,出现下列信息说明配置成功了
~$ nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful//重启nginx
~$ sudo service nginx restart

在自己的浏览器输入自己的域名地址即可访问:

出现下面情况也是配置成功:

切记要想能够通过https协议进行访问,必须在云服务器安全组配置443端口开启https服务,这里博主走了许多坑。

2、安装node

(1)下载nodejs安装包并进行解压

//下载nodejs安装文件node-v10.13.0-linux-x64.tar.xzwget https://npm.taobao.org/mirrors/node/v10.13.0/node-v10.13.0-linux-x64//一样的
sudo wget https://npm.taobao.org/mirrors/node/v10.15.3/node-v10.15.3-linux-x64.tar.gz

(2)解压安装包文件

//解压下载的文件
tar -xvf node-v10.13.0-linux-x64.tar.xz

(3)检测是否安装成功

~$ cd node-v10.13.0-linux-x64/bin && ls
node  npm  npx//符号./的意思是当前文件夹下,现在 node 和 npm 还不能全局使用
~/node-v10.13.0-linux-x64/bin$ ./node -v
v10.13.0

(4)查看当前目录路径,将路径进行赋值待会使用

~/node-v10.13.0-linux-x64/bin$ pwd
//查到的目录如下
/root/node-v10.13.0-linux-x64/bin

(5)全局配置node、npm

现在npm、node只能在我们刚刚安装的node-v10.13.0-linux-x64/bin文件夹下面使用,我们在Ubuntu中设置环境变量,从而可以全局使用node、npm。

//回到~目录
~/node-v10.13.0-linux-x64/bin$ cd ~//打开.bashrc文件夹
~/etc/$ vim bash.bashrc

在bash.bashrc下进行编辑

vim是一个文本编辑器,输入i,进入编辑状态,添加下面语句。其中/root/node-v10.13.0-linux-x64/bin/,替换成你自己查到的目录。

//在代码顶部添上此段代码
export PATH=/root/node-v10.13.0-linux-x64/bin/:$PATH

编辑完成后,按esc键退出编辑状态,再输入:wq保存并退出文件。

进行激活文件

 source bash.bashrc

验证环境变量是否全局配置:

~$ node -v
v10.13.0~$ npm -v
6.4.1

(6)切换npm资源成国内

为何安装cnpm资源,解决的是npm国外资源下载缓慢的问题。

#运行成功,不会返回任何信息
~$ npm set registry https://registry.npm.taobao.org/

至此npm资源安装成功。

3.mongoDB安装

在终端输入:

sudo apt-get install mongodb-clients

此时已进行安装完毕,查看是否安装成功,显示已安装的版本。

mongo -version

下面进行数据库服务安装:

sudo apt-get install mongodb-server

数据库服务安装后,进行启动服务:

service mongodb start

安装和开启服务完毕。

服务运行状态查询:

 systemctl status mongodb.service

关闭服务:

 systemctl status mongodb.service

修改/etc/mongodb.conf文件,将auth=true前面的#号去掉,开启动用户权限认证

进入mongo,添加账号密码

创建账号之后,如果没有登录而使用,则会报错,只有先登录后才可以使用

有安装就有卸载:

  1. 先停止运行mongodb
$ sudo service mongod stop
  1. 再卸载MongoDB
  2. $ sudo apt-get purge mongodb-org*

    删除数据库和日志文件

  3. $ sudo rm -r /var/log/mongodb
    $ sudo rm -r /var/lib/mongodb

4.通过xftp向云服务器上传文件

我们通过xftp连接服务器,可以向我们的阿里云上传文件,这个是不是很棒。

(1)先在根目录下创建文件夹

//进入/mnt文件夹
~$ cd /mnt///创建truth_hold文件夹
~/mnt$ mkdir truth_hold

(2)通过xftp将要上传的文件拽入该目录

5.pm2安装和启动

pm2 是Node应用的进程管理器,我们用他来启动后端(也就是云服务器端),就像在本地电脑server文件夹下运行npm run dev差不多。

//安装pm2
~$ npm install pm2 --global//检查是否安装成功
~$ pm2 -v//进入项目目录
~$ cd /mnt/truth_hold/server///启动项目
/mnt/truth_hold/server$ pm2 start app.js//启动成功返回的信息
[PM2] Starting /mnt/truth_hold/server/app.js in fork_mode (1 instance)
[PM2] Done.
┌────┬────────────────────┬──────────┬──────┬──────────┬──────────┬──────────┐
│ id │ name               │ mode     │ ↺    │ status   │ cpu      │ memory   │
├────┼────────────────────┼──────────┼──────┼──────────┼──────────┼──────────┤
│ 0  │ app                │ fork     │ 0    │ online   │ 0%       │ 25.8mb   │
└────┴────────────────────┴──────────┴──────┴──────────┴──────────┴──────────┘

至此阿里云服务器环境搭建完毕~

自律给我自由,自学给我自在。

参考大神博客:https://blog.csdn.net/shine_a/article/details/102686084

子在川上曰:nginx的安装和配置、node服务器的配置、mongdb的安装、pm2进行项目动态管理相关推荐

  1. 云服务器有token_配置node服务器并且链接微信公众号接口配置

    配置node服务器并且链接微信公众号接口配置 配置node服务器 在购买好服务器后,用Xshell链接到服务器. 1.安装nvm curl -o- https://raw.githubusercont ...

  2. 配置node服务器并且链接微信公众号接口配置(超详细)

    配置node服务器 在购买好服务器后,用Xshell链接到服务器. 1.安装nvm curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.3 ...

  3. 域控制器需要安装文件服务器,域控服务器需要配置dns吗

    域控服务器需要配置dns吗 内容精选 换一换 活动目录(Active Directory)是面向Windows Standard Server.Windows Enterprise Server以及 ...

  4. Apache服务器全局配置之服务器标识配置篇

    Apache服务器全局配置之服务器标识配置篇   本文摘录自Apache2.2手册   服务器标识相关指令: ServerName ServerAdmin ServerSignature Server ...

  5. nginx nodejs环境配置_服务器环境配置安装(mysql+redis+nodejs+nginx)

    公司用来测试的服务器挂了,最后重装了系统,需要重新配置程序运行环境,linux上安装不是很熟悉,特此记录一下. 首先获取系统版本信息: 一.mysql 1. 安装 安装命令:sudo apt-get ...

  6. 安装数据库显示参考服务器错误日志,Sql Server安装出错,安装程序配置服务器失败的解决方法小结...

    错误重现:首先在控制面板里卸载了sqlserver软件,一切正常,然后重启(一定要重启,否则没法重装),执行sqlserver的安装程序,一切似乎都正常,一路下一步,安装到了最后,突然提示" ...

  7. CentOS7.9安装rsyslog+loganalyzer日志服务器详细配置

    一.简介: 随着机房内的服务器和网络设备增加,日志管理和查询就成了让系统管理员头疼的事. 系统管理员遇到的常见问题如下: 1.日常维护过程中不可能登录到每一台服务器和设备上去查看日志: 2.网络设备上 ...

  8. 域控制器需要安装文件服务器,域控服务器的配置要求

    域控服务器的配置要求 内容精选 换一换 在"迁移配置"的"基本配置"页签下,可选择已创建的迁移参数模板来快速完成网络类型.网络限流.是否持续同步.区域_项目等参 ...

  9. Linux 配置LNMP服务器 并配置虚拟主机

    2019独角兽企业重金招聘Python工程师标准>>> 一.停止甚至删除系统上现有的web服务器软件 为了防止出现意外情况,建议先卸载现有的所有web服务器资源,如apache.my ...

  10. Cisco服务器怎么安装系统,Cisco MCS服务器上Microsoft操作系统补丁安装发生故障

    当用户尝试在Cisco CallManager服务器上安装Microsoft操作系统热修复程序MS06-040时,安装失败,并显示错误消息"您没有更新的权限".请与您的系统管理员联 ...

最新文章

  1. HyperLedger Fabric Introduction——区块链超级账本介绍
  2. 只能是数字、字母、-和_
  3. 使用Visual Studio(VS)开发Qt程序代码提示功能的实现
  4. python:浅析python 中__name__ = '__main__' 的作用(转载)
  5. LeetCode 1003. 检查替换后的词是否有效(栈)
  6. python开源嵌入式_Neo4j 推出基于 Python 的嵌入式图数据存储
  7. Python学习笔记——Python的下载与安装
  8. Apache ab 测试结果的分析
  9. 怎么改python系统路径_动态修改python系统路径
  10. mongodb 基本操作:文档查询
  11. HTML标签--换行标签与段落标签的区别对比
  12. springIOC原理解析
  13. kali中netspeed的安装方法
  14. 10005---CSS语法
  15. kf 和 ekf 和 ukf 入门
  16. JVM、JDK、JER介绍
  17. 大数据应用安全研究报告
  18. 嵌入式工程师如何提高工作效率
  19. 常用日期时间处理类封装DateTime(基于Carbon)
  20. POJ 2373 Dividing the Path(灌溉草场)

热门文章

  1. Ambiguous mapping(模糊映射)
  2. word中无法取消图片组合
  3. C++ 调用WINDOWS图片和传真查看器打开图片
  4. 采用卡尔曼滤波计算电池SOC
  5. 电池SOC仿真系列-基于遗传算法的电池参数辨识
  6. 使用阿里云云服务器遇到大流量攻击怎么防御
  7. 插帧补帧DAIN算法,让电影、视频、动漫变丝滑顺畅
  8. oracle解一元二次方程,第 6 章 浮点运算
  9. 全面了解IDC数据中心
  10. element-ui安装失败解决方法