Nginx与Apache——动静分离实操
发表于:2025-12-03 作者:千家信息网编辑
千家信息网最后更新 2025年12月03日,Nginx动静分离介绍Nginx的静态处理能力很强,但是动态处理能力不足,因此在企业中常用动静分离技术针对PHP的动静分离1、静态页面交给Nginx处理2、动态页面交给PHP-FPM模块或Apache
千家信息网最后更新 2025年12月03日Nginx与Apache——动静分离实操
Nginx动静分离介绍
Nginx的静态处理能力很强,但是动态处理能力不足,因此在企业中常用动静分离技术
针对PHP的动静分离
1、静态页面交给Nginx处理
2、动态页面交给PHP-FPM模块或Apache处理
在Nginx的配置中,是通过location配置段配合正则匹配实现静态与动态页面的不同处理方式
Nginx反向代理原理
Nginx不仅能作为Web服务器,还具有反向代理、负载均衡和缓存的功能。Nginx通过proxy模块实现将客户端的请求代理至,上游服务器,此时nginx与.上游服务器的连接是通过http协议进行的。Nginx在实现反向代理功能时的最重要指令为proxy_ _pass, 它能够并能够根据URI、客户端参数或其它的处理逻辑将用户请求调度至.上游服务器。
实操
需求与架构:
根据企业需要,将配置Nginx实现动静分离,对php页面的请求转发给L AMP处理,而静态页面交给Nginx处理,以实现动静分离
一、架设并配置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服务
1、在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目录下2、解压源码包、安装编译需要的环境组件包
[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 rh[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; ##解除此三行的注释,并将地址指向Nginx服务的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安全错误
数据库的锁怎样保障安全
鸿儒网络技术安全吗
网络安全大会演讲视频
电子电路模拟软件开发
教育系统网络安全会新闻稿
达梦数据库阻塞
覆盖数据库
贵港电商系统软件开发
科密管理软件数据库配置
根服务器 信息安全
云服务器上软件开发
身边的计算机网络技术应用论文
模拟器上服务器怎么设置网关
网站服务器的安全维护
我的世界服务器出现多次被炸
哪儿有服务器安全防护
蜜獾獾网络技术有限公司
笔记本电脑直连服务器网口灯不亮
模拟数据库停机
什么时候有鸿蒙服务器
公安局网络安全大队工作累吗
nginx服务器代码的策略模式
软件开发的5个步骤
服务器的编写
百旺金赋打开数据库异常
datax数据库
播放歌曲提示服务器运行失败
电脑上的编码器服务器
数据库 锁类型
找不到数据库别名或数据库名称
企业ERP属于数据库吗