Linux系统LNMP2
安装nginx服务
1.1 第一个里程:进行nginx软件下载
cd /install
wget http://nginx.org/download/nginx-1.12.2.tar.gz
第二里程碑:安装依赖软件
yum install -y pcre-devel openssl-devel
1.2 第三个里程:解压软件,创建虚拟用户,进行编译安装(三步曲)
命令:(解压)tar xf nginx-1.12.2.tar.gz
命令:(检查)ll /server/tools
drwxr-xr-x 8 1001 1001 4096 Oct 17 21:16 nginx-1.12.2
-rw-r--r-- 1 root root 981687 Oct 17 21:20 nginx-1.12.2.tar.gz
命令:(切换)cd nginx-1.12.2/
命令:(查看路径)pwd
/server/tools/nginx-1.12.2
命令:(创建虚拟管理用户)useradd -s /sbin/nologin -M www
命令:(创建)nginx命令安装的所在地
命令:(创建)mkdir -p /application/nginx-1.12.2/
编译第一步曲:进行配置(/server/tools/nginx-1.12.2)
./configure --prefix=/application/nginx-1.12.2 --user=www --group=www --with-http_ssl_module --with-http_stub_status_module
1.2.1 配置参数说明:
--prefix=PATH set installation prefix
指定软件程序安装的路径信息
--user=USER set non-privileged user for
worker processes
创建一个虚拟用户,用于管理nginx服务的worker进程
--group=GROUP set non-privileged group for
worker processes
创建一个虚拟用户组,用于管理nginx服务的worker进程
--with-http_ssl_module enable ngx_http_ssl_module
让nginx服务可以支持https访问
--with-http_stub_status_module enable ngx_http_stub_status_module
便于监控软件监视nginx服务运行状态
1.3 编译第二步曲:编译(翻译)
说明:编译过程实质是将各种程序语言转换为系统可以识别的二进制信息
命令:(把代码---->二进制)make
1.4 编译第三步曲:编译安装
命令:(安装)make install
1.5 第四个里程碑:创建程序目录软链接文件
命令:(创建软连接)cd /application/ && ln -s /application/nginx-1.12.2/ /application/nginx
命令:(检查)ll /application/
total 4
lrwxrwxrwx 1 root root 26 Feb 2 17:14 nginx -> /application/nginx-1.12.2/
drwxr-xr-x 6 root root 4096 Feb 2 17:13 nginx-1.12.2
1.6 第五个里程碑:网站服务启动成功
命令:(启动nginx服务)/application/nginx/sbin/nginx
1.7 第六个里程碑:检查测试
命令:(检查进程是否开启)ps -ef |grep nginx
root 6948 1 0 17:17 ? 00:00:00 nginx: master process /application/nginx/sbin/nginx
www 6949 6948 0 17:17 ? 00:00:00 nginx: worker process
root 6951 1279 0 17:17 pts/1 00:00:00 grep nginx
说明:master进程表示nginx主进程,负责nginx服务的启动 停止等操作
worker进程表示真正处理用户请求的进程
命令:(检查80端口是否开启)netstat -lntup|grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 12684/nginx
检查nginx软件是否安装成功
windows 39.96.209.11
欢迎使用nginx的界面
!!!!!!第七个里程碑(基于域名的虚拟主机配置)
[root@web01 conf]# pwd
/application/nginx/conf 路径
#进行nginx的配置文件的备份
命令:(备份)cp nginx.conf{,.bak}
#进行nginx的配置文件的简化
命令:(简化)
[root@web01 conf]# vim nginx.conf (配置nginx的配置文件的主配置文件)
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
server {
listen 80;
server_name www.huchangxi.com;
root html/www;
index index.html index.htm;
}
}
第八个里程碑(网站目录和文件环境准备)
[root@web01 nginx]# mkdir /application/nginx/html/www -p 创建目录
[root@web01 nginx]# echo "39.96.209.111 hua" > /application/nginx/html/www/index.html 创建内容
[root@web01 nginx]# cat /application/nginx/html/www/index.html
39.96.209.111 hua
查看创建结果
第九个里程碑(检查配置文件语法,进行服务重启或者启动)
[root@web01 conf]# /application/nginx/sbin/nginx -t 检查语法
nginx: the configuration file /application/nginx-1.12.2/conf/nginx.conf syntax is ok
nginx: configuration file /application/nginx-1.12.2/conf/nginx.conf test is successful
[root@web01 conf]# /application/nginx/sbin/nginx 启动
第十个里程碑(利用curl或者浏览器进行访问测试)
需要对虚拟主机域名进行解析(编写hosts文件-linux/ windows里面hosts)
#添加www的解析
命令:(添加)vim /etc/hosts
39.96.209.111 hua
第十一个里程碑(设置开机自启nginx服务)
#把启动nginx的命令添加到/etc/rc.local开启自启动里
命令: vim /etc/rc.local
/application/nginx/sbin/nginx
当客户端访问nginx服务端,返回的状态码信息为304时,表示进行读取缓存处理
(nginx服务配置结束)
第三步安装MySQL数据库
第一个里程碑进行编译下载MySQL软件
把安装包上传到/server/tools/目录中
第二个里程碑解压软件程序
命令:(切换)cd /install
命令:(解压) tar xf mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz
命令:(查看)ll
drwxr-xr-x 13 root root 4096 Feb 7 15:19 mysql-5.6.34-linux-glibc2.5-x86_64
-rw-r--r-- 1 root root 314149697 Mar 23 2017 m ysql-5.6.34-linux-glibc2.5-x86_64.tar.gz
第三个里程碑:将解压后的程序目录移动到/application/目录中,创建软连接
命令:(移动)cp -r mysql-5.6.34-linux-glibc2.5-x86_64 /application/
命令:(重命名)mv /application/ mysql-5.6.34-linux-glibc2.5-x86_64 /application/ mysql-5.6.34
命令:(创软连接)ln -s /application/mysql-5.6.34/ /application/mysql
命令:(查看)ll /application/
lrwxrwxrwx 1 root root 48 Feb 6 20:18 mysql -> /application/mysql-5.6.34-linux-glibc2.5-x86_64/
drwxr-xr-x 13 root root 4096 Feb 6 20:18 mysql-5.6.34-linux-glibc2.5-x86_64
第四个里程碑:创建数据目录管理用户(完成数据库软件安装完毕)
命令:(创建用户)useradd -M -s /sbin/nologin mysql
命令:(进行数据目录授权)chown -R mysql.mysql /application/mysql/data/
第五个里程碑:初始化数据库程序
#1. 确认软件安装在哪里
#2. 确认数据存放在哪里
#3. 确认MySQL使用的用户谁?(/install/)
命令:(初始化)/application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data --user=mysql
第六个里程碑:复制启动脚本,并且进行授权
命令:(复制到/etc/init.d/)cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld
命令:(进行添加执行权限)chmod +x /etc/init.d/mysqld
第七个里程碑:修改启动脚本 和 mysql命令中的路径
命令:(更改默认安装目录)sed -i 's#/usr/local/mysql#/application/mysql#g' /application/mysql/bin/mysqld_safe /etc/init.d/mysqld
第八个里程碑:复制默认的配置文件
命令:(进行添加配置文件)\cp /application/mysql/support-files/my-default.cnf /etc/my.cnf
第九个里程碑:启动mysql服务并添加mysql的命令的绝对路径
命令:(开启)/etc/init.d/mysqld start
命令:(添加路径)echo "export PATH=/application/mysql/bin:$PATH" >>/etc/profile
命令:(生效)source /etc/profile
第十个里程碑:给数据库设置一个密码(在mysql启动后配置)
命令:(方法一)/application/mysql/bin/mysqladmin -u root password 'new-password'
命令:(方法二)/application/mysql/bin/mysqladmin -u root -h web01 password 'new-password'
命令:(非交互式)mysqladmin -uroot password "oldboy123"
命令:(交互式)mysql -uroot -p
第十一个里程碑:进入数据库
命令:(进入)mysql -uroot -p1234356
[root@m01 application]# mysql -uroot -p123456
Warning: Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 16
Server version: 5.6.34 MySQL Community Server (GPL)
Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
添加mysql服务开机自启
因为mysql的配置文件已经放到/etc/init.d/目录下了,并且经过了授权
命令:(让chkconfig管理)chkconfig --add mysqld
命令:(设置mysql开机自启)chkconfig mysqld on
数据库的基本操作
show databases; <--- 查询默认的数据库信息
create database oldboy; <---创建新的数据库
drop database oldboy; <---删除存在的数据库
use mysql; <--- 表示选择使用一个数据库,相当于cd进入一个数据库
show tables; <---查看数据库中表信息
select database(); <--- 表示查看当前所在数据库,类似于pwd命令的功能
select user(); <--- 查看当前登录数据库的用户,类似于whoami命令
并且mysql还可以限制指定用户可以从哪里进行连接登录数据库
select * from user\G; <---查看user表中所有信息,并且纵行显示
select user,host from user; ---查看user表中指定信息,并且横行显示
select user,host from mysql.user; ---查看可以登录mysql数据库的目录,以及都可以从哪里进行管理mysql数据库
grant all on *.* to user@'host' identified by 'oldboy123'; ---创建用户
grant all on *.* to Old_Boy@'localhost' identified by 'oldboy123'; ---创建用户(大写用户)
drop user 'user'@'host';
flush privileges; --- 刷新权限
第四步安装PHP
第一个里程碑:进行编译下载到/server/tools/目录中
上传到/server/tools/目录中
第二个里程碑:安装PHP软件的依赖关系
命令:(检查)yum install -y zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel
命令:(检查)rpm -qa zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel
第三个里程碑:libiconv软件安装---字符集转换库(默认可以不进行安装了)
命令:(切换)cd /server/tools/
命令:(下载)wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz
命令:(解压)tar zxf libiconv-1.14.tar.gz
命令:(切换)cd /server/tools/libiconv-1.14
命令:(进行)/server/tools/libiconv-1.14/configure --prefix=/usr/local/libiconv
命令:(进行翻译)make
命令:(进行编译安装)make install
命令:(切换)cd /server/tools/
命令:(下载)wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
命令:(下载)yum install libmcrypt-devel mhash mcrypt -y
命令:(检查)rpm -qa libmcrypt-devel mhash mcrypt
第四个里程碑:下载解压PHP软件
命令:(切换)cd /server/tools/
命令:(解压)tar xf php-5.5.32.tar.gz
命令:(切换)cd /server/tools/php-5.5.32
命令:(进行配置)
./configure \
--prefix=/application/php-5.5.32 \
--with-mysql=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-iconv-dir=/usr/local/libiconv \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir=/usr \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--enable-fpm \
--enable-mbstring \
--with-mcrypt \
--with-gd \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-soap \
--enable-short-tags \
--enable-static \
--with-xsl \
--with-fpm-user=www \
--with-fpm-group=www \
--enable-ftp \
--enable-opcache=no
注:说明:LNMP架构部署时,如果mysql服务和web服务不在一台主机上,php配置参数需要进行调整
--with-mysql=/application/mysql/ => --with-mysql=mysqlnd
======================================================================================
PHP扩展参数:(配置没有问题可以省略以下配置参数,以下参数和PHP优化有关)
--with-curlwrappers \
--enable-zip \
--enable-zend-multibyte \
怕出错(防错)(以下信息可以不进行配置了)
命令:(创建软连接)ln -s /application/mysql/lib/libmysqlclient.so.18 /usr/lib64/
命令:(创建文件)touch ext/phar/phar.phar
命令:(进行翻译php)make
命令:(进行编译安装php)make install
PHP软件程序创建软链接
命令:(进行移动)cp -r /server/tools/php-5.5.32 /application/
命令:(创建软连接)ln -s /application/php-5.5.32/ /application/php
配置php解析文件/配置php-fpm配置文件
命令:(切换)cd /server/tools/php-5.5.32
命令:(查看)ll php.ini*
-rw-r--r--. 1 1001 1001 69236 2016-02-02 21:33 php.ini-development
-rw-r--r--. 1 1001 1001 69266 2016-02-02 21:33 php.ini-production
(php.ini-developments是开发人员调试用配置文件,php.ini-production是生产常见所有配置文件)
命令:(复制)cp php.ini-production /application/php/lib/php.ini
php.ini-production 与 php.ini-development 文件区别关系对比
扩展:文件比较命令 diff zdiff vimdiff windows上的文件比较
命令:(切换)cd /application/php/etc/
命令:(切换)cp php-fpm.conf.default php-fpm.conf
(以下内容看情况)
# 编译安装PHP时,若配置未正确指定PHP进程用户信息,可以修改PHP文件进行调整
sed -i 's#user = www#user = nginx#g;s#group = www#group = nginx#g' /application/php-5.5.32/etc/php-fpm.conf
启动php-fpm程序
命令:(启动)/application/php/sbin/php-fpm
命令:(进行检查端口)lsof -i :9000 <--- 确认php 9000端口是否正确启动
命令:(进行检查程序)ps -ef|grep php-fpm
<?php
//$link_id=mysql_connect('主机名','用户','密码');
//mysql -u用户 -p密码 -h 主机
$link_id=mysql_connect('localhost','wordpress','oldboy123') or mysql_error();
if($link_id){
echo "mysql successful by oldboy !\n";
}else{
echo mysql_error();
}
?>
至此:LNMP架构环境部署完成
wordpress博客站点部署配置
修改nginx配置文件,使nginx程序与php程序建立联系
命令:(切换) cd /application/nginx/conf/extra/
命令:[root@web01 extra]#(配置blog文件) vim blog.conf
server {
listen 80;
server_name blog.etiantian.org;
location / {
root html/blog;
index index.php index.html index.htm;
}
location ~* .*\.(php|php5)?$ {
root html/blog;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
}
注:上面的配置文件可以修改
index index.html index.htm; <-- 需要注意编辑修改默认首页文件 index index.php index.html index.htm;
编辑nginx与php连通性测试文件,并进行测试
cd /application/nginx/html/blog/
echo '<?php phpinfo(); ?>' >/application/nginx/html/blog/test_info.php
测试站点
curl http://blog.etiantian.org/index.html <-- 静态请求站点文件信息测试
curl http://blog.etiantian.org/test_info.php <-- 动态请求站点文件信息测试
说明:当php服务停止时,9000端口信息消失,即停止PHP错误报502错误
linux系统测试完毕后,建议利用浏览器进行最终测试,测试效果更明显些
编辑php与mysql连通性测试文件,并进行测试
cd /application/nginx/html/blog/
echo '<?php phpinfo(); ?>' >/application/nginx/html/blog/test_info.php
测试站点
curl http://blog.etiantian.org/index.html <-- 静态请求站点文件信息测试
curl http://blog.etiantian.org/test_info.php <-- 动态请求站点文件信息测试
说明:当php服务停止时,9000端口信息消失,即停止PHP错误报502错误
linux系统测试完毕后,建议利用浏览器进行最终测试,测试效果更明显些
下载部署wordpress博客程序
下载部署wordpress博客程序(https://cn.wordpress.org/ 英文官网:https://www.wordpress.org/ )
[root@web01 ~]# cd /server/tools
[root@web01 tools]#wget https://cn.wordpress.org/wordpress-4.5.1-zh_CN.tar.gz
[root@web01 tools]#tar xf wordpress-4.5.1-zh_CN.tar.gz 解压
[root@web01 tools]#mv wordpress/* /application/nginx/html/blog/ 移动
[root@web01 tools]# chown -R www.www /application/nginx/html/blog/ 授权
注意:确认hosts文件进行了解析
浏览器页面进行wordpress部署
浏览器页面进行wordpress部署:http://blog.etiantian.org/
登录主页面点击直接就可以生成wp-config.php配置文件
vim wp-config.php 可以修改wordpress上的数据库连接参数信息
编辑php与mysql连通性测试文件,并进行测试
创建数据库
命令:(进入mysql)mysql -uroot -poldboy123;
命令:(查看当前的mysql信息)show databases; <--- 查看当前数据库信息
命令:(创建库)create database wordpress;
添加用户信息
grant all on wordpress.* to 'wordpress'@'localhost' identified by 'oldboy123'; 授权本地
grant all on wordpress.* to 'wordpress'@'172.16.1.0/255.255.255.0' identified by 'oldboy123'; 授权远程
flush privileges;
drop user wordpress@'172.16.1.8'; <--- 删除用户信息
select user,host from mysql.user; <--- 查看用户信息
mysql -uwordpress -p123456 <--- 测试创建的用户连接
show databases; <--- 查看当前数据库信息
delete from mysql.user where user='wordpress' and host='localhost'; 删除用户信息
利用mysql命令进行指定用户登录测试
/application/mysql/bin/mysql -uwordpress -poldboy123 绝对路径登录MySQL数据库
测试php与mysql数据库连通性
[root@web01 ~]# cd /application/nginx-1.12.2/html/blog
[root@web01 blog]# vim test_mysql.php
<?php
//$link_id=mysql_connect('主机名','用户','密码');
//mysql -u用户 -p密码 -h 主机
$link_id=mysql_connect('localhost','root','oldboy123') or mysql_error();
if($link_id){
echo "mysql successful by oldboy !\n";
}else{
echo mysql_error();
}
?>
测试:
curl blog.etiantian.org/test_mysql.php <-- 测试php与数据库的连通性
wordpress博客站点数据库迁移
搭建mysql数据库
重复上面创建数据库的步骤
迁移数据库:利用数据库备份命令
备份数据库数据库信息
mysqldump -uroot -poldboy123 --all-databases >/tmp/bak.sql
ll /tmp/bak.sql -h
scp /tmp/bak.sql 172.16.1.51:/tmp/
进行指定库 mysql -uroot -p123 oldboy6 < ds_tqxq_hour.sql
恢复数据库数据库信息 (搭建好db01数据库服务器)
mysql -uwordpress -poldboy123 -h 172.16.1.51 <-- 修改配置文件之前,先测试网站web服务器与迁移后的数据库连通性
vim wp-config.php <-- 修改wordpress上的数据库连接参数信息
/** MySQL主机 */
define('DB_HOST','172.16.1.51') <-- 修改连接的主机信息,将localhost修改为172.16.1.51
注:配置wp-config.php如下图:
注:上面wp-config.php 文件是登录博客时自动生成的。
[root@web01 blog]# pwd 地址:
/application/nginx/html/blog
[root@web01 02]# pwd
/application/nginx/html/blog/wp-content/uploads/2018/02
[root@web01 02]#图片地址
说明:web服务器数据库此时可以关闭了
停止nginx服务器上MySQL服务
冷迁移数据库(第二种方法)
方法2(冷迁移数据库): web01停止数据库,然后完全拷贝数据库
rsync -a /application/mysql-5.6.34 root@10.0.0.51:/application/
scp /etc/my.cnf root@10.0.0.51:/etc/
scp /etc/init.d/mysqld root@10.0.0.51:/etc/init.d/
注:需要安装 libaio-devel 依赖
yum install libaio-devel
搭建网站流程:
blog bbs www
第一个里程碑:要有网站代码(向开发人员要)
博客软件见压缩包
tar xf wordpress-4.7.3-zh_CN.tar.gz
第二个里程碑:进入到代码程序目录中,将代码信息移动到站点目录下
mv ./* /application/nginx/html/blog/
第三个里程碑:修改站点目录权限
chown -R www.www /application/nginx/html/blog/
第四个里程碑:进行网站初始化
create database wordpress;
grant all on wordpress.* to 'wordpress'@'172.16.1.%' identified by 'oldboy123';
grant all on wordpress.* to 'wordpress'@'localhost' identified by 'oldboy123';
flush privileges;
(web01)修改nginx的主配置文件
命令:vim /application/nginx/conf/nginx.conf
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
server {
listen 80;
server_name bbs.etiantian.org;
root html/bbs;
index index.php index.html index.htm;
access_log logs/access.log main;
location ~ .*\.(php|php5)?$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
}
server {
listen 80;
server_name blog.etiantian.org;
root html/blog;
index index.php index.html index.htm;
access_log logs/access.log main;
location ~ .*\.(php|php5)?$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
}
server {
listen 80;
server_name www.etiantian.org;
root html/www;
index index.php index.html index.htm;
access_log logs/access.log main;
location ~ .*\.(php|php5)?$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
}
}
负载均衡
搭建nginx服务
重复上面操作
配置nginx的主配置文件
[root@lb01 ~]# vim /application/nginx/conf/nginx.conf
worker_processes 1;
error_log /tmp/error.log error;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log off;
keepalive_timeout 65;
upstream oldboy{
server 10.0.0.7:80;
server 10.0.0.8:80;
server 10.0.0.9:80;
}
server {
listen 80;
server_name bbs.etiantian.org;
location / {
proxy_pass http://oldboy;
proxy_set_header Host $host;
}
}
server {
listen 80;
server_name www.etiantian.org;
location / {
proxy_pass http://oldboy;
proxy_set_header Host $host;
}
}
}
重启nginx服务
[root@lb01 ~]# /application/nginx/sbin/nginx -t
[root@lb01 ~]# /application/nginx/sbin/nginx -s stop
[root@lb01 ~]# /application/nginx/sbin/nginx
抓包检测
高可用(keepalived)
第一个里程碑:keepalived软件安装部署
### lb01 lb02负载服务器上均安装
yum install -y keepalived
rpm -qa keepalived
第二个里程碑:进行默认配置测试
### 启动lb01 lb02的keepalived服务
/etc/init.d/keepalived start
第三个里程碑:搭建基础的keepalived配置文件
#lb01
global_defs {
router_id LVS_01
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.3/24 broadcast 10.0.0.255 dev eth0 label eth0:1
}
}
#lb02
global_defs {
router_id LVS_02
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.3/24 dev eth0 label eth0:1
}
}
nginx反向代理-负载均衡 ---做高可用
统一lb01 lb02 反向代理 配置文件
####lb01 nginx.conf
worker_processes 1;
error_log /tmp/error.log error;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
access_log off;
keepalive_timeout 65;
upstream oldboy{
server 10.0.0.7:80;
server 10.0.0.8:80;
server 10.0.0.9:80;
}
server {
listen 80;
server_name blog.etiantian.org;
location / {
proxy_pass http://oldboy;
proxy_set_header Host $host;
}
}
}
实现双组
第一个里程碑-配置keepalived-配置双主
lb01
global_defs {
router_id LVS_01
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.3/24 dev eth0 label eth0:1
}
}
vrrp_instance VI_2 {
state BACKUP
interface eth0
virtual_router_id 52
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.4/24 dev eth0 label eth0:2
}
}
lb02
global_defs {
router_id LVS_02
}
vrrp_instance VI_1 {
state BACKUP
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.3/24 dev eth0 label eth0:1
}
}
vrrp_instance VI_2 {
state MASTER
interface eth0
virtual_router_id 52
priority 150
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
10.0.0.4/24 dev eth0 label eth0:2
}
}
配置主配置文件
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
log_format main '$remote_addr - $remote_user [$time_local] "$request" '
'$status $body_bytes_sent "$http_referer" '
'"$http_user_agent" "$http_x_forwarded_for"';
upstream server_pools {
server 10.0.0.7;
server 10.0.0.8;
server 10.0.0.9;
}
server {
listen 10.0.0.3:80;
server_name www.etiantian.org;
location / {
proxy_pass http://server_pools;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
access_log logs/access_www.log main;
}
server {
listen 10.0.0.4:80;
server_name blog.etiantian.org;
location / {
proxy_pass http://server_pools;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
access_log logs/access_blog.log main;
}
}
进行抓包检测