目标:带你了解静态资源怎么映射到域名,利用 git 很简单!顺便教你普通的二级域名配置方法。
前言
服务器部署后最简单的功能就是映射静态资源到域名,而 Hexo
本身就是直接把你写的 Markdown
处理成静态文件,所以这里就用Hexo
做演示。点此了解 Hexo
进行到这一步我假设你已经搭建好了 Hexo
博客系统并已经部署到了 github page
上,我们进入对应的github
仓库。
显而易见,所有的静态文件都在这里,而且不需要做任何处理就能部署到服务器。
部署
首先当然是连接主机了,还是用 ssh
连接。
ssh ubuntu@123.206.55.207
进入对应的目录,我直接放在 blog
目录下,映射的是 blog.admin.com
。
cd /usr/share/nginx/html/
将静态文件 clone
并重命名项目为 blog
,记得加上 sudo
执行。
sudo git clone https://github.com/ouxu/ouxu.github.io.git blog
如果用的是通配法配置的二级域名,这时候访问 blog.admin.com
既能看到已经部署成功。
以后每次写了新的东西,并更新到了 github 上,我们只需要在 blog
目录下执行 git pull
指令就能同步文件。
除了利用 git
进行文件部署外,我们还能用 scp
指令进行操作,下面我们动手试试吧。
假如我要把我本地的 hexo
静态文件传输到服务器上,我们需要先进入本地hexo
的目录下。
然后执行 scp
指令。需要注意的是服务器对应的路径需要开放权限,我们把目标目录权限改成 777
。
在服务器中修改:
sudo chmod -R 777 /usr/share/nginx/html/temp
然后在本地执行:
scp -r ./public ubuntu@123.206.55.207:/usr/share/nginx/html/temp
好了然后把文件从 temp
中复制或移动到 blog
目录下:
sudo cp -r /usr/share/nginx/html/temp /usr/share/nginx/html/blog
这样也能把文件传输到服务器上。
附加
配置文件说明
首先是主配置文件 文件位置/etc/nginx/nginx.conf
此文件中是nginx的核心配置项(比如最大连接数等等),其实整个nginx的配置项都是通过这个文件确定的,其中的虚拟主机部分(即server)是在该文件中通过include实现的。
两个虚拟主机的配置目录,一个是sites-available 一个是sites-enabled ,两者内部都默认有一个default文件,是默认的虚拟主机配置,注意这两个文件其实就是一个文件,enabled中的default只是一个链接而已。所以在nginx.conf中,只是include了enabled目录里的所有文件,按照这个默认的逻辑,如果想要增加一个虚拟主机的配置,那么你应该单独写一个配置文件放在enabled目录下即可,或者可以写到
conf.d
目录,这些全看个人习惯吧。
明白了这些,我们进入 nginx 配置目录。
cd /etc/nginx/conf.d
新建服务的 conf
文件。
sudo touch blog.conf
写入自定义的 server 信息,我这直接写的配置好了 php
的,你也可以自己修改。
server {
listen 80;
server_name blog.mycollagelife.com;
root /usr/share/nginx/html/blog;
index index.html index.htm index.nginx-debian.html index.php;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
# With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# # With php5-fpm:
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
}
然后重启 nginx 服务,就能见到效果啦~