Loading...
墨滴

谢大飞

2021/07/15  阅读:68  主题:默认主题

将静态文件部署到云服务器

使用nginx搭建静态服务器

准备

首先需要一个云服务器,买的是阿里云的云服务器,选择的是轻量应用服务器,新人超级划算而且便宜,如果可以的话建议多续费几年 阿里云服务器

买好之后可以自己设置密码,然后根据账户和密码使用Xshell连接服务器,这个可以参考我之前的llinux入门

登陆进之后就可以开始下载安装一些软件了

安装yum

用yum来安装nginx会比较方便,同时yum对于是linux系统来说安装别的软件十分好用,但是我们刚买的服务器差不多就是一个空壳子,所以需要先安装yum

  1. 新建一个download的目录来存放yum安装包 可能后期会下载较多的软件,所以将安装包放在一个目录下方便查找和管理
mkdir download          #新建一个目录

cd download/               #转到该目录下

  1. 下载yum并解压
wget http://yum.baseurl.org/download/3.2/yum-3.2.28.tar.gz          #下载yum

tar -xvf yum-3.2.28.tar.gz              #解压
安装yum
安装yum

解压之后需要先手动创建一个yum的conf文件,后续再安装yum的时候需要用上

touch /etc/yum.conf         #创建conf文件

  1. 安装yum
cd yum-3.2.28       #进入到解压之后的文件夹

ll                         #查看文件列表

./yummain.py install yum        #运行脚本安装yum

安装过程中会提示需要安装新版本,选择y即可 安装成功界面 yum安装成功界面

使用yum安装nginx

  1. 安装nginx
yum install nginx -y            #使用yum安装nginx

  1. 运行nginx
nginx           #使用此命令运行nginx

nginx -s reload     #重启nginx

但想必我这个招bug体制,不报错嘛是不太正常的,果然打开网页并没有出现想要的界面,报错信息倒是有几行,哭唧唧。 重启nginx服务再试也没有用,所以老样子拿着报错去搜索,然后解决了,开心✌

nginx报错
nginx报错
  1. 报错解决
## 问题
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()

## 解决

fuser -k 80/tcp     #root用户修改,阿里云服务器的默认都是root用户

sudo fuser -k 80/tcp                #非root用户修改
  1. nginx开启成功界面 在浏览器中输入我们的云服务器的ip地址,看到Nginx的测试界面就说明nginx服务启动成功
nginx成功界面
nginx成功界面
  1. nginx 常用命令
service nginx start/stop/restart                # 开启、关闭、重启命令

nginx -V                #查看版本信息

nginx -t                #测试配置文件是否正确

nginx -h                #查看帮助文档

配置静态服务器的访问路径

nginx可以给用户提供访问Web服务的功能,但是需要先配置正确的静态资源路径才能通过url访问到我们需要展示的静态html资源文档

  1. 查看并打开nginx的默认配置文件
# 查看配置文件
nginx -t            #测试配置文件是否正确

## 文件路径
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

# 修改配置文件
cd /etc/nginx/      #转到相应的路径下

vim nginx.conf      #使用vim打开并进行修改,将路径修改为我们存放静态资源文件的路径,比如说改成/data/www 或者是别的相应的文件
修改配置文件
修改配置文件
  1. 重启配置文件 因为对文件进行了修改,所以需要将这个文件重新运行一下
nginx -c /etc/nginx/nginx.conf          #修改好之后重启配置文件

  1. 创建指定的存放静态资源的路径
mkdir -p /data/Eterna       #递归创建需要的目录

创建好之后可以使用xftp将写好的html文件及js、css等文件传输到这个文件夹下面

但是我是在本地写好了需要的所有文件并且放在一个文件里面,所以是直接创建了/data/的目录,然后将文件夹拖到了这个目录里面

根据自己的情况来,传输文件应该问题不大

  1. 重启Nginx 修改了配置文件和路径之后需要重启服务,然后查看是否展示出我们需要的内容
nginx -s reload         #重启nginx服务

需要展示的界面
需要展示的界面

报错及解决

重启nginx报错

nginx -s reload         #重启nginx

# 报错信息
nginx: [error] open() "/run/nginx.pid" failed (2: No such file or directory)

#查看配置文件,有显示运行正常
nginx -t            #测试配置文件是否正确

#显示正常

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

# 运行nginx显示端口被占用
nginx           #运行nginx

# 报错信息
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
nginx: [emerg] bind() to [::]:80 failed (98: Address already in use)
nginx: [emerg] still could not bind()

##解决——将占用的端口释放
fuser -k 80/tcp             #释放占用的端口

# 尝试重启,出现新的报错
nginx -s reload             #重启服务

## 报错信息
nginx: [error] invalid PID number "" in "/run/nginx.pid"

## 解决——重启配置文件
nginx -c /etc/nginx/nginx.conf              #重新运行配置文件
nginx -s reload                                  # 重启nginx服务

所以最好是在修改了配置文件的默认路径之后就重新运行一下nginx的配置文件,如果忘了的话也不要慌,拿着报错信息去搜索就可以慢慢解决啦

403 forbidden解决

对搭建的静态网页进行了修改,所以重新将文件传输到服务器然后展示再网页上,但是出现了报错 403 forbidden

尝试找到问题并且解决

cd /etc/nginx/              #转到nginx的路径下

vim nginx.conf              #修改配置文件,将默认的路径改为新传输来的文件

cd /data/meeting/           #查看发现文件没有执行的权限,所以把文件夹的权限全部开启来

chmod 777 -R meeting/       #开启meeting文件夹的权限

#但打开还是报错,一样的错误403 forbidden

# 其他的解决方法

vim nginx.conf          #将默认的nginx改为root

# 打开网页之后发现还是不行,然后仔细看发现nginx会先去找index的html文档,但是传输进来的文件里面并没有这个文档,所以修改首页文档为index名字

mv Home.html index.html     # 将Home的文件改名为index名字,因为nginx去找的时候会先去找这个文件,所以没有找到的话就会显示找不到

fuser -k 80/tcp         #结束掉占用的端口进程

nginx -c /etc/nginx/nginx.conf          #重新加载配置文件

nginx -s reload             #重启nginx服务

今日份心得

有些报错就是一些小小的地方,需要耐心一点去找,慢慢解决

参考文章

静态页面部署到云服务器

前端部署静态页面到腾讯云服务器详解

阿里云部署静态网站

谢大飞

2021/07/15  阅读:68  主题:默认主题

作者介绍

谢大飞