nginx实现动静分离的方法示例
发布日期:2022-01-26 11:25 | 文章来源:脚本之家
本文主要介绍了nginx实现动静分离的方法示例,具有一定的学习价值,具体如下
环境:
系统/主机名 | IP地址 | 服务 |
---|---|---|
Redhat8 :server1 | 192.168.244.131 | nginx |
Redhat8:server2 | 192.168.244.133 | lnmp |
Content7:node3 | 192.168.244.142 | httpd |
在三台主机上关闭防火墙
[root@server1 ~]# systemctl stop firewalld [root@server1 ~]# systemctl disable firewalld [root@server1 ~]# vim /etc/selinux/config SELINUX=disabled
在server1上部署nginx
[root@server1 opt]# cat nginx.sh #!/bin/bash if [ $UID -ne 0 ];then echo "Please use administrator accou
查看端口
[root@server1 ~]# ss -antl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 0.0.0.0:220.0.0.0:* LISTEN 0 128 0.0.0.0:800.0.0.0:* LISTEN 0 128 [::]:22 [::]:*
访问页面
在server上部署lnmp
部署nginx
[root@server2 lnmp]# cat install.sh #!/bin/bash if [ $UID -ne 0 ];then echo "Please use administrator accou
部署mysql
[root@server2 lnmp]# cat mysql.sh #!/bin/bash if [ $UID -ne 0 ];then echo "root?" exit fi dir_a=/usr/local dir_b=/opt/data app_a=mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz app_b=mysql-5.7.34-linux-glibc2.12-x86_64 id mysql &>/dev/null if [ $? -ne 0 ];then useradd -r -M -s /sbin/nologin mysql fi yum -y install ncurses-compat-libs ncurses-devel openssl-devel openssl cmake mariadb-devel if [ ! -d $dir_a/$app_b ];then tar xf bag/$app_a -C $dir_a fi if [ ! -d $dir_a/mysql ];then ln -sv $dir_a/$app_b $dir_a/mysql fi chown -R mysql:mysql $dir_a/mysql* echo "export PATH=$dir_a/mysql/bin:\$PATH" > /etc/profile.d/mysql.sh source /etc/profile.d/mysql.sh if [ ! -d /$dir_b ];then mkdir -p /$dir_b chown -R mysql.mysql /$dir_b fi content=$(ls $dir_b | wc -l) if [ $content -eq 0 ];then mysqld --initialize-insecure --user mysql --datadir $dir_b fi cat > /etc/my.cnf <<EOF [mysqld] basedir = $dir_a/mysql datadir = $dir_b socket = /tmp/mysql.sock port = 3306 pid-file = $dir_b/mysql.pid user = mysql skip-name-resolve EOF sed -ri "s#^(basedir=).*#\1$dir_a/mysql#g" $dir_a/mysql/support-files/mysql.server sed -ri "s#^(datadir=).*#\1$dir_b#g" $dir_a/mysql/support-files/mysql.server cat > /usr/lib/systemd/system/mysqld.service <<EOF [Unit] Description=mysql server daemon After=network.target [Service] Type=forking ExecStart=$dir_a/mysql/support-files/mysql.server start ExecStop=$dir_a/mysql/support-files/mysql.server stop ExecReload=/bin/kill -HUP $MAINPID [Install] WantedBy=multi-user.target EOF systemctl daemon-reload systemctl enable --now mysqld
部署php
https://www.php.net/distributions/php-8.0.10.tar.xz
解压
[root@server2 ~]# tar -xf php-8.0.10.tar.gz -C /usr/local/
安装依赖包
[root@server2 ~]# wget http://mirrors.aliyun.com/repo/epel-7.repo [root@server1 ~]# 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 libsqlite3x-devel libzip-devel [root@server2 ~]# yum -y install http://mirror.centos.org/centos/8-stream/PowerTools/x86_64/os/Packages/oniguruma-devel-6.8.2-2.el8.x86_64.rpm
编译安装
[root@server2 ~]# cd /usr/local/php-8.0.10/ [root@server2 php-8.0.10]# ./configure --prefix=/usr/local/php8 --with-config-file-path=/etc --enable-fpm --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-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 ...... ...... ...... config.status: creating ext/phar/phar.phar.1 config.status: creating main/php_config.h config.status: executing default commands +--------------------------------------------------------------------+ | License: | | This software is subject to the PHP License, available in this | | distribution in the file LICENSE. By continuing this installation | | process, you are bound by the terms of this license agreement. | | If you do not agree with the terms of this license, you must abort | | the installation process at this point.| +--------------------------------------------------------------------+ Thank you for using PHP. [root@server2 php-8.0.10]# make ....... ....... ....... invertedregexiterator.inc pharcommand.inc phar.inc Build complete. Don't forget to run 'make test'. [root@server2 php-8.0.10]# make install ...... ...... /root/php-8.0.10/build/shtool install -c ext/phar/phar.phar /usr/local/php8/bin/phar.phar ln -s -f phar.phar /usr/local/php8/bin/phar Installing PDO headers: /usr/local/php8/include/php/ext/pdo/
配置php-fpm
[root@server2 php-8.0.10]# cp /etc/php.ini /opt/ [root@server2 php-8.0.10]# cp php.ini-production /etc/php.ini cp: overwrite '/etc/php.ini'? y [root@server2 php-8.0.10]# cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm [root@server2 php-8.0.10]# chmod +x /etc/init.d/php-fpm [root@server2 php-8.0.10]# cd .. [root@server2 local]# cd php8/ [root@server2 php8]# cd etc/ [root@server2 etc]# cp php-fpm.conf.default php-fpm.conf [root@server2 etc]# cp php-fpm.d/www.conf.default php-fpm.d/www.conf [root@server2 etc]# cd php-fpm.d [root@server2 php-fpm.d]# ls www.conf www.conf.default
配置环境变量
[root@server2 ~]# echo 'export PATH=/usr/local/php8/bin:$PATH' > /etc/profile.d/php.sh [root@server2 ~]# cat /etc/profile.d/php.sh export PATH=/usr/local/php8/bin:$PATH [root@server2 ~]# source /etc/profile.d/php.sh [root@server2 ~]# which php /usr/local/php8/bin/php
编写service文件
[root@server2 ~]# cat /usr/lib/systemd/system/php-fpm.service [Unit] Description=php-fpm server daemon After=network.target [Service] Type=forking ExecStart=/etc/init.d/php-fpm start ExecStop=/etc/init.d/php-fpm stop ExecReload=/bin/kill -HUP $MAINPID [Install] [root@server2 ]# systemctl daemon-reload
启动php
[root@server2 ~]# systemctl start php-fpm [root@server2 ~]# ss -antl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 127.0.0.1:9000 0.0.0.0:* LISTEN 0 128 0.0.0.0:800.0.0.0:* LISTEN 0 128 0.0.0.0:220.0.0.0:* LISTEN 0 80 *:3306 *:* LISTEN 0 128 [::]:22 [::]:*
在nginx.conf里配置虚拟主机
[root@server2 ~]# cd /usr/local/nginx/html/ [root@server2 html]# ls 50x.html index.html [root@server2 html]# vim index.php [root@server2 html]# cat index.php <?php phpinfo(); ?> [root@server2 conf]# pwd /usr/local/nginx/conf [root@server2 conf]# vim nginx.conf ........ 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_age
访问
node3部署httpd
[root@node3 ~]# yum -y install httpd
启动
[root@node3 ~]# systemctl start httpd [root@node3 ~]# ss -antl State Recv-Q Send-Q Local Address:Port Peer Address:Port LISTEN 0 128 *:22 *:* LISTEN 0 100 127.0.0.1:25 *:* LISTEN 0 128 :::80 :::* LISTEN 0 128 :::22 :::* LISTEN 0 100 ::1:25 :::*
访问
实现分离部署
在server1上的nginx.conf上配置
[root@server1 ~]# cat /usr/local/nginx/conf/nginx.conf #user nobody; 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_age
访问 192.168.244.131
在访问 192.168.244.131/index.php
到此这篇关于nginx实现动静分离的方法示例的文章就介绍到这了,更多相关nginx 动静分离内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!
版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。
相关文章