基本概念
正向和反向代理
- 正向代理就好比在客户端配置代理服务器去访问大陆无法访问的谷歌网页。
- 反向代理,客户端对代理是没有感知的,因为客户端不需要配置,客户端将请求发送到反向代理服务器,然后反向代理服务器解析请求后,去转发到对应的目标,然后将返回回来的数据再发送回客户端,此时真实服务器和反向代理服务器可以看成一个服务器,暴露的是代理服务器地址,隐藏了真实服务器地址。
负载均衡
客户端请求服务器,服务器处理请求可能要与数据库交互,处理完再将结果响应给客户端,并发请求较少的适合这种方式是可以的,但是并发请求高的时候就不可以了。
我们可以增加多个服务器,将请求分发到多个服务器上,将负载分发到不同服务器,也就是所说的负载均衡
动静分离
为了加快网站的解析速度,可以把动态页面和静态页面有不同的服务器来解析,加快解析速度,降低原来单个服务器的压力
安装
我安装的过程可以称的上愚蠢,我的安装过程因为中途耽搁被搁置了两次
第一次安装
我按照网上教程首先执行wget命令,去下载nginx官网的1.16.1版本的nginx包,然后解压,然后。。。我就不会了,然后我去做其他事情了。。。
第二次安装
第二次我使用了apt-get命令执行install安装nginx,然后干了什么我也不记得了,反正在中午之前出现了端口占用等问题,我以为是安装的不对又去按照网上教程卸载nginx,说是卸载,我看教程却是把和nginx有关的东西全部干掉,真·简单粗暴!
第三次安装
这一次我没有过多的操作了仅仅使用了apt-get install nginx来安装
然后教程要我看gcc,PCRE和zlib有没有安装,神奇的是都显示安装了,毕竟我不记得我有这些操作,就勉强理解一下我的惊奇 ♪(^∀^●)ノ
接着我又以为是端口占用所以无法通过公网ip访问就去kill nginx的进程,然后重新启动nginx发现没问题呀
最后我考虑到是阿里云的安全组没有给80端口,我又尝试添加安全组,选择了快速创建然后有一个http(80)的选择框,其他的都是正常填就可以访问了
秀了这么多,我有预感以后操作nginx肯定问题很大(∙̆ .̯ ∙̆ )
nginx配置
第一步是conf文件
我的操作是执行nginx -t获得文件位置
然后使用vim编辑
在http块中输入
server{
listen 80;
root /home/www/website;这里填博客目录存放的地址
server_name 这里填域名如(www.baidu.com) 如果暂时没有域名就填阿里云的公网ip,以后有了再改回来;
location /{
}
}
并且将http代码块中的两个include的配置选择注释掉
然后针对配置文件中root的路径相应路径建立博客的目录
cd /home
mkdir www
cd /www
mkdir website
git的相关问题
创建git账户
#先创建git账号,这里全部都可以默认
adduser git
#修改用户权限
chmod 740 /etc/sudoers
vi /etc/sudoers
#将这句话添加到与它相似的root ALL = (ALL:ALL)ALL的那句话下面,友情提醒,我也不知道这一步目的是什么
#写要按insert键,保存退出先按esc键然后输入':wq'回车即可
git ALL=(ALL) ALL
#保存退出后 将sudoers文件权限改回原样
chmod 400 /etc/sudoers
#设置git用户的密码
sudo passwd git
#切换到git用户,然后在~目录下创建.ssh文件夹
su git
cd ~
mkdir .ssh
cd .ssh
#生成公钥密钥文件 遇到问题回车默认
ssh-keygen
#然后就会出现
The key's randomart image is:
一张图片
#此时在目录下就会有两个文件,分别是
id_rsa 和 id_rsa.pub
#其中 id_rsa.pub 就是公钥文件 我们复制一份
cp id_rsa.pub authorized_keys
#最后我们修改它的权限 我也不知道这里的权限代码是什么意思,linux没学好啊...
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
#然后就可以在自己windos电脑上测试有没有成功看了
ssh -v git@SERVER(server替换成服务器的公网ip)
#下面的我是在服务器上输入的而不是在windos的cmd控制台输入,因为不知道什么原因cmd卡住了
#现在我们要创建一个git的仓库,并且新建一个post-receive文件,操作如下:
cd ~
git init --bare blog.git
vi ~/blog.git/hooks/post-receive
#输入以下内容:
git --work-tree=/home/www/website --git-dir=/home/git/blog.git checkout -f
#保存退出并授予该文件可执行权限
chmod +x ~/blog.git/hooks/post-receive
#至此我们就完成了所有关于服务器端的配置。、
客户端hexo的配置
#配置_config.yml完成服务器的部署
#找到deploy 做如下配置
deploy:
type: git
repo: git@这里改为服务器公网IP:/home/git/blog.git
branch: master
message:
#保存退出
#然后尝试写一篇文章并且发布到服务器上
hexo new "Hello My First Blog"
hexo clean && hexo generate --deploy
在服务器上重新运行nginx服务器
nginx -s reload
最后的一点问题
在输入hexo generate --deploy后,提示在创建文件夹的时候没有权限,这是因为home/www文件夹没有给权限,我询问过朋友后将权限设置为777就可以了