Nginx与Apache——动静分离实操
发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,Nginx动静分离介绍Nginx的静态处理能力很强,但是动态处理能力不足,因此在企业中常用动静分离技术针对PHP的动静分离1、静态页面交给Nginx处理2、动态页面交给PHP-FPM模块或Apache
千家信息网最后更新 2024年11月23日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安全错误
数据库的锁怎样保障安全
linux数据库乱码
青浦区企业网络技术服务价目
浙江一站式软件开发项目管理
华为服务器通电自启动
数据库技术在日常应用
黑龙江有哪些软件开发
北邮网络安全
服务器检测不到raid信息
单板服务器
导入本地数据库的表imp
软件开发技术员岗位职责
常熟市微赢网络技术有限公司
脱兔怎么连接服务器视频
服务器安全狗云
优融互联网科技有限公司
软件开发需求确认单样式
e 数据库错误的是
php数据库列表怎么做
企业网络安全和信息化
主机里的数据库丢失
数据库空值查询命令
创造与魔法正义之剑是哪个服务器
卡在登陆媒体服务器
现在联想服务器为何不自带驱动
数据库复制状态
软件开发日语面试视频
联想服务器硬盘黄色警告
sql查询数据库有多少数据
高效的数据库管理器mysql
山西会计软件开发热线