部署LNMP 、 Nginx+FastCGI 、 Nginx高级技术

##########################################################################################################

LNMP:

-L :LINUX操作系统
-N :Nginx网站服务软件
-M :Mysql Mariadb数据库
-P :PHP Python Perl网站开发语言

#################################################################################################

准备三台虚拟机:
Web1:
eth1网卡:192.168.2.100
Proxy:
eth0网卡:192.168.4.5
eth1网卡:192.168.2.5
Client:
eth0网卡:192.168.4.100

防火墙设置为trusted
selinux设置为permissive

##################################################################################################
LNMP部署:

#安装Nginx(上篇博客里面有安装方法)

#yum -y install mariadb mariadb-server mariadb-devel ?? ??? ?//安装Mariadb

#yum -y install php php-mysql?? ??? ??? ??? ??? ??? ?//php-mysql用来连接数据库

#rpm -ivh php-fpm-5.4.16-36.el7_1.x86_64.rpm?? ??? ??? ?//安装php-fpm

#nginx?? ??? ??? ??? ?//启动nginx服务
#systemctl start mariadb?? ??? ?//启动mariadb服务
#systemctl enable mariadb?? ?//随机自启
#systemctl start php-fpm?? ??? ?//启动php-fpm服务
#systemctl enable php-fpm?? ?//随机自启

#netstat -anptu | grep "80"?? ?//验证nginx是否启动
#netstat -anptu | grep "3306"?? ?//验证mariadb是否启动
#netstat -anptu | grep "9000"?? ?//验证php-fpm是否启动

####################################################################################################

静态页面:不需要服务器进行解释,直接传递给客户端
动态页面:需要服务器进行解释,再传递给客户端。

FastCGI简介:
FastCGI是一种常驻(Long-live)型的CGI
-将GCI解释器进程保持在内存中,进行维护和调度
-FastCGI技术目前支持的与语言 PHP C/C++ JAVA perl python 等

FastCGI工作原理:
1.web server 启动时载入FastCGI进程管理器
2.FastCGI进程管理器初始化,启动多个解释器进程
3.当客户端请求到达为web server FastCGI进程管理器选择并连接到一个解释器。
4,FastCGI子进程完成处理后返回结果,将标准输出和错误信息从同一连接返回web server

FastCGI缺点:
内存消耗大
-因为多进程,所以比CGI多线程消耗更多的服务器内存,PHP—CGI解释器每进程消耗7-25M内存,将这个数字乘50或100就是很大的内存数。

#####################################################################################################

php-fpm需要修改的常见配置如下:
#vim /var/
listen = 127.0.0.1:9000?? ??? ?//PHP端口号
pm.max_children = 32?? ??? ?//最大进程数量
pm.start_servers = 15?? ??? ?//最小进程数量
pm.min_spare_servers = 5?? ??? ?//最少需要几个空闲着的进程
pm.max_spare_servers = 32?? ?//最多允许几个进程处于空闲状态

#######################################################################################################

实现页面的动静分离:

#vim /usr/local/nginx/html/test.php?? ?//书写简单的动态页面
<?php
$i="hello world";
echo $i;
?>

#nginx?? ?//启动nginx服务

客户端访问:
#firefox http://192.168.4.5/test.php
结果:会出现下载页面,因为这个时候服务器并没有解释test.php,所以这属于静态页面。

#vim /usr/local/nginx/conf/nginx.conf

location / {
??????????? root?? html;
??????????? index? index.php? index.html?? index.htm;
??????? }
?location? ~? \.php$? {?? ??? ??? ??? ??? ??? ?//去掉配置文件中的注释,实现访问.php结尾的动态页面。
??????????? root?????????? html;
??????????? fastcgi_pass?? 127.0.0.1:9000;
??????????? fastcgi_index? index.php;
??????????? #fastcgi_param?? SCRIPT_FILENAME? $document_root$fastcgi_script_name; //将这一句话注释
??????????? include??????? fastcgi.conf;?? ?//这里将源配置文件改为fastcgi.conf
??????? }

客户端访问:
#firefox http://192.168.4.5/test.php
结果:hello world 这个时候服务器已经用php解释了test.php,所以属于动态页面。

#####################################################################################################

测试连接maridb数据库:

#cp /root/lnmp_soft/php_scripts/mysql.php /usr/local/nginx/html/?? ?//安装php-fpm会有这个mysql.php的测试页面,这是我的文件存储路径,只需要将mysql.php复制到/usr/local/nginx/html/下来完成测试。

注意:我们要将selinux设置为permissive,这个和selinx的标签值有关。

客户端访问:
#firefox http://192.168.4.5/mysql.php?? ?//关于Host和User的页面

####################################################################################################

地址重写:

站内转换:

#vim /usr/local/nginx/conf/nginx.conf

location / {
??????????? root?? html;
??????????? index? index.php? index.html?? index.htm;
?? ??? ?rewrite /a\.html /b.html;?? ??? ?//访问a.html转换为b.html,因为nginx支持正则表达式,再正则中.表示任意单个字符,所以使用\将.屏蔽。
??????? }
?
echo "AA" > /usr/local/nginx/html/a.html
echo "BB" > /usr/local/nginx/html/b.html

客户端访问:
#firefox http://192.168.4.5/a.html
结果:BB

如果需要访问a转到b,并且在我的浏览器导航栏中也显示b.html?? rewrite /a\.html /b.html redirect;加上redirect。

######################################################################################################
站外转换:
#vim /usr/local/nginx/conf/nginx.conf
http {
.. ..
?? ?server {
? ?? ?????? listen?????? 80;
?? ??? ?????? server_name? localhost;
?? ?????? rewrite ^/(.*) http://www.tmooc.cn/$1; //访问到 / 时,跳转到www.tmooc.cn
?? ??? ??? ??? ??? ??? ??? ??? ? // (.*)在正则中表示后面的所有内容,并且保留起来
?? ??? ??? ??? ??? ??? ??? ??? ?//按照正则当中的理解应该为\1,但是nginx为$1.
??? ?location / {?? ??? ??? ??? ?
?? ?????? root?? html;
??? ??? ?index? index.html index.htm;
?? ??? ?#rewrite /a\.html /b.html;
??? ??? ?}
? }
}

客户端访问:
#firefox http://192.168.4.5/xxxx
结果:http://www.tmooc.cn/xxxxx

########################################################################################

不同设备访问,显示内容相同,格式不同:

#vim /usr/local/nginx/conf/nginx.conf
?? ?
?? ?http {
?? ?? ??? ?server {
?? ?? ??? ??? ?listen 80;
?? ?? ??? ??? ?server_name localhost;
?? ?? ??? ??? ?if ($http_user_agent ~* firefox) {??????? ?
?? ?? ??? ??? ?rewrite ^/(.*) /firefox/$1;
?? ?? ??? ??? ?}
?? ?? ??? ??? ?//$http_user_agent 日至消息中的一段,其中包含浏览器信息,设备信息等,匹配到firefox后跳转到目录下网页中 ~模糊匹配,*代表不区分大小写。

????????????????//日志位置/usrl/local/nginx/logs/access_log,访问日志。

?? ?? ??? ???? #rewrite ^/(.*)? http://www.tmooc.cn/$1; ?
?? ?? ??? ??? ?location / {
?? ?? ??? ??? ??? ?root html;
?? ?? ??? ??? ??? ?index index.html;
?? ?? ??? ??? ??? ?#rewrite /a\.html /b\.html;? ?
?? ?? ??? ??? ?}
?? ?? ??? ?}
?? ??? }
?? ??? ?mkdir /usr/local/nginx/html/firefox?? ??? ??? ??? ?//创建目录
?? ??? ?echo "firefox" > /usr/local/nginx/html/firefox/test.html?? ?//书写测试页面
?? ??? ?echo "curl" > /usr/local/nginx/html/test.html?? ??? ??? ?//书写测试页面
?? ??? ?
客户端测试:
#firefox 192.168.4.5/test.html? //使用火狐浏览器
结果:firefox
#curl 192.168.4.5/test.html?? //使用curl 浏览器
结果:curl
?? ??? ?
注意:在实际的应用中? 两个访问的内容是相同的,格式不同。这里只是为了测试

时间: 2024-10-29 04:51:28

部署LNMP 、 Nginx+FastCGI 、 Nginx高级技术的相关文章

安装部署LNMP/大并发nginx优化/php性能加速 实战

安装部署LNMP及Nginx优化.PHP加速进行压力测试 部署LNMP环境: 主机 IP 主机名 Centos7.2 192.168.5.128 www.benet.com 部署步骤如下: 使用yum仓库安装Nginx依赖包 yum -y install  gcc gcc-c++ make libtool zlib zlib-devel pcre pcre-devel openssl openssl-devel 创建Nginx用户 组解压Nginx软件包 编译安装Nginx ./configur

LNMP部署、Nginx+FastCGI、Nginx高级技术

1 案例1:部署LNMP环境1.1 问题安装部署Nginx.MariaDB.PHP环境?安装部署Nginx.MariaDB.PHP.PHP-FPM:?启动Nginx.MariaDB.FPM服务:?并测试LNMP是否工作正常.1.2 方案在RHEL7系统中,源码安装Nginx,使用RPM包安装MariaDB.PHP.PHP-FPM软件.操作过程中需要安装的软件列表如下:?nginx [源码](web服务器,接收用户请求)?mariadb(客户端软件mysql).mariadb-server(服务)

部署LNMP Nginx+FastCGI 、 Nginx高级技术

案例1:部署LNMP环境案例2:构建LNMP平台案例3:地址重写1 案例1:部署LNMP环境1.1 问题 安装部署Nginx.MariaDB.PHP环境安装部署Nginx.MariaDB.PHP.PHP-FPM:启动Nginx.MariaDB.FPM服务:并测试LNMP是否工作正常.1.2 方案 在RHEL7系统中,源码安装Nginx,使用RPM包安装MariaDB.PHP.PHP-FPM软件.操作过程中需要安装的软件列表如下:nginxmariadb.mariadb-server.mariad

【入门篇】Nginx + FastCGI 程序(C/C++) 搭建高性能web service的Demo及部署发布

http://blog.csdn.net/allenlinrui/article/details/19419721 1.介绍 Nginx - 高性能web server,这个不用多说了,大家都知道. FastCGI程序 - 常驻型CGI程序,它是语言无关的.可伸缩架构的CGI开放扩展,其主要行为是将CGI解释器进程保持在内存中并因此获得较高的性能. Nginx要调用FastCGI程序,需要用到FastCGI进程管理程序(因为nginx不能直接执行外部的cgi程序,我们可使用lighttpd中的s

linux后台server开发环境的部署配置和验证(nginx+apache+php-fpm+FASTCGI(C/C++))

linux后台server开发环境部署配置 引言 背景 随着互联网业务的不断增多.开发环境变得越来越复杂,为了便于统一server端的开发部署环境,特制定本配置文档. 使用软件 CentOS 6.3(Linux version 2.6.32-279.el6.x86_64) gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4) 本次配置 Nginx 1.5.8 Apache 2.4.7 php 5.3.26 目的 构造WEB前端技术架构.web前端的部署结构技术全然

LNMP基于fastcgi实现nginx,php,mysql的分离

平时安装LNMP是把它们安装到同一台机器上,我想这个对大家来说丝毫没有挑战,下面我们实现把他们剥离到不同的机器上,让各个服务器直接分担原来的压力,也可以增加节点实现负载均衡,如:多增加一台php,让两台机器轮询的编译php,也可以在增加一台nginx,实现dns的轮询负载均衡. 规划: nginx:172.16.1.1 php(FASTCGI):172.16.1.2 mysql:172.16.1.3 环境: redhat5.8 32位,yum可以正常使用,开发包组"Development Too

linux后台服务器开发环境部署配置和验证(nginx+apache+php-fpm+FASTCGI(C/C++))

linux后台服务器开发环境部署配置 引言 背景 随着公司互联网业务的不断增多,开发环境变得越来越复杂,为了便于统一服务器端的开发部署环境,特制定本配置文档. 使用软件 CentOS 6.3(Linux version 2.6.32-279.el6.x86_64) gcc (GCC) 4.4.6 20120305 (Red Hat 4.4.6-4) 本次配置 Nginx 1.5.8 Apache 2.4.7 php 5.3.26 目的 构造WEB前端技术架构,web前端的部署结构技术完全完成.

Python应用攻略 ---- Mac环境下Flask+Nginx+FastCGI实现Python应用部署

对于一个iOS开发者来说,会写后台应用并非必要的技能,然而掌握一门后台语言却无疑可以锦上添花,不仅可以对前后台架构有更加全面的了解,同时在实际开发工作中也可以自己写一些后台应用. flask框架本身集成了一个简单的服务器,可以在本机调用,然而在这种情况下要调用Python应用接口就只能使用模拟器调试,若想要使用真机调试,我们还是需要正儿八经地部署服务器. 在这里,我们介绍一种Nginx搭配FastCGI实现Mac环境下的本地服务器部署. Nginx配置 a. 安装HomeBrew ruby -e

Nginx+FastCGI支持HTTPS部署过程详述

依赖的软件 nginx-1.13.5.tar.gz spawn-fcgi-1.6.4.tar.gz fcgi-2.4.0.tar.gz 编译安装 [[email protected] ~]# tar  xzvf nginx-1.13.5.tar.gz [[email protected] ~]# cd  nginx-1.13.5 [[email protected] nginx-1.13.5]# ./configure --prefix=/usr/local/nginx ./configure: