共计 4014 个字符,预计需要花费 11 分钟才能阅读完成。
对于目前的集体开发者而言,应用云服务器是非常方便快捷的,在灰溜溜地写好了我的项目代码后,会有一种想要疾速部署到服务器上的激动,明天咱们就来实际一下 0 到 1 的简略服务器部署。
首先你须要有一台云服务器,这里以我的阿里云服务器为例,零碎是 CentOS 7.3
1. 近程连贯
想要在服务器上进行部署,首先得连贯上服务器,能够通过阿里云官网管制的 浏览器近程连贯 登录服务器,然而比拟麻烦,每隔一段时间都须要从新登录。除此之外,还能够利用 ssh 通过账号密码或者密钥进行连贯,如下:
# 通过账号密码进行连贯,个别为 root,连贯胜利后须要输出明码
ssh root@yourIp
# 通过密钥进行连贯,yourKey 为密钥的本地门路
ssh root@yourIp -i yourKey
2.nginx 配置
当初的服务器部署,基本上离不开 nginx
,配置简略易用,对于集体开发者非常敌对。
2.1 nginx 装置
yum install -y nginx
装置胜利后能够应用 -v 查看版本,我这里是 1.16.1
nginx -v
2.2 nginx 命令
启动 nginx
能够应用 Linux
的零碎工具 Systemd
来启动 nginx
,也能够应用 nginx
自带的命令:
systemctl start nginx
# 或
nginx
# 设置开机主动启动
systemctl enable nginx
进行 nginx
当你想进行 nginx
时,能够应用 stop 命令:
systemctl stop nginx
# 或
nginx -s stop
重启 nginx
当你更改了 nginx 的配置时,这个时候往往须要重启 nginx
服务配置能力失效:
systemctl restart nginx
# 或
nginx -s reload
2.3 配置 nginx
nginx
装置好了之后,默认门路个别是 /etc/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.conf
就是 nginx
的主配置文件,默认内容如下:
# 局部配置已省略
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name _;
root /usr/share/nginx/html;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / { }
error_page 404 /404.html;
location = /40x.html { }
error_page 500 502 503 504 /50x.html;
location = /50x.html {}}
这里咱们次要关注一下 server 的配置,以 http 协定的 server 为例,逐行解析一下:
- listen:示意监听 IPV4 & IPV6 的 80 端口,且将该端口设置为默认服务
- server_name:示意以后的服务对应的名称(IP 或者 URL)
- root:示意根门路
- include:示意援用该门路下的配置,这里能够疏忽
- location:示意域名后的门路对应的规定
- error_page:示意呈现谬误之后的重定向规定
前端我的项目
对于前端我的项目,实质上打包之后是一堆动态文件,配置对应的 server_name 和 root 就能够了,这里以配置域名为 www.example.com
,打包后 dist 下的文件寄存服务器目录为 /home/admin/www
为例:
# 局部配置已省略
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name www.example.com;
root /home/admin/www;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / { }
error_page 404 /404.html;
location = /40x.html { }
error_page 500 502 503 504 /50x.html;
location = /50x.html {}}
服务端我的项目
对于服务端我的项目,会在本地监听一个端口来运行相干的服务,能够利用 nginx
配置反向代理,使被拜访服务反向代理到对应的端口,这里以 3000 端口为例:
# 局部配置已省略
server {
listen 80 default_server;
listen [::]:80 default_server;
server_name www.example.com;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / {proxy_pass http://127.0.0.1:3000;}
}
配置更改之后须要重启一下
nginx
服务能力失效
3. 上传文件
上传文件的形式也比拟多,这里次要介绍 scp
命令,以近程服务器用户为 root@192.168.0.1
为例:
# 将近程服务器的 /remote/index.html 文件,下载到本地 /local 目录下
scp root@192.168.0.1:/remote/index.html /local
# 将近程服务器的整个 remote 目录,下载到本地 /local 目录下
scp -r root@192.168.0.1:/remote/ /local
# 将本地 /local/index.html 文件,上传到近程服务器的 /remote 目录下
scp /local/index.html root@192.168.0.1:/remote
# 将本地的整个 /local 目录,上传到近程服务器的 /remote 目录下
scp -r /local root@192.168.0.1:/remote
对于前端我的项目而言,若是想上传 dist 目录下的所有文件,但又不想上传 dist 目录,这个时候能够应用 通配符 来上传所有文件:
# 将本地的整个 /local 目录下的所有文件,上传到近程服务器的 /remote 目录下
scp -r /local/* root@192.168.0.1:/remote
在上传前须要确保服务器的目录具备正确的读写权限,否则会呈现 SCP Permission denied
谬误,具体的文件权限能够通过 ls -l
查看:
ls -l
# -rw-r--r-- 1 root root 2376 Feb 17 20:37 404.html
# drwxr-xr-x 2 root root 4096 Feb 17 00:43 about
# drwxr-xr-x 4 root root 4096 Feb 17 00:43 assets
# drwxr-xr-x 2 root root 4096 Feb 17 00:43 atlas
# -rw-r--r-- 1 root root 51022 Feb 17 20:37 head.png
# -rw-r--r-- 1 root root 13927 Feb 17 20:37 index.html
# drwxr-xr-x 8 root root 4096 Feb 17 00:43 posts
其中第二列示意文件权限,首字母为文件类型,d
示意目录文件,-
示意一般文件,前面的 rwx 示意 读 / 写 / 执行 权限,每三个一组,别离对应 拥有者 / 群组 / 其余组
如若没有权限,能够通过上面的命令来设置所有人可读写以及执行:
chmod 777 yourDir
4.https 配置
将你的站点配置为 https 须要上面几个步骤:
- 申请证书并下载。例如在阿里云的 SSL 证书 模块中能够申请收费证书,期限一年
- 将证书文件上传到服务器的对应目录
- 更改 nginx 配置
ssl_certificate
和 ssl_certificate_key
别离示意证书文件和私钥的寄存门路,示例如下:
# 局部配置已省略
server {
listen 443 ssl http2 default_server;
listen [::]:443 ssl http2 default_server;
server_name www.example.com;
root /home/admin/www;
ssl_certificate "/etc/pki/nginx/www.example.com.pem";
ssl_certificate_key "/etc/pki/nginx/private/www.example.com.key";
ssl_session_cache shared:SSL:1m;
ssl_session_timeout 10m;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_prefer_server_ciphers on;
# Load configuration files for the default server block.
include /etc/nginx/default.d/*.conf;
location / { }
error_page 404 /404.html;
location = /404.html { }
error_page 500 502 503 504 /50x.html;
location = /50x.html {}}
当部署 https 站点时,常见的需要是将 http 站点主动跳转到 https,nginx
配置如下:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://$server_name$request_uri;
}
以上就是本篇的全部内容,如有谬误,欢送斧正~