[总结] 添加静态网站需要三个概念, 如下:
-/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
实现方法:
- 全部是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…
- 搭建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
三、安装docker-compose
四、安装nginx
www.digitalocean.com/community/t…
非常简单的解决问题。
五、映射网站
www.digitalocean.com/community/t…
安装nginx后自动添加了/var/www/文件夹
注意:需要把这里location修改成 try_files uri/ /index.html 不然refresh则404错误 stackoverflow.com/questions/5…
这是添加了一个网站,后面的也需要单独这添加,最后如图:
这是普通静态网页
六、打包docker api文件
启动docker-composer build/up
七、加入https
非常简单,而且自动更新cert。
下载并保存certificate
大功告成!!!!!!!!!!!!!!!!!!!!!!