Ubuntu, Redis, Docker, Nginx搭建React,Node服务器全纪录

758 阅读1分钟

[总结] 添加静态网站需要三个概念, 如下:

-/var/www/ 网站的源代码

-/etc/nginx/sites-available/ Nginx服务器配置文件, 端口映射IP映射文件

-/etc/nginx/sites-enabled/ Nginx链接到二进制可执行文件, 非文件夹

需要操作这个三个地方

文件结构:

-front(React静态build网页)

-admin(React静态build网页)

-api(node server动态,监听8360端口)

front.domain.com
admin.domain.com
api.domain.com

实现方法:

  1. 全部是docker实现
  • nginx也用docker启动
  • front用docker启动,并安装node和serve,启动后服务

facebook.github.io/create-reac…

  • admin也是static也可以用node和serve或者express
  • api用docker启动以及依赖

难度是:如何实现https,如何实现subdomain?docker-compose启动比较复杂。 可以使用这个package github.com/jwilder/ngi… 设置比较复杂,中途放弃,其他实现如下: github.com/frankgo81/d…

  1. 搭建nginx服务器+docker
  • dns映射到服务器ip地址,然后nginx通过server block把,静态如front.domain.com映射到服务器的地址/var/www/front.mydomain.com/index.html,同理admin
  • 对于api则映射到localhost:8360,然后创建docker,并把host的8360端口跟docker8360映射,并在docker中,通过node express监听8360端口。 这个方法能完美解决ssl,和二级域名的问题。

第一个方法,看代码,不再详述。重点讲一讲第二个方法。

一、购买Ubuntu服务器

版本:

ubuntu@VM-0-10-ubuntu:~$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 18.04.1 LTS
Release:        18.04
Codename:       bionic

二、安装docker

docs.docker.com/install/lin…

三、安装docker-compose

docs.docker.com/compose/ins…

四、安装nginx

www.digitalocean.com/community/t…

非常简单的解决问题。

五、映射网站

www.digitalocean.com/community/t…

安装nginx后自动添加了/var/www/文件夹

注意:需要把这里location修改成 try_files uriuri uri/ /index.html 不然refresh则404错误 stackoverflow.com/questions/5…

这是添加了一个网站,后面的也需要单独这添加,最后如图:

这是普通静态网页

六、打包docker api文件

启动docker-composer build/up

七、加入https

certbot.eff.org/lets-encryp…

非常简单,而且自动更新cert。

下载并保存certificate

大功告成!!!!!!!!!!!!!!!!!!!!!!