Fork me on GitHub

部署静态站点

linux/static-website-deploy/banner

将静态资源部署到服务器上面

本博文是在centOS系统上进行操作的,如图:

linux/static-website-deploy/centOS-detail

nginx

从零开始讲解nginx的安装等内容…

安装

为了证明我这是从零开始安装nginx的【全程在root下安装】,我特意卸载了之前安装的nginxyum remove nginx,查看nginx的版本就如下:

1
2
nginx -v
bash: /usr/sbin/nginx: No such file or directory

下面进行nginx的安装:

1
2
3
4
5
6
7
8
9
10
11
# 搜索,yum源没有nginx源
yum search nginx

# 添加CentOS 7 Nginx yum资源库
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

# 安装nginx
sudo yum install -y nginx

# 查看nginx版本,这里打印出 nginx version: nginx/1.14.0
nginx -v

nginx的几个默认目录

1
2
whereis nginx
nginx: /usr/sbin/nginx /usr/lib64/nginx /etc/nginx /usr/share/nginx /usr/share/man/man8/nginx.8.gz

执行目录:/usr/sbin/nginx

模块所在的目录:/usr/lib64/nginx/modules

配置所在目录:/etc/nginx/

默认的站点目录: /usr/share/nginx/html

其他重要:

主要配置文件: /usr/share/nginx.conf 指向: /etc/nginx/conf.d/default.conf

PID目录: /var/run/nginx.pid

错误日志:/var/log/nginx/error.log

访问日志: /var/log/nginx/access.log

基本操作

1.启动nginx

1
2
service nginx start # 会重定向到执行命令 systemctl start nginx.service
Redirecting to /bin/systemctl start nginx.service

启动nginx后,访问centos服务器的地址,你会看到下面的截图的内容,说明你已经安装成功!

linux/static-website-deploy/nginx-install-successful

2.停止nginx

1
2
service nginx stop # 会重定向到执行命令 systemctl stop nginx.service
Redirecting to /bin/systemctl stop nginx.service

3.查看nginx的状态

1
2
service nginx status # 会重定向到执行命令systemctl status nginx.service
Redirecting to /bin/systemctl status nginx.service

未开启nginx时候查看状态显示的内容如下:

linux/static-website-deploy/nginx-status-stop

开启nginx之后,查看状态时候显示如下:

linux/static-website-deploy/nginx-status-start

4.重载nginx

1
2
3
4
service nginx reload # 会重定向到执行命令systemctl reload nginx.service
Redirecting to /bin/systemctl reload nginx.service

重载命令要在nginx已经启动的时候进行哦,不然会提示Job for nginx.service invalid.

杀掉进程

1.相关nginx进行全部杀掉

1
killall -9 nginx

刚开始安装nginx的时候,就遇到地址占用的情况,使用上面的命令顺利解决后重新启动nginx。

linux/static-website-deploy/address-in-use

2.把PID的两个进程杀掉

1
kill -9 pidNum1 and kill -9 pidNum2

当然,这里需要你知道要kill掉那个进程id了,这里就不展开说了,有兴趣可以百度百科哈。

nginx配置

nginx配置文件有自己的格式,文件格式比较简单,看起来像是css文件(sass或less编写方式)–> 先指定变量名,然后再花括号内编写指令,最顶层是server

1
2
3
4
5
6
7
8
9
10
server {
listen 80; # 声明服务器监听的端口号
server_name example.com; # 匹配url地址
root /var/www/example; # 这个是托管静态资源最关键的部分,指明其存放的目录和路径
location / {
# location接受两个参数,一个字符串或者正则和一段代码。
# 字符串或者正则用于匹配某个特定的目录
# ...
}
}

更多 http://nginx.org/en/docs/

上传静态资源

嗯,上面已经介绍了一丢丢的nginx的相关知识,下面进行静态资源上传啦~

服务器上代码的修改

这里的资源存放目录上面已经讲过了,在/usr/share/nginx/html目录下面:

1
2
3
4
5
6
7
8
# 进入root状态后操作,这里省略
.
# 进入根目录
cd /usr/share/nginx/html

# 查看目录
ls
50x.html index.html # 这里只有50x页面和入口页面

之后的操作就是使用相关的命令进行文件的内容修改和资源的添加了,比如操作index.html,使用vim index.html等。

哈哈哈,小改动这样直接在服务器上面进行修改还是可以接受的,如果比较大的改动和考虑到版本的添加等问题,那就非常非常不明智了@~@

本地写好上传

可以在本地建好测试通过的项目,再进行上传哈。这里我下载了一个SecureCRT【一款支持SSH(SSH1和SSH2)的终端仿真程序】。嗯,链接好的远程服务器就可以了。之后,首先,要是服务器不支持rz命令的话,需要安装执行yum-yinstalllrzsz2、再输入rz-be命令,选择需要上传的本地文件。

  1. 首先,要是服务器不支持rz命令的话,需要安装执行

yum -y install lrzsz

  1. 再输入rz -be命令,选择需要上传的本地文件

我这里事先在本地桌面新建了个静态文件test/index.html

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>demo</title>
<style type="text/css">
html,body{
margin: 0;
padding: 0;
}
h1{
text-align: center;
margin-top: 80px;
color: red;
}
</style>
</head>
<body>
<h1>测试成功@~@</h1>
</body>
</html>

然后我就上传了啊:

linux/static-website-deploy/upload-file

可是,提示错误了:

1
2
Transferring index.html...
index.html was skipped

跳过了我的index.html文件,是权限问题嘛,我可是在root啊。为了验证不是这个问题,我执行了sudo rz -be,结果还是提示上面的那个错误。

既然是跳过index.html文件,而且又不是权限问题,那么就是不能自动覆盖同名文件了,执行了rm -rf index.html后,再跑一次rz -be选中文件上传,成功了,美滋滋!

访问到的页面如下(确定你开了nginx哦):

linux/static-website-deploy/access-index

<-- 本文已结束  感谢您阅读 -->
客官,且步,赏一个呗 (@ ~ @)