nginx-php配置动静分离

实验目的:nginx-php配置动静分离

实验环境:
主机 192.168.88.100 NGINX服务器
主机 192.168.88.102 PHP和MYSQL服务器
注意:想要手工编译必须安装gcc gcc-c++ make 这三个插件
并且关闭防火墙
service firewalld stop
systemctl disable firewalld

http://nginx.org/en/download.html 这里是nginx最新版的下载地址

1.在88.100上手工编译安装nginx服务器

yum -y install \
pcre-devel \
zlib-devel

useradd -M -s /sbin/nologin nginx

将 准备好的nginx源码包上传到linux中并解压编译
tar xzvf nginx-1.13.7.tar.gz -C /usr/src/
cd /usr/src/nginx-1.13.7

./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

make && make install

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ //将管理nginx的命令做个软连接到系统中

nginx -t //配置文件语法检查
nginx //启动服务
killall -1 nginx //安全重启
killall -3 nginx //停止服务

-------制作管理角本-------- //让linux系统的systemctl服务能够识别start restart stop等命令
vi /etc/init.d/nginx
#!/bin/bash

chkconfig: 35 99 20

description: Nginx Service Control Script

PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
start)
$PROG
;;
stop)
kill -s QUIT $(cat $PIDF)
;;
restart)
$0 stop
$0 start
;;
reload)
kill -s HUP $(cat $PIDF)
;;
*)
echo "Usage: $0 {start|stop|restart|reload}"
exit 1
esac
exit 0

chmod +x /etc/init.d/nginx
chkconfig --add nginx

vi /usr/local/nginx/conf/nginx.conf

user nginx 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 localhost;
location / {
root html/webphp;
index index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
location ~ .php$ {
root /var/www/html/webphp;
fastcgi_pass 192.168.88.102:9000; //将页面中的以php结尾的动态页面交给88.102服务器的9000端口,也就是php-fpm模块来处理
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html/webphp$fastcgi_script_name;
include fastcgi_params;
}
}
}

service nginx restart

2.在88.102上手工编译mysql后编译PHP
安装编译所需要的插件
yum -y install \
ncurses \
ncurses-devel \
bison \
cmake

向系统添加mysql用户
useradd -s /sbin/nologin mysql

把上传到服务器上的mysql安装包解压并编译
tar xf mysql-boost-5.7.20.tar.gz
cd mysql-5.7.20/

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1

make && make install

chown -R mysql.mysql /usr/local/mysql/

在/etc中修改mysql主配置文件
vi /etc/my.cnf

[client]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysql]
port = 3306
default-character-set=utf8
socket = /usr/local/mysql/mysql.sock

[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

chown mysql:mysql /etc/my.cnf

设置mysql所需要的环境变量
echo ‘PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH‘ >> /etc/profile
echo ‘export PATH‘ >> /etc/profile
source /etc/profile

cd /usr/local/mysql/

bin/mysqld \
--initialize-insecure \
--user=mysql \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data

cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
systemctl daemon-reload
systemctl start mysqld
netstat -anpt | grep 3306

systemctl enable mysqld

mysqladmin -u root -p password "abc123" //给root账号设置密码

mysql -u root -p



3.同样在88.102上手工编译php
以下都是手工编译php所需要的插件
yum -y install \
libjpeg \
libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 \
libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel

将上传到服务器的php源代码包解压并编译安装
tar xjvf php-7.1.10.tar.bz2
cd php-7.1.10
./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/usr/local/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--enable-fpm \ //打开php的fpm模块,也是nginx和php的动静分离的核心
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip

make && make install

cp php.ini-development /usr/local/php/lib/php.ini
vi /usr/local/php/lib/php.ini

mysqli.default_socket = /usr/local/mysql/mysql.sock //修改1020行,指定mysql的sock文件
date.timezone = Asia/Shanghai //修改939行,指定时区

/usr/local/php/bin/php -m //验证安装的模块,发现没有显示安装fpm模块,但是fpm模块其实已经安装

-----------配置及优化FPM模块--------
cd /usr/local/php/etc/
cp php-fpm.conf.default php-fpm.conf //将模板文件变为配置文件
cd /usr/local/php/etc/php-fpm.d/
cp www.conf.default www.conf //将模板文件变为配置文件
vi www.conf // 修改36行
192.168.88.102:9000

cd /usr/local/php/etc/
vi php-fpm.conf

pid = run/php-fpm.pid //去除注释



/usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini
netstat -anpt | grep 9000

ln -s /usr/local/php/bin/* /usr/local/bin/

ps aux | grep -c "php-fpm" //结果

4 //结果为4

mkdir -p /var/www/html/webphp //这里创建的是在nginx的配置文件上定义的.php文件的根目录
vi /var/www/html/webphp/index.php //编辑测试页面

<?php
phpinfo();
?>
在浏览器里输入nginx服务器的IP即192.168.88.100/index.php 可以访问动态PHP页面

原文地址:http://blog.51cto.com/13714942/2106447

时间: 2024-10-19 05:26:57

nginx-php配置动静分离的相关文章

Nginx系列-8.配置Nginx+Apache实现动静分离

Nginx系列-8.配置Nginx+Apache实现动静分离 目录 - Nginx系列 Nginx系列-1.Linux下安装Nginx Nginx系列-2.配置LNMP(Linux.Nginx.MySQL.PHP)架构 Nginx系列-3.配置Nginx虚拟主机 Nginx系列-4.Nginx日志配置及日志切割 Nginx系列-5.配置Nginx的防盗链 Nginx系列-6.配置Nginx的HTTPS Nginx系列-7.配置Nginx使用uwsgi支持web.py框架 Nginx系列-8.配置

Nginx自学手册(六)Nginx+Tomcat实现动静分离

(一)简述 Nginx是一种轻量级,高性能,多进程的Web服务器,非常适合作为静态资源的服务器使用,而动态的访问操作可以使用稳定的Apache.Tomcat及IIS等来实现,这里就以Nginx作为代理服务器的同时,也使用其作为静态资源的服务器,而动态的访问服务器就以Tomcat为例说明. (二)环境简介 服务器名称 IP 备注 Nginx服务器 192.168.180.4 Tomcat服务器 192.168.180.23 client 192.168.181.231 客户端访问 (三)具体步骤:

Nginx(七层)动静分离的负载均衡群集

环境:(全部为公网IP,可以直接和客户端通信) 分发器:192.168.200.101 静态文件服务器:192.168.200.102 192.168.200.103 动态文件服务器:192.168.200.104 192.168.200.105 图片服务器:       192.168.200.106 192.168.200.107 nginx常用的三种模式: 轮询   默认模式,后端服务器挂了自动踢出 weight   指定权重 ip_hash   每个请求按访问IP的hash结果分配,每个

nginx+tomcat实现动静分离

一.构建java语言环境Jdk用于设置java程序运行环境,当需要运行java语言时,则必须先设置jdk环境.1. 获取二进制文件.# sh jdk-6u32-linux-x64.bin# mv jdk1.6.0_32/ /usr/local/jdk2.给jdk1.6.0_32/做软链接,方便jdk更新# ln -s /usr/local/jdk/ java3.设置java命令运行环境,并使其生效.# vim /etc/profileexport JAVA_HOME=/usr/local/jdk

Nginx和Tomcat动静分离

. Nginx和Tomcat动静分离,布布扣,bubuko.com

Nginx与Apache动静分离

. Nginx与Apache动静分离,布布扣,bubuko.com

nginx安装,简单配置动静分离,维护页面设置

nginx安装还是很简单的,虽然网上有很多的安装教程,我也看过一些,但是很多写的比较乱,比较难懂,所以就自己写一篇,希望可以帮助到大家 先说环境吧,本人用的Centos7 x86_64 同样也是现在服务器使用最多的linux发行版本,当然centos6,跟7还是有区别的,这样主要说7 第一步:先安装nginx所需要的依赖包直接yum安装就可以 yum -y install openssl zlib zlib-devel pcre pcre-devel 第二步:下载nginx安装包,我这里是指定了

nginx三 之动静分离

友情提示: 动静分离需要在负载均衡的环境基础上搭建,负载均衡可以参考http://www.cnblogs.com/dahuandan/p/6753646.html 介绍 就是将网站静态资源(HTML,,CSS,img等文件)与后台应用分开部署,提高网站响应速度,降低对后台应用服务器的请求. 配置 添加.代理静态资源集群 #进入nginx安装的conf目录 cd /usr/local/nginx/conf/ #打开nginx.conf文件添加以下内容: upstream dynamic_serve

nginx+Apache实现动静分离

Nginx动静分离实现: Nginx是一种轻量级,高性能,多进程的Web服务器,非常适合作为静态资源的服务器使用,而动态的访问操作可以使用稳定的Apache.Tomcat及IIS等来实现,这里就以Nginx作为代理服务器的同时,也使用其作为静态资源的服务器,而动态的访问服务器就以Apache为例说明. ·     原理 ·     实现 ·     验证 一.原理 原理: 说明: 1.代理服务器和静态服务器即为一台服务器上,这里只是为了明显区分动静分离所处服务器的不同: 2.静态服务器中,存放的