1、概述

    上一篇博客(Centos7.2 搭建Apache+Php+Mysql环境)描述了本人个人博客(anxpp.com)服务器又winserver 2012 更换为centos7.2,并演示了运行环境的搭建,今天在这个基础上,添加了nginx作反向代理服务器。

    因为本人有两台服务器,一台有公网ip(下文简称server1),另一台没有公网ip(下文简称server2),但是与前一台在同一局域网。 所以本人按上一篇博客的过程,将整个博客系统从server1移到了server2中,然后在server1中使用nginx反向代理。

2、数据迁移及相关工作

    server2中的环境搭建这里就不多说了,请参考文首提到的上一篇文章。

    首先要将server1中的网站数据和数据库中的数据,在server2中需要安装ssh工具,方便文件的上传。

    2.1、ssh

    安装:

yum install openssh-server

    启动ssh服务:

systemctl start sshd

    2.2、导出、上传数据

    在server1中,直接使用scp将数据上传到server2中。

    将本地数据上传到服务器的命令使用方法如下:

    scp [可选参数] file_source file_target

    本人实际使用如下:

scp -r /var/www/html root@server2ip:/var/www/

    如果修改过server的ssh服务端口,请加上参数“-p port”,参数“-r”表示递归上传目录中及所有子目录中的文件。

    因为数据在内网中传送,所以速度相当快。

    接下来将mysql中的数据备份出来,此处直接备份为sql文件:

mysqldump -u root -p anxppblog > anxppblog.sql 

    随后会验证密码,若通过即可成功备份为sql文件。

    其中anxppblog为本人数据库名。

    接着将该文件上传到server2中,使用如下命令恢复带数据库:

mysql -uroot -ppassword;
create database anxppblog DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
mysql->use anxppblog;
mysql->set names utf8;
mysql->source anxppblog.sql;

    2.3、关闭server1中相关服务

systemctl stop mariadb     #关闭服务
systemctl disable mariadb #取消自启动
systemctl stop httpd
systemctl diable httpd

    博客系统已经准备好。

3、nginx的使用

    3.1、安装和运行

    首先安装,直接使用yum安装即可:

yum install nginx;

    nginx很小,很快就能装好。

    安装好后直接启动起来:

systemctl start nginx
systemctl enable nginx

    3.2、配置反向代理

    默认安装配置文件位于:/etc/nginx/nginx.conf

    vi打开:

vi /etc/nginx/nginx.conf

    反向代理主要配置的参数是“proxy_pass”

    找到配置信息“location /”,在里面添加:

proxy_pass http://server2的ip/;

    这样反向代理就配置好了。

    此时,可能我们的博客还只能访问首页(因为很多博客系统的子路径是通过获取http header中的Host与资源的相对路径拼凑而成的),所以在proxy_pass参数下,添加proxy_set_header参数用于更改其中的信息:

proxy_set_header Host anxpp.com;

    OK,至此,博客系统已经恢复正常运行了。

4、总结

    经测试,博客的响应速度明显提升,我们还可以进一步配置nginx的Buffer和Cache缓存进一步优化访问速度。

    nginx配置反向代理共涉及21个指令,夜已深,此处就不多说了。

    这也算是一种网站架构的优化吧。

    如果大家也要做类似的事情,若有问题,可以一起探讨。

    个人博客:anxpp.com

    后续会围绕博客更新Docker相关文章,简单介绍网站架构的演化。