Nginx与Apache动静分离部署
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,Nginx动静分离介绍Nginx的静态处理能力很强,但是动态处理能力不足,因此在企业中常用动静分离技术针对PHP的动静分离●静态页面交给Nginx处理●动态页面交给PHP-FPM模块或Apache处理
千家信息网最后更新 2025年12月02日Nginx与Apache动静分离部署
Nginx动静分离介绍
Nginx的静态处理能力很强,但是动态处理能力不足,因此在企业中常用动静分离技术
针对PHP的动静分离
●静态页面交给Nginx处理
●动态页面交给PHP-FPM模块或Apache处理
在Nginx的配置中,是通过location配置段配合正则匹配实现静态与动态页面的不同处理方式
Nginx反向代理原理
Nginx不仅能作为Web服务器,还具有反向代理、负载均衡和缓存的功能。Nginx通过proxy模块实现将客户端的请求代理至,上游服务器,此时nginx与.上游服务器的连接是通过http协议进行的。Nginx在实现反向代理功能时的最重要指令为proxy_ _pass, 它能够并能够根据URI、客户端参数或其它的处理逻辑将用户请求调度至.上游服务器。
Nginx动静分离实例演示
需求与架构:
根据企业需要,将配置Nginx实现动静分离,对php页面的请求转发给L AMP处理,而静态页面交给Nginx处理,以实现动静分离
| 服务项目 | IP地址 |
|---|---|
| LAMP架构 | 192.168.235.137 |
| Nginx | 192.168.235.158 |
一、架设并配置LAMP环境
yum install httpd httpd-devel -y##使用yum安装架构systemctl start httpd.service##启动服务[root@localhost ~]# firewall-cmd --permanent --zone=public --add-service=http ##防火墙公共区域增加http协议success[root@localhost ~]# firewall-cmd --permanent --zone=public --add-service=https ##防火墙公共区域增加https协议success[root@localhost ~]# firewall-cmd --reload ##重载防火墙success[root@localhost ~]# yum install mariadb mariadb-server mariadb-libs mariadb-devel -y##使用yum安装MYSQL数据库,mariadb数据库管理系统是MYSQL数据库的分支[root@localhost ~]# systemctl start mariadb##启动数据库[root@localhost ~]# mysql_secure_installation ##设置数据库Enter current password for root (enter for none): ##此处但回车键Set root password? [Y/n] y##此处输入y已确定设置密码New password: ##输入密码abc123Re-enter new password: ##再次确认密码输入Remove anonymous users? [Y/n] n##输入n以否定移除所有匿名用户Disallow root login remotely? [Y/n] n##此处输入n以否定使用root身份远程登录Remove test database and access to it? [Y/n] n##此处输入n以否定删除测试数据库并访问它Reload privilege tables now? [Y/n] y##此处输入n以确定重载数据库[root@localhost ~]# yum -y install php##使用yum安装php[root@localhost ~]# yum install php-mysql -y##建立php和mysql关联[root@localhost ~]# yum install -y php-gd php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl curl-devel php-bcmath##安装php插件[root@localhost ~]# cd /var/www/html##进入站点目录[root@localhost html]# vim index.php##编辑php网页[root@localhost html]# systemctl restart httpd.service ##重启服务访问192.168.235.137/index.php的Apache网页
[root@localhost ~]# cd /var/www/html[root@localhost html]# vim index.php##修改网页输出内容二、安装配置Nginx服务
第一步:在Linux上使用远程共享获取来自Windows共享的源码包
[root@localhost ~]# smbclient -L //192.168.235.1/ ##远程共享访问Enter SAMBA\root's password: Sharename Type Comment --------- ---- ------- LNMP Disk [root@localhost ~]# mkdir /abc [root@localhost ~]# mount.cifs //192.168.235.1/LNMP /abc ##挂载到/abc目录下第二步:编译安装Nginx
1,解压源码包到/opt目录
[root@localhost ~]# cd /abc ##切换到挂载点目录[root@localhost abc]# lsDiscuz_X3.4_SC_UTF8.zip nginx-1.12.2.tar.gzmysql-boost-5.7.20.tar.gz php-7.1.10.tar.gz[root@localhost abc]# tar zxvf nginx-1.12.2.tar.gz -C /opt ##解压Nginx源码包到/opt下[root@localhost abc]# cd /opt/ ##切换到解压的目录下[root@localhost opt]# lsnginx-1.12.2 rh2,安装编译需要的环境组件包
[root@localhost opt]# yum -y install \gcc \ //c语言gcc-c++ \ //c++语言pcre-devel \ //pcre语言工具zlib-devel //数据压缩函数库3,创建程序用户nginx并编译Nginx
[root@localhost opt]# useradd -M -s /sbin/nologin nginx ##创建程序用户,限定其[root@localhost opt]# cd nginx-1.12.2/ ##切换到nginx目录下[root@localhost nginx-1.12.2]# ./configure \ ##配置nginx> --prefix=/usr/local/nginx \ ##安装路径> --user=nginx \ ##用户名> --group=nginx \ ##用户组> --with-http_stub_status_module ##访问状态统计模块4,编译和安装
[root@localhost nginx-1.12.2]#make && make install5,优化Nginx服务启动脚本,并建立命令软链接
[root@localhost nginx]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ ##创建软连接让系统识别nginx启动脚本[root@localhost nginx]# nginx -t ##检查配置文件的语法问题nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is oknginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful[root@localhost nginx]# nginx ##开启ngnix[root@localhost nginx]# netstat -ntap | grep 80 ##查看端口,nginx已经开启tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 39620/nginx: master [root@localhost nginx]# systemctl stop firewalld.service ##关闭防火墙[root@localhost nginx]# setenforce 0 [root@localhost nginx]# nginx ##开启nginx 服务6,systemctl管理nginx脚本
[root@localhost ~]# vim /lib/systemd/system/nginx.service ##创建配置文件[Unit]Description=nginx ##描述After=network.target ##描述服务类型[Service]Type=forking ##后台运行形式PIDFile=/usr/local/nginx/logs/nginx.pid ##PID文件位置ExecStart=/usr/local/nginx/sbin/nginx ##启动服务ExecReload=/usr/bin/kill -s HUP $MAINPID ##根据PID重载配置ExecStop=/usr/bin/kill -s QUIT $MAINPID ##根据PID终止进程PrivateTmp=true[Install]WantedBy=multi-user.target[root@localhost ~]# chmod 754 /lib/systemd/system/nginx.service ##设置执行权限[root@localhost ~]# systemctl stop nginx.service ##关闭nginx [root@localhost ~]# systemctl start nginx.service ##开启7,修改Nginx.conf配置文件
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf location ~ \.php$ { proxy_pass http://192.168.235.137; ##解除此三行的注释,并将地址指向LAMP服务的IP地址 }[root@localhost ~]# systemctl stop nginx.service ##停止服务[root@localhost ~]# systemctl start nginx.service ##启动服务[root@localhost ~]# systemctl stop firewalld.service ##关闭防火墙[root@localhost ~]# setenforce 0##关闭增强型安全功能三、验证动静分离效果
第一步:访问192.168.235.158/index.html的Nginx静态网页
第二步:访问192.168.235.158/index.php的Nginx转发给LAMP的动态网页

----------------------------------------------谢谢阅读-------------------------------------------------
服务
配置
数据
处理
动静
数据库
输入
用户
目录
网页
防火墙
静态
页面
防火
动态
文件
服务器
代理
编译
功能
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
warframexbox服务器
中华人民网络安全法试题
上海鲁云互联网科技
网络安全不得频繁征求用户同意
mysql授予某数据库权限
创造与魔法服务器什么时候更新
hifi网络音响服务器
软件开发在建工程账务处理
杭州量级网络技术
贵阳职业技术学院网络安全
拼多多我的世界服务器多少钱
安防管理和存储转发服务器
信息信号消息数据库
rwb软件开发团队分析
一体化智慧医养软件开发
高速服务器有地方加气吗
测绘空间数据库实训总结
哈尔滨腾讯服务器图片
信用卡逾期报送金融数据库
win7 小型数据库系统
帆软js更新数据库
adsl能用cs服务器吗
三星手机安装网络安全证书
lol服务器人数
linux服务器账号管理
数据库期末小抄
小米智能门锁网络安全吗
安装数据库怎样删除挂起文件
天成软件开发
物流软件开发功能需求