Nginx与Apache——动静分离实操
发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,Nginx动静分离介绍Nginx的静态处理能力很强,但是动态处理能力不足,因此在企业中常用动静分离技术针对PHP的动静分离1、静态页面交给Nginx处理2、动态页面交给PHP-FPM模块或Apache
千家信息网最后更新 2025年02月04日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 install
5、优化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安全错误
数据库的锁怎样保障安全
第四次经济普查软件开发招标
有限元自主软件开发
计算机网络技术那上班
数据库的表空间不足
软件解析服务器数据异常什么情况
肇庆租房网络安全
网络安全服务研究综述
汕头激光打标靠谱软件开发公司
计算机网络技术自我介绍
江阴互联网智能科技职能
图书馆主页上的文献数据库有
网络安全领先技术
武汉网络技术服务
网络安全审查报表
自考计算机网络技术
服务器安装ubuntu报错
如何保留浏览过的网页数据库
求最小覆盖数据库
广州金融软件开发常见问题
香肠派对怎么快速升级服务器
全国两会网络安全要求
服务器网络是指
药品广告数据库舒筋健络油
济南鲁班网络技术有限公司
计算器网络技术工资
江西计算机网络技术报价
江苏大学数据库技术
组态王和数据库的关系
兰大网络安全专业
未来之役为什么不能换服务器