nginx做负载均衡服务器,配置动静分离_centos8nginx动静分离并且负载均衡-程序员宅基地

技术标签: nginx  负载均衡  服务器  

nginx做负载均衡服务器,配置动静分离

1. 题目:

后端RS服务器⼀台部署LNMP(nginx1.22+mysql8.0+php8.0),⼀台部署
httpd。
要求nginx和php使⽤编译安装
最后要通过访问nginx负载均衡服务器的IP看到动静分离的效果。

2. 环境和提供软件包

2.1 提供软件包
[root@node6 ~]# wget https://nginx.org/download/nginx-1.22.0.tar.gz https://www.php.net/distributions/php-8.0.23.tar.gz
[root@node6 ~]# ls
anaconda-ks.cfg                             nginx-1.22.0.tar.gz
mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz  php-8.0.23.tar.gz
[root@node6 ~]# 
2.2 环境
主机 ip 安装的服务
node6 192.168.232.134 lnmp,动态资源
node3 192.168.232.128 nginx,静态资源
node2 192.168.232.129 nginx,做负载均衡
  • 关闭防火墙
[root@node6 ~]# systemctl disable --now firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@node6 ~]# vim /etc/selinux/config 
[root@node6 ~]# setenforce 0


[root@node3 ~]# systemctl disable --now firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@node3 ~]# setenforce 0
[root@node3 ~]# vi /etc/selinux/config


[root@node2 ~]# systemctl disable --now firewalld
Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@node2 ~]# setenforce 0
[root@node2 ~]# vi /etc/selinux/config

3. 在134主机主机部署lnmp,做动态资源

3.1 源码安装nginx
创建系统用户nginx
[root@node6 ~]# useradd -r -M -s /sbin/nologin nginx
[root@node6 ~]# 


安装依赖环境
[root@node6 ~]# yum -y groups mark install 'Development Tools'
[root@node6 ~]# yum -y install pcre-devel openssl openssl-devel gd-devel gcc gcc-c++ make 


创建日志存放目录
[root@node6 ~]# mkdir -p /var/log/nginx
[root@node6 ~]# chown -R nginx.nginx /var/log/nginx
[root@node6 ~]# ll -d /var/log/nginx
drwxr-xr-x. 2 nginx nginx 6 Sep  5 18:43 /var/log/nginx


编译安装
[root@node6 ~]# tar xf nginx-1.22.0.tar.gz 
[root@node6 ~]# cd nginx-1.22.0
[root@node6 nginx-1.22.0]# ./configure \
    --prefix=/usr/local/nginx \
    --user=nginx \
    --group=nginx \
    --with-debug \
    --with-http_ssl_module \
    --with-http_realip_module \
    --with-http_image_filter_module \
    --with-http_gunzip_module \
    --with-http_gzip_static_module \
    --with-http_stub_status_module \
    --http-log-path=/var/log/nginx/access.log \
    --error-log-path=/var/log/nginx/error.log

[root@node6 nginx-1.22.0]# make 
[root@node6 nginx-1.22.0]# make install


nginx安装后配置
[root@node6 ~]# echo 'export PATH=/usr/local/nginx/sbin:$PATH' > /etc/profile.d/nginx.sh
[root@node6 ~]# source /etc/profile.d/nginx.sh



启动nginx
[root@node6 ~]# nginx 
[root@node6 ~]# ss -antl
State  Recv-Q Send-Q  Local Address:Port   Peer Address:Port Process 
LISTEN 0      128           0.0.0.0:22          0.0.0.0:*            
LISTEN 0      128           0.0.0.0:80          0.0.0.0:*            
LISTEN 0      128              [::]:22             [::]:*            
[root@node6 ~]# nginx -s stop
[root@node6 ~]# ss -antl
State  Recv-Q Send-Q  Local Address:Port   Peer Address:Port Process 
LISTEN 0      128           0.0.0.0:22          0.0.0.0:*            
LISTEN 0      128              [::]:22             [::]:*            
[root@node6 ~]# 
  • 可以访问

在这里插入图片描述

3.2 二进制安装MySQL
安装依赖包,创建用户,并解压
[root@node6 ~]# yum -y install ncurses-devel openssl-devel openssl cmake mariadb-devel ncurses-compat-libs

[root@node6 ~]# useradd -r -M -s /sbin/nologin mysql

[root@node6 ~]# tar xf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz -C /usr/local/



修改属主
[root@node6 ~]# cd /usr/local/
[root@node6 local]# ls
bin    include  libexec                              sbin
etc    lib      mysql-8.0.20-linux-glibc2.12-x86_64  share
games  lib64    nginx                                src
[root@node6 local]# mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql
[root@node6 local]# chown -R mysql.mysql mysql
[root@node6 local]# ll -d mysql
drwxr-xr-x. 9 mysql mysql 129 Sep  5 19:02 mysql



配置环境变量,man文档,lib库,头文件
[root@node6 ~]# echo 'export PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
[root@node6 ~]# source /etc/profile.d/mysql.sh
[root@node6 ~]# vim /etc/ld.so.conf.d/mysql.conf
[root@node6 ~]# ldconfig 
[root@node6 ~]# cat /etc/ld.so.conf.d/mysql.conf
/usr/local/mysql/lib
[root@node6 ~]# ln -s /usr/local/mysql/include /usr/include/mysql
[root@node6 ~]# 
[root@node6 ~]# vim /etc/man_db.conf
MANDATORY_MANPATH                       /usr/local/mysql/man



建立数据存放目录,并修改属主
[root@node6 ~]# mkdir -p /opt/data
[root@node6 ~]# chown -R mysql.mysql /opt/data
[root@node6 ~]# ll -d /opt/data
drwxr-xr-x. 2 mysql mysql 6 Sep  5 19:09 /opt/data
[root@node6 ~]# 


初始化数据库,并保存密码
[root@node6 ~]# mysqld --initialize --user mysql --datadir /opt/data
2022-09-05T11:10:42.151293Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.20) initializing of server in progress as process 209429
2022-09-05T11:10:42.160150Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2022-09-05T11:10:43.610708Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2022-09-05T11:10:44.652264Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: w-ETXrfTV1wE
[root@node6 ~]# echo 'w-ETXrfTV1wE' > passwd
[root@node6 ~]# cat passwd
w-ETXrfTV1wE
[root@node6 ~]# 



生成配置文件
[root@node6 ~]# > /etc/my.cnf
[root@node6 ~]# vim /etc/my.cnf
[root@node6 ~]# cat /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /opt/data
socket = /tmp/mysql.sock
port = 3306
pid-file = /opt/data/mysql.pid
user = mysql
skip-name-resolve
[root@node6 ~]# 



配置服务启动脚本
[root@node6 ~]# cd /usr/local/mysql/support-files/
[root@node6 support-files]# cp mysql.server mysqld
[root@node6 support-files]# vim mysqld
basedir=/usr/local/mysql
datadir=/opt/data
[root@node6 support-files]# chown -R mysql.mysql mysqld
[root@node6 support-files]# ll -d mysqld
-rwxr-xr-x. 1 mysql mysql 10602 Sep  2 19:06 mysqld
[root@node6 support-files]# 


先启动测试一下
[root@node6 ~]# /usr/local/mysql/support-files/mysqld start
Starting MySQL.Logging to '/opt/data/node6.err'.
 SUCCESS! 
[root@node6 ~]# ss -antl
State  Recv-Q Send-Q Local Address:Port    Peer Address:Port Process 
LISTEN 0      128          0.0.0.0:22           0.0.0.0:*            
LISTEN 0      128          0.0.0.0:80           0.0.0.0:*            
LISTEN 0      128             [::]:22              [::]:*            
LISTEN 0      70                 *:33060              *:*            
LISTEN 0      128                *:3306               *:*            
[root@node6 ~]# /usr/local/mysql/support-files/mysqld stop
Shutting down MySQL.. SUCCESS! 
[root@node6 ~]# ss -antl
State  Recv-Q Send-Q  Local Address:Port   Peer Address:Port Process 
LISTEN 0      128           0.0.0.0:22          0.0.0.0:*            
LISTEN 0      128           0.0.0.0:80          0.0.0.0:*            
LISTEN 0      128              [::]:22             [::]:*            
[root@node6 ~]# 


配置service文件,设置开机自启
[root@node6 ~]# cd /usr/lib/systemd/system
[root@node6 system]# cp sshd.service mysqld.service
[root@node6 system]# ll sshd.service 
-rw-r--r--. 1 root root 456 Jul 12  2021 sshd.service
[root@node6 system]# ll mysqld.service
-rw-r--r--. 1 root root 456 Sep  5 19:15 mysqld.service
[root@node6 system]# vim mysqld.service 
[root@node6 system]# cat mysqld.service
[Unit]
Description=mysqld server daemon
After=network.target sshd-keygen.target

[Service]
Type=forking
ExecStart=/usr/local/mysql/support-files/mysqld start
ExecStop=/usr/local/mysql/support-files/mysqld stop
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target
[root@node6 system]# systemctl daemon-reload


[root@node6 system]# systemctl enable --now mysqld
Created symlink /etc/systemd/system/multi-user.target.wants/mysqld.service 鈫� /usr/lib/systemd/system/mysqld.service.
[root@node6 system]# ss -antl
State  Recv-Q Send-Q Local Address:Port    Peer Address:Port Process 
LISTEN 0      128          0.0.0.0:22           0.0.0.0:*            
LISTEN 0      128          0.0.0.0:80           0.0.0.0:*            
LISTEN 0      128             [::]:22              [::]:*            
LISTEN 0      70                 *:33060              *:*            
LISTEN 0      128                *:3306               *:*            
[root@node6 system]# 



设置密码
[root@node6 ~]# mysql -uroot -p'w-ETXrfTV1wE';

mysql> alter user 'root'@'localhost' identified by 'run123123';
Query OK, 0 rows affected (0.00 sec)

mysql> quit
Bye
[root@node6 ~]# mysql -uroot -p'run123123';
mysql: [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 9
Server version: 8.0.20 MySQL Community Server - GPL

Copyright (c) 2000, 2020, 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> quit
Bye
[root@node6 ~]# 
3.3 源码安装PHP
解压
[root@node6 ~]# tar xf php-8.0.23.tar.gz

安装依赖包
[root@node6 ~]# yum -y install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libicu-devel libjpeg libjpeg-devel libpng libpng-devel openldap-devel  pcre-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel mhash mhash-devel php-mysqlnd sqlite-devel libzip-devel https://vault.centos.org/centos/8/PowerTools/x86_64/os/Packages/oniguruma-devel-6.8.2-2.el8.x86_64.rpm



编译安装:
[root@node6 ~]# cd php-8.0.23
[root@node6 php-8.0.23]# ./configure --prefix=/usr/local/php7  \
  --with-config-file-path=/etc \
  --enable-fpm \
  --enable-inline-optimization \
  --disable-debug \
  --disable-rpath \
  --enable-shared \
  --enable-soap \
  --with-openssl \
  --enable-bcmath \
  --with-iconv \
  --with-bz2 \
  --enable-calendar \
  --with-curl \
  --enable-exif  \
  --enable-ftp \
  --enable-gd \
  --with-jpeg \
  --with-zlib-dir \
  --with-freetype \
  --with-gettext \
  --enable-json \
  --enable-mbstring \
  --enable-pdo \
  --with-mysqli=mysqlnd \
  --with-pdo-mysql=mysqlnd \
  --with-readline \
  --enable-shmop \
  --enable-simplexml \
  --enable-sockets \
  --with-zip \
  --enable-mysqlnd-compression-support \
  --with-pear \
  --enable-pcntl \
  --enable-posix


[root@node6 php-8.0.23]# make
[root@node6 php-8.0.23]# make install


配置环境变量,lib,头文件
[root@node6 ~]# cd /usr/local/php7/
[root@node6 php7]# ls
bin  etc  include  lib  php  sbin  var
[root@node6 php7]# echo 'export PATH=/usr/local/php7/bin:/usr/local/php7/:sbin:$PATH' > /etc/profile.d/php7.sh
[root@node6 php7]# source /etc/profile.d/php7.sh
[root@node6 php7]# 
[root@node6 php7]# ln -s /usr/local/php7/include /usr/include/php
[root@node6 php7]# 
[root@node6 php7]# vim /etc/ld.so.conf.d/php.conf
[root@node6 php7]# cat /etc/ld.so.conf.d/php.conf
/usr/local/php7/lib
[root@node6 php7]# ldconfig 

[root@node6 ~]# php -v
PHP 7.4.30 (cli) (built: Sep  2 2022 19:31:45) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
[root@node6 ~]# 



配置php-fpm
[root@node6 ~]# cd php-8.0.23
[root@node6 php-8.0.23]# \cp php.ini-production /etc/php.ini
[root@node6 php-8.0.23]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
[root@node6 php-8.0.23]# chmod +x /etc/rc.d/init.d/php-fpm
[root@node6 php-8.0.23]# ll /etc/rc.d/init.d/php-fpm
-rwxr-xr-x. 1 root root 2402 Sep  5 19:56 /etc/rc.d/init.d/php-fpm
[root@node6 php-8.0.23]# 
[root@node6 php-8.0.23]# pwd
/root/php-8.0.23
[root@node6 php-8.0.23]# cd /usr/local/php7/etc/
[root@node6 etc]# ls
pear.conf  php-fpm.conf.default  php-fpm.d
[root@node6 etc]# cp php-fpm.conf.default php-fpm.conf
[root@node6 etc]# cd php-fpm.d/
[root@node6 php-fpm.d]# ls
www.conf.default
[root@node6 php-fpm.d]# cp www.conf.default www.conf
[root@node6 php-fpm.d]# 
[root@node6 php-fpm.d]# vim www.conf
listen = 127.0.0.1:9000


启动
[root@node6 ~]# cd /etc/init.d
[root@node6 init.d]# ls
README  functions  php-fpm
[root@node6 init.d]# service php-fpm start
Starting php-fpm  done
[root@node6 init.d]# service php-fpm stop
Gracefully shutting down php-fpm . done
[root@node6 init.d]# service php-fpm start
Starting php-fpm  done
[root@node6 init.d]# ss -antl
State  Recv-Q Send-Q Local Address:Port    Peer Address:Port Process 
LISTEN 0      128          0.0.0.0:22           0.0.0.0:*            
LISTEN 0      128        127.0.0.1:9000         0.0.0.0:*            
LISTEN 0      128          0.0.0.0:80           0.0.0.0:*            
LISTEN 0      128             [::]:22              [::]:*            
LISTEN 0      70                 *:33060              *:*            
LISTEN 0      128                *:3306               *:*            
[root@node6 init.d]# 
3.4 配置nginx
[root@node6 ~]# cd /usr/local/nginx/conf/
[root@node6 conf]# vim nginx.conf
[root@node6 conf]# vim nginx.conf
[root@node6 conf]# cat nginx.conf

user  nginx;
worker_processes  1;

error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

pid        logs/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;

    #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  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;

    #gzip  on;

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index.php index.html index.htm; //在index后面添加index.php,表示优先访问php页面
        }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
//将以下内容取消注释并修改    
        location ~ \.php$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
            include        fastcgi_params;
        }

        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }


    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}


    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}

}
[root@node6 conf]# nginx -s stop
[root@node6 conf]# nginx
3.5 配置PHP网络界面
[root@node6 ~]# cd /usr/local/nginx/html/
[root@node6 html]# vi index.php
[root@node6 html]# cat index.php
<?php
    phpinfo();
?>
[root@node6 html]# 

重启
[root@node6 ~]# nginx -s stop
[root@node6 ~]# nginx
  • 访问:http://192.168.232.134/

在这里插入图片描述

4. 部署

4.1 在128主机安装httpd,做静态资源
[root@node3 ~]# yum -y install httpd
[root@node3 ~]# systemctl enable --now httpd
Created symlink /etc/systemd/system/multi-user.target.wants/httpd.service → /usr/lib/systemd/system/httpd.service.
[root@node3 ~]# ss -antl
State  Recv-Q Send-Q  Local Address:Port   Peer Address:Port Process 
LISTEN 0      128           0.0.0.0:22          0.0.0.0:*            
LISTEN 0      128                 *:80                *:*            
LISTEN 0      128              [::]:22             [::]:*            

在这里插入图片描述

4.2 在129主机源码安装nginx并配置负载均衡器,进行调度
[root@node2 ~]# wget https://nginx.org/download/nginx-1.22.0.tar.gz
--2022-09-05 20:47:25--  https://nginx.org/download/nginx-1.22.0.tar.gz
Resolving nginx.org (nginx.org)... 3.125.197.172, 52.58.199.22, 2a05:d014:edb:5704::6, ...
Connecting to nginx.org (nginx.org)|3.125.197.172|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1073322 (1.0M) [application/octet-stream]
Saving to: 'nginx-1.22.0.tar.gz'

nginx-1.22.0.tar. 100%[==========>]   1.02M  29.1KB/s    in 20s     

2022-09-05 20:47:47 (51.5 KB/s) - 'nginx-1.22.0.tar.gz' saved [1073322/1073322]


[root@node2 ~]# useradd -r -M -s /sbin/nologin nginx
[root@node2 ~]# yum -y groups mark install 'Development Tools'
[root@node2 ~]# yum -y install pcre-devel openssl openssl-devel gd-devel gcc gcc-c++ make 


[root@node2 ~]# mkdir -p /var/log/nginx
[root@node2 ~]# chown -R nginx.nginx /var/log/nginx
[root@node2 ~]# ll -d /var/log/nginx
drwxr-xr-x. 2 nginx nginx 6 Sep  5 20:51 /var/log/nginx
[root@node2 ~]# tar xf nginx-1.22.0.tar.gz 
[root@node2 ~]# cd nginx-1.22.0
[root@node2 nginx-1.22.0]# ./configure \
     --prefix=/usr/local/nginx \
     --user=nginx \
     --group=nginx \
     --with-debug \
     --with-http_ssl_module \
     --with-http_realip_module \
     --with-http_image_filter_module \
     --with-http_gunzip_module \
     --with-http_gzip_static_module \
     --with-http_stub_status_module \
     --http-log-path=/var/log/nginx/access.log \
     --error-log-path=/var/log/nginx/error.log

[root@node2 nginx-1.22.0]# make
[root@node2 nginx-1.22.0]# make install


[root@node2 ~]# echo 'export PATH=/usr/local/nginx/sbin:$PATH' > /etc/profile.d/nginx.sh
[root@node2 ~]# source /etc/profile.d/nginx.sh


[root@node2 ~]# nginx 
[root@node2 ~]# ss -antl
State  Recv-Q Send-Q  Local Address:Port   Peer Address:Port Process 
LISTEN 0      128           0.0.0.0:22          0.0.0.0:*            
LISTEN 0      128           0.0.0.0:80          0.0.0.0:*            
LISTEN 0      128              [::]:22             [::]:*            
[root@node2 ~]# 

5. 配置负载均衡,129主机

[root@node6 sbin]# ss -antl
State  Recv-Q Send-Q Local Address:Port    Peer Address:Port Process 
LISTEN 0      128          0.0.0.0:80           0.0.0.0:*            
LISTEN 0      128          0.0.0.0:22           0.0.0.0:*            
LISTEN 0      128        127.0.0.1:9000         0.0.0.0:*            
LISTEN 0      128             [::]:22              [::]:*            
LISTEN 0      70                 *:33060              *:*            
LISTEN 0      128                *:3306               *:*            
[root@node6 sbin]# 


[root@node2 ~]# cd /usr/local/nginx/conf/
[root@node2 conf]# vim nginx.conf



#gzip  on;

    upstream backend  #配置负载均衡
        server 192.168.232.128;
        server 192.168.232.134;
    }   

    server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass http://backend;#配置反向代理
        }

  
[root@node2 conf]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@node2 conf]# nginx -s reload
[root@node2 conf]# nginx -s stop
[root@node2 conf]# nginx  
  • 访问:http://192.168.232.129/

在这里插入图片描述

  • 访问:http://192.168.232.129/

在这里插入图片描述

6. 实现动静分离

[root@node2 conf]# pwd
/usr/local/nginx/conf
[root@node2 conf]# vim nginx.conf
[root@node2 conf]# nginx -s reload
[root@node2 conf]# vim nginx.conf
[root@node2 conf]# nginx -s reload

#gzip  on;

    upstream static {
        server 192.168.232.128;#httpd主机的ip
    }

    upstream dynamic {
        server 192.168.232.134;#lnmp主机的ip
    }

server {
        listen       80;
        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass http://static;#访问静态资源会自动跳转到进行访问
        }

   # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        location ~ \.php$ {
            proxy_pass   http://dynamic;#访问动态资源会自动跳转到进行访问
        }
[root@node2 conf]# nginx -s reload
[root@node2 conf]# nginx -t
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
[root@node2 conf]# 
  • 访问静态资源:http://192.168.232.129/

在这里插入图片描述

  • 访问动态资源:http://192.168.232.129/index.php

在这里插入图片描述

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/mushuangpanny/article/details/126714061

智能推荐

Android如何使用XML自定义属性

在res/values文件下定义一个attrs.xml文件,代码如下:在布局中使用,示例代码如下:

Java OCR tesseract 图像智能字符识别技术 Java代码实现_tesocr jave-程序员宅基地

文章浏览阅读10w+次,点赞173次,收藏149次。接着上一篇OCR所说的,上一篇给大家介绍了tesseract 在命令行的简单用法,当然了要继承到我们的程序中,还是需要代码实现的,下面给大家分享下java实现的例子。拿代码扫描上面的图片,然后输出结果。主要思想就是利用Java调用系统任务。下面是核心代码:package com.zhy.test;import java.io.BufferedReader;import_tesocr jave

我用Python分析了1500家电商的销售数据,竟发现了进口车厘子的秘密_爬虫 淘宝车厘子-程序员宅基地

文章浏览阅读519次,点赞2次,收藏2次。图片来源:互联网众所周知,中国是智利车厘子最主要的出口对象,占据了其95%的市场份额。智利驻华大使馆商务参赞娜塔曾表示:“2020-2021产季车厘子实现了丰收,预计今年有50万吨左右的车厘子进入中国市场。”自2020年12月中旬开始,智利海运车厘子陆续到达中国,运输成本较此前空运方式大幅下滑。这意味着,国内消费者将能以更低的价格买到车厘子。然而,近日国内已有多地进口车厘子核酸检测结果为阳性,在这种情况下,你还敢大呼“车厘子自由”吗?01 数据获取本文利用Python采集了淘宝网1585.._爬虫 淘宝车厘子

列式存储-程序员宅基地

文章浏览阅读1.1k次。OLAP中数据存储的问题OLAP 需要队列进行选择,行式存储按行存数据,使用索引加快对数据的查找(索引包括聚集索引(表记录的排列顺序与索引的排列顺序一致)和非聚簇索引(非聚集索引指定了表中记录的逻辑顺序,但记录的物理顺序和索引的顺序不一致))。这种方式对按列的存储和检索不是很高效,查询某一列数据需要将所有行的数据扫描一次,而且对统计分析也不友好。列式存储原理若使用列式存储可以只用扫描出需要的列,行、列存储的对比。文件格式parquet 文件格式:如下图所示:parquet file = hea_列式存储

C语言字符串详解-程序员宅基地

文章浏览阅读4.3w次,点赞184次,收藏1.2k次。我们可以把字符串储存在char类型的数组中,如果char类型的数组末尾包含一个表示字符串末尾的空字符\0,则该数组中的内容就构成了一个字符串因为字符串需要用\0结尾,所以在定义字符串的时候,字符数组的长度要预留多一个字节用来存放\0,\0就是数字0例如。_c语言字符串

vue3常用自定义指令封装v-permission,按钮权限控制,添加防抖节流_vue3 v-permission-程序员宅基地

文章浏览阅读2k次,点赞8次,收藏15次。后台管理项目免不了要做权限控制,常见的分为路由级别和按钮级别,在此主要针对于按钮权限,比如说某个用户或者角色对数据有没有增删改查的权限,例如以下功能,巡查人员可以点击导入和新建,而一般用户只能选择下载模板。在 directives文件夹下分别创建permission、debounce、throttle三个ts文件,分别用于存放权限控制,防抖和节流的业务逻辑,结构清晰,方便维护以及更低的耦合度。在index.ts文件中分别导入每个自定义指令对象,再遍历注册每一个指令。_vue3 v-permission

随便推点

ACM的算法(觉得很好,有层次感)_前向星 acm算法与实现-程序员宅基地

文章浏览阅读644次。ACM的算法(觉得很好,有层次感)POJ上的一些水题(可用来练手和增加自信) (poj3299,poj2159,poj2739,poj1083,poj2262,poj1503,poj3006,poj2255,poj3094) 初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) _前向星 acm算法与实现

php笔记-程序员宅基地

文章浏览阅读57次。【1】windows下php运行环境安装【2】php连接MySQL【3】centos7下用yum的方式安装php7.2【4】编译式安装php【5】php日志文件【6】php.ini配置【7】php-fpm.conf重要参数详解【8】扩展mysql【1】windows下php运行环境安装参考连接#下载地址https://windows.php.net/download#php-7.3#解压安装包至任意目录#结合apache或nginx进行配置即可###名词解释...

前后端分离之Spring Security Api验证实践-程序员宅基地

文章浏览阅读1.3k次。前后端分离之Spring Security Api验证实践为什么需要RESTful重定向问题为什么需要RESTful使用RESTful之前,会发现各种奇葩的url命名,对url的功能经常需要结合源代码来确认,让人头痛,使用RESTful规范之后,很多问题得以解决。仅仅依靠URL和Method就能定为功能。重定向问题需要重新定义逻辑(JDK8推荐使用Lambda表达式)登录 ,默认下..._spring security api

图像处理之常见二值化方法汇总-程序员宅基地

文章浏览阅读10w+次,点赞25次,收藏117次。图像处理之常见二值化方法汇总图像二值化是图像分析与处理中最常见最重要的处理手段,二值处理方法也非常多。越精准的方法计算量也越大。本文主要介绍四种常见的二值处理方法,通常情况下可以满足大多数图像处理的需要。主要本文讨论的方法仅针对RGB色彩空间。 方法一:该方法非常简单,对RGB彩色图像灰度化以后,扫描图像的每个像素值,值小于127的将像素值设为0(黑色),值大于等于12_二值化

GUI程序开发_gui开发-程序员宅基地

文章浏览阅读1.9k次。JAVA程序设计与应用开发(第2版)——《GUI清华大学出版社》_gui开发

PYTHON实训总结及体会500字,PYTHON实训总结思考建议_python实验体会-程序员宅基地

文章浏览阅读491次。大家好,给大家分享一下PYTHON实训总结及体会1500字,很多人还不知道这一点。这将使你在做实验时的难度加大。然后两下子就将实验报告做完。但学到的知识与难度成正比。一定要将课本上的知识吃透。【篇一:实验心得体会】就像以前做物理实验一样。在老师讲解时就会听不懂。你要清楚电桥的各种接法。这将使你极大地浪费时间。在做测试技术的实验前。因为这是做实验的基础。_python实验体会

推荐文章

热门文章

相关标签