nginx+apache动静分离/负载均衡

【主从】

【Mysql-Master】

log-bin=mysql-bin
server-id = 1

MariaDB [(none)]> grant replication slave on *.* to ‘slave‘@‘192.168.2.158‘ identified by ‘123.com‘;

MariaDB [(none)]> flush privileges;

MariaDB [(none)]> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000001 | 551 | | |
+------------------+----------+--------------+------------------+

【Mysql-slave】

server-id = 2

MariaDB [(none)]> slave stop;
Query OK, 0 rows affected, 1 warning (0.00 sec)

MariaDB [(none)]> change master to
-> master_host=‘192.168.2.157‘,
-> master_user=‘slave‘,
-> master_password=‘123.com‘,
-> master_log_file=‘mysql-bin.000001‘,
-> master_log_pos=551;
Query OK, 0 rows affected (0.09 sec)

MariaDB [(none)]> slave start;
Query OK, 0 rows affected (0.00 sec)

主从成功~

【两台服务器站点虚拟主机配置】

# vim /etc/httpd/conf/httpd.conf

ServerRoot "/etc/httpd"
Listen 80
AddType     application/x-httpd-php  .php
Include conf.modules.d/*.conf
User apache
Group apache
ServerAdmin [email protected]
<Directory />
    AllowOverride none
    Require all denied
</Directory>
DocumentRoot "/var/www/html"
<Directory "/var/www">
    AllowOverride None
    Require all granted
</Directory>
<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>
<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>
<Files ".ht*">
    Require all denied
</Files>
ErrorLog "logs/error_log"
LogLevel warn
<IfModule log_config_module>
    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %b" common
    <IfModule logio_module>
      LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio
    </IfModule>
    CustomLog "logs/access_log" combined
</IfModule>
<IfModule alias_module>
    ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
</IfModule>
<Directory "/var/www/cgi-bin">
    AllowOverride None
    Options None
    Require all granted
</Directory>
<IfModule mime_module>
    TypesConfig /etc/mime.types
    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz
    AddType text/html .shtml
    AddOutputFilter INCLUDES .shtml
</IfModule>
AddDefaultCharset UTF-8
<IfModule mime_magic_module>
    MIMEMagicFile conf/magic
</IfModule>
EnableSendfile on
IncludeOptional conf.d/*.conf
Include  conf/vhosts.conf

mkdir -p  /var/www/html/dz.bxy.net/

mkdir -p  /var/www/html/wps.bxy.net/

#vim  /etc/httpd/conf/vhosts.conf 

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/var/www/html/dz.bxy.net/"
    ServerName dz.bxy.net
    ErrorLog "/etc/httpd/logs/www-error_log"
    CustomLog "/etc/httpd/logs/www-access_log" common
</VirtualHost>
NameVirtualHost *:80
<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/var/www/html/wps.bxy.net"
    ServerName wps.bxy.net
    ErrorLog "/etc/httpd/logs/www-error_log"
    CustomLog "/etc/httpd/logs/www-access_log" common
</VirtualHost>

192.168.2.157站点

【Discuz和workpress部署】

# cd /var/www/html/

#wget http://download.comsenz.com/DiscuzX/3.1/Discuz_X3.1_SC_UTF8.zip

#wget https://cn.wordpress.org/wordpress-4.9.4-zh_CN.tar.gz

#unzip Discuz_X3.1_SC_UTF8.zip -d Discuz/

[[email protected] Discuz]# mv upload/* .
[[email protected] Discuz]# chmod o+x uc_server/ config/ uc_client/

MariaDB [(none)]> create database DiscuzDB charset=utf8;

MariaDB [(none)]> grant all on DiscuzDB.* to ‘discuz‘@‘%‘ identified by ‘123.com‘;

MariaDB [(none)]> flush privileges

hosts解析:因为要通过域名连接数据库地址,那么我们需要将数据库的IP地址和自定义域名解析

【wordpress网站部署】

#tar zxvf wordpress-4.9.4-zh_CN.tar.gz -C wordpress/

【数据库授权】
MariaDB [(none)]> create database wpsDB charset=utf8;

MariaDB [(none)]> grant all on *.* to ‘wpsuser‘@‘%‘ identified by ‘123.com‘;

MariaDB [(none)]> flush privileges;

host解析:我们将wordpress域名解析到2.157主库ip地址跟后面即可

[[email protected] wps.bxy.net]# vim wp-config.php

<?php
/**
 * WordPress基础配置文件。
 *
 * 这个文件被安装程序用于自动生成wp-config.php配置文件,
 * 您可以不使用网站,您需要手动复制这个文件,
 * 并重命名为“wp-config.php”,然后填入相关信息。
 *
 * 本文件包含以下配置选项:
 *
 * * MySQL设置
 * * 密钥
 * * 数据库表名前缀
 * * ABSPATH
 *
 * @link https://codex.wordpress.org/zh-cn:%E7%BC%96%E8%BE%91_wp-config.php
 *
 * @package WordPress
 */

// ** MySQL 设置 - 具体信息来自您正在使用的主机 ** //
/** WordPress数据库的名称 */
define(‘DB_NAME‘, ‘wpsDB‘);

/** MySQL数据库用户名 */
define(‘DB_USER‘, ‘wpsuser‘);

/** MySQL数据库密码 */
define(‘DB_PASSWORD‘, ‘123.com‘);

/** MySQL主机 */
define(‘DB_HOST‘, ‘wps.mysql.net‘);

/** 创建数据表时默认的文字编码 */
define(‘DB_CHARSET‘, ‘utf8mb4‘);

/** 数据库整理类型。如不确定请勿更改 */
define(‘DB_COLLATE‘, ‘‘);

/**#@+
 * 身份认证密钥与盐。
 *
 * 修改为任意独一无二的字串!
 * 或者直接访问{@link https://api.wordpress.org/secret-key/1.1/salt/
 * WordPress.org密钥生成服务}
 * 任何修改都会导致所有cookies失效,所有用户将必须重新登录。
 *
 * @since 2.6.0
 */
define(‘AUTH_KEY‘,         ‘kXeW~n6gq[_u;[email protected])|?8~SKt(A0K,^!U/u4yOvb ]6J._LJ!KPg‘);
define(‘SECURE_AUTH_KEY‘,  ‘ui|@1SGGC!Wpi)lMdBuh^~.ueevR$ar]B_X8#|&&U.z4YGH02RVSK(`8X2hho)Xm‘);
define(‘LOGGED_IN_KEY‘,    ‘cd)V9bEPLk4|Q=Z<Ri_Sfp*nvg/Ui+BgHXGL./[email protected]!dMRE=PYV7nJ_&ijK*#y~‘);
define(‘NONCE_KEY‘,        ‘:-sd O<^pJvN. ;:SuxaSx5kd%W`[email protected]&d_^SM*X4([email protected]&;aQo2wAko‘);
define(‘AUTH_SALT‘,        ‘O[@Bx|[email protected]{^NF2Q,N6y4d]9&|+Qy$qB6zknzm4tkiOqa4Si5;)/[email protected]&;!r8%;‘);
define(‘SECURE_AUTH_SALT‘, ‘~ r8gh?MF$I-)I~9kCC0>p(|nx7vF34<^ZN~AS~lb1Tzx-0SEvf3V1vi0+kQS#>_‘);
define(‘LOGGED_IN_SALT‘,   ‘-CgDBdxb$N9Kw:MI+>c5WUxW,W141KP-6/tDV!I5s]m/H:#ltw(dP?0Ar]0cz]Yw‘);
define(‘NONCE_SALT‘,       ‘ze9RdLoKcC-Bsl%<n6VjzDVz#Gu(h&t ^UkuqIpAz<$kN.7Cm|4p|{!Cyg[lOia;‘);

/**#@-*/

/**
 * WordPress数据表前缀。
 *
 * 如果您有在同一数据库内安装多个WordPress的需求,请为每个WordPress设置
 * 不同的数据表前缀。前缀名只能为数字、字母加下划线。
 */
$table_prefix  = ‘wp_‘;

/**
 * 开发者专用:WordPress调试模式。
 *
 * 将这个值改为true,WordPress将显示所有用于开发的提示。
 * 强烈建议插件开发者在开发环境中启用WP_DEBUG。
 *
 * 要获取其他能用于调试的信息,请访问Codex。
 *
 * @link https://codex.wordpress.org/Debugging_in_WordPress
 */
define(‘WP_DEBUG‘, false);

/**
 * zh_CN本地化设置:启用ICP备案号显示
 *
 * 可在设置→常规中修改。
 * 如需禁用,请移除或注释掉本行。
 */
define(‘WP_ZH_CN_ICP_NUM‘, true);

/* 好了!请不要再继续编辑。请保存本文件。使用愉快! */

/** WordPress目录的绝对路径。 */
if ( !defined(‘ABSPATH‘) )
    define(‘ABSPATH‘, dirname(__FILE__) . ‘/‘);

/** 设置WordPress变量和包含文件。 */
require_once(ABSPATH . ‘wp-settings.php‘);

到此为止,2.157服务器上的两个网站已经全部发布完成,接下来,将该站点上的内容全部同步到2.158上,为后续的负载均衡做准备

 rsync -aP --delete /var/www/html/dz.bxy.net/ [email protected]:/var/www/html/dz.bxy.net/
rsync -aP --delete /var/www/html/wps.bxy.net/ [email protected]:/var/www/html/wps.bxy.net/

同理2.158也需要做本地hosts域名解析

两条命令搞定,2.158只需要将httpp虚机主机搭建起来,配置好与之相同的虚拟主机即可,然后将2.157部署的好网站源码同步过去即可,不需要重新解压~

【Nginx前端负载均衡+动静分离】

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
    worker_connections 1024;
}
http {
    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  /var/log/nginx/access.log  main;
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
    include /etc/nginx/conf.d/*.conf;
    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;
        include /etc/nginx/default.d/*.conf;
        location / {
        }
        error_page 404 /404.html;
            location = /40x.html {
        }
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
include vhosts/*.conf;
}

[[email protected] nginx]# mkdir -p /etc/nginx/vhosts/

[[email protected] nginx]# egrep -v "#|^$" /etc/nginx/vhosts/upstream.conf
upstream httpd_webapp{
    server 192.168.2.157;
    server 192.168.2.158;
}
[[email protected] nginx]# egrep -v "#|^$" /etc/nginx/vhosts/wps.conf
server {
listen 80;
server_name wps.bxy.net;
location /  {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://httpd_webapp;
              }
location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {
       root /var/www/html/wps.bxy.net;
      expires 3d;
}
}
[[email protected] nginx]# egrep -v "#|^$" /etc/nginx/vhosts/dz.conf
server {
listen 80;
server_name dz.bxy.net;
location /  {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://httpd_webapp;
              }
location ~ .*\.(html|htm|gif|jpg|jpeg|bmp|png|ico|txt|js|css)$ {
       root /var/www/html/dz.bxy.net;
      expires 3d;
}
}

原文地址:https://www.cnblogs.com/bixiaoyu/p/9904273.html

时间: 2024-11-03 21:51:53

nginx+apache动静分离/负载均衡的相关文章

nginx实现动静分离负载均衡集群

LB 负载均衡集群分两类: LVS (四层)和 nginx 或 haproxy (七层) 客户端通过访问分发器的 VIP 来访问网站 | 现在应用更复杂,比如现在网站页面有: .php .html .png .jpeg .jsp 等, 有劢态页面有静 态页面.静态页面一般是丌变的,想访问更快些,前面学习过 SQUID. | 但是前面的 LVS 是四层的.基于 IP 的.现在需要在应用层基于丌同的应用迚行分发. | 七层 LB , Nginx / Haproxy 都可以支持 7 层 LB 现在实现

nginx实现动静分离负载均衡

拓扑:nginx代理分发器:192.168.2.130web1===192.168.2.131web2===192.168.2.132源码编译安装nginx 1.环境准备:(1)安装nginx时必须先安装相应的编译工具和相关依赖 [[email protected] ~]#yum -y install gcc gcc-c++ autoconf automake [[email protected] ~]#yum -y install zlib zlib-devel openssl openssl

Nginx+Apache动静分离部署

Nginx+Apache动静分离部署 为什么需要部署Nginx+Apache动静分离? ? 之前在讲解基于LNMP架构的Discuz论坛搭建(原文链接:https://blog.51cto.com/14557673/2461480)的时候对动静分离有所提及,这边简述一下核心原因: ? 根据Nginx服务的特性,其擅长处理静态网站(图片文字视频等文件)访问资源,而Apache擅长动态处理(例如:账号注册的交互). ? 因此我们可以结合这两个服务特点与优势,部署实现网站服务的动静分离. 部署Ngin

部署Nginx+Apache动静分离(实战!可跟做!)

Nginx动静分离介绍 1.Nginx的静态处理能力很强,但是动态处理不足,因此,在企业中常用动静分离技术 2.针对PHP的动静分离 静态页面交给Nginx处理 动态页面交给PHP+FPM模块或Apache处理 3.在Nginx的配置中,是通过location配置段配合正则匹配实现静态与动态页面的不同处理方式 反向代理原理 1.Nginx不仅能作为Web服务器,还具有反向代理.负载均衡和缓存的功能2.Nginx通过proxy模块实现将客户端的请求代理至,上游服务器,此时nginx与.上游服务器的

部署Nginx+Apache动静分离

Nginx动静分离介绍Nginx的静态处理能力很强,但是动态处理能力不足,因此,在企业中常用动静分离技术针对PHP的动静分离 静态页面交给Nginx处理 动态页面交给PHP-FPM模块或Apache处理在Nginx的配置中,是通过location配置段配合正则匹配实现静态与动态页面的不同处理方式反向代理原理Nginx不仅能作为Web服务器,还具有反向代理.负载均衡和缓存的功能Nginx通过proxy模块实现将客户端的请求代理至上游服务器,此时nginx与上游服务器的连接是通过http协议进行的N

Nginx+Apache动静分离

Nginx的静态处理能力很强,但是动态处理能力不足,因此,在企业中常用动静分离技术. 针对PHP的动静分离:静态页面交给Nginx处理,动态页面交给PHP-FPM模块或Apache处理. 在Nginx的配置中,是通过location配置段配合正则匹配实现静态与动态页面的不同处理方式 一.Nginx正则匹配 常用的正则匹配规则 ^~ : 标识符后面跟一个字符串.Nginx将在这个字符串匹配后停止进行正则表达式的匹配,如 location  ^~ /images/,它在匹配了/images/这个字符

Nginx 笔记与总结(15)nginx 实现反向代理 ( nginx + apache 动静分离)

在 nginx 中,proxy 用来实现反向代理,upstream 用来实现负载均衡. 例如有两台服务器,nginx 服务器作为代理服务器,执行 .html 文件,apache 服务器上执行 .php 文件,客户端发来的请求首先发送给 nginx 服务器,如果发送请求的是 .php 文件,则把请求通过 proxy pass 转发给 apache 服务器,apache 服务器处理后把结果返回给 nginx 服务器,nginx 服务再把结果返回给客户端.该例中 nginx 服务器实现了反向代理,或者

nginx+apache+redis实现负载均衡、动静分离、session共享

环境centos6.5 nginx:192.168.1.202 tomcat1:192.168.1.240 tomcat2:192.168.1.201 redis:192.168.1.116 nginx安装: yum install -y nginx 如提示包不存在,安装epel源即可 rpm -ivh https://dl.fedoraproject.org/pub/epel/epel-release-latest-6.noarch.rpm 修改nginx配置文件 vim /etc/nginx

Nginx+Tomcat+Keepalived+Memcache 负载均衡动静分离技术

一.概述 Nginx 作负载均衡器的优点许多,简单概括为: ①实现了可弹性化的架构,在压力增大的时候可以临时添加Tomcat服务器添加到这个架构里面去; ②upstream具有负载均衡能力,可以自动判断下面的机器,并且自动踢出不能正常提供服务的机器: Keepalived 可实现 Nginx负载均衡器双机互备,任意一台机器发生故障,对方都能够将虚拟IP接管过去. Memcache可以实现Tomcat服务器的Sission共享整个拓补如下: 注意: 1.由于服务器有限,IP相同的为同一台机.只是端