Apache与Nginx实现Web页面动静分离(产生的原因,应用场景)
文章目錄
- 動(dòng)靜分離產(chǎn)生的原因
- 服務(wù)作用場(chǎng)景
- 實(shí)驗(yàn)步驟
- 配置apache服務(wù)
- 配置Nginx服務(wù)器
動(dòng)靜分離產(chǎn)生的原因
Nginx的靜態(tài)處理能力很強(qiáng),但是動(dòng)態(tài)處理能力不足,因此,在企業(yè)中常用動(dòng)靜分離技術(shù)。動(dòng)靜分離技術(shù)其實(shí)是采用代理的方式,在server{}段中加入帶正則匹配的location來(lái)指定匹配項(xiàng)
針對(duì)PHP的動(dòng)靜分離:靜態(tài)頁(yè)面交給Nginx處理,動(dòng)態(tài)頁(yè)面交給PHP-FPM模塊或Apache處理。
在Nginx的配置中,是通過(guò)location配置段配合正則匹配實(shí)現(xiàn)靜態(tài)與動(dòng)態(tài)頁(yè)面的不同處理方式
服務(wù)作用場(chǎng)景
本案例根據(jù)企業(yè)需要,將配置Nginx實(shí)現(xiàn)動(dòng)靜分離,對(duì) php頁(yè)面的請(qǐng)求轉(zhuǎn)發(fā)給LAMP處理,而靜態(tài)頁(yè)面交給Nginx處理,以實(shí)現(xiàn)動(dòng)靜分離。
實(shí)驗(yàn)步驟
配置apache服務(wù)
[root@localhost ~]# yum -y install httpd-devel[root@localhost ~]# firewall-cmd --permanent --zone=public --add-service=http success [root@localhost ~]# firewall-cmd --reload success [root@localhost ~]# iptables -F [root@localhost ~]# setenforce 0 [root@localhost ~]# systemctl start httpd安裝數(shù)據(jù)庫(kù)
yum -y install mariadb mariadb-server mariadb-libs mariadb-devel開(kāi)啟mariadb服務(wù)
[root@localhost ~]# systemctl start mariadb.service開(kāi)啟mariadb服務(wù)并查看服務(wù)端口是否開(kāi)啟
[root@localhost ~]# netstat -ntap | grep 3306 tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 9019/mysqld配置數(shù)據(jù)庫(kù)
[root@localhost ~]# mysql_secure_installation In order to log into MariaDB to secure it, we'll need the current password for the root user. If you've just installed MariaDB, and you haven't set the root password yet, the password will be blank, so you should just press enter here.Enter current password for root (enter for none): 回車 是否給root管理員設(shè)置密碼Set root password? [Y/n] y 是 New password: Re-enter new password: Password updated successfully! Reloading privilege tables..... Success! Remove anonymous users? [Y/n] n 是否刪除匿名用戶... skipping. Disallow root login remotely? [Y/n] n ## 是否拒絕root用戶遠(yuǎn)程登錄... skipping. Remove test database and access to it? [Y/n] n 拒絕遠(yuǎn)程登錄 Remove test database and access to it? [Y/n] n 是否刪除測(cè)試數(shù)據(jù)庫(kù)... skipping. Reload privilege tables now? [Y/n] y 是否加載權(quán)限列表... Success!安裝PHP服務(wù)及php與mysql連接依賴包
[root@localhost ~]# yum -y install php [root@localhost ~]# yum -y install php-mysql安裝PHP插件
[root@localhost ~]# yum -y install php-gh php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-snmp php-soap curl-devel php-bcnath創(chuàng)建php首頁(yè)
[root@localhost html]# vim /var/www/html/index.php <?php phpinfo(); ?> ~ [root@localhost html]# systemctl restart httpd配置Nginx服務(wù)器
將nginx安裝包上傳大服務(wù)器/opt目錄下,解壓縮
[root@nginx opt]# tar zxvf nginx-1.12.2.tar.gz創(chuàng)建nginx程序用戶
[root@promote nginx-1.12.2]# useradd -M -s /sbin/nologin nginx安裝編譯及依賴環(huán)境
[root@promote nginx-1.12.2]# yum -y install gcc gcc-c++ pcre pcre-devel zlib-devel進(jìn)入目錄進(jìn)行安裝前配置
[root@localhost nginx-1.12.2]# ./configure \ --prefix=/usr/local/nginx \ --user=nginx \ --group=nginx \ --with-http_stub_status_module編譯&安裝
[root@localhost nginx-1.12.2]# make && make install創(chuàng)建命令軟連接
[root@promote nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/開(kāi)啟nginx服務(wù)
[root@promote nginx-1.12.2]# service nginx start [root@promote nginx-1.12.2]#systemctl stop firewalld [root@promote nginx-1.12.2]#setenforce 0查看服務(wù)是否開(kāi)啟
[root@promote nginx-1.12.2]# netstat -ntap | grep 80 tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 11162/nginx: master tcp 0 0 192.168.136.88:39252 36.156.207.242:80 TIME_WAIT - tcp 0 0 192.168.136.88:50406 210.28.130.3:80 TIME_WAIT - tcp 0 0 192.168.136.88:50404 210.28.130.3:80 TIME_WAIT安裝elinks命令行瀏覽器
[root@promote nginx-1.12.2]# elinks http://192.168.136.88
按q退出
開(kāi)始配置動(dòng)靜分離,編輯nginx配置文件
[root@promote nginx-1.12.2]# vim /usr/local/nginx/conf/nginx.conf找到下面的并開(kāi)啟動(dòng)靜分離location ~ \.php$ { //開(kāi)啟proxy_pass http://192.168.136.40;}ps: proxy_pass轉(zhuǎn)發(fā)處理
重啟nginx服務(wù)
nginx -s quit ## 關(guān)閉nginx服務(wù) nginx ## 開(kāi)啟nginx服務(wù)本案例根據(jù)企業(yè)需要,將配置Nginx實(shí)現(xiàn)動(dòng)靜分離,對(duì) php頁(yè)面的請(qǐng)求轉(zhuǎn)發(fā)給LAMP處理,而靜態(tài)頁(yè)面交給Nginx處理,以實(shí)現(xiàn)動(dòng)靜分離。
總結(jié)
以上是生活随笔為你收集整理的Apache与Nginx实现Web页面动静分离(产生的原因,应用场景)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 揭秘hynix内存条b1b2时序:性能影
- 下一篇: nginx 获取body参数_分布式实战