使用Nginx从零开始搭建基于LNMP架构的电影系统之一_Linux运维

简介:

 按照常规,首先介绍一下Nginx是什么?虽然51cto上铺天盖地的Nginx的技术文章,我们这里也简单介绍一下。

Nginx是一个类ApacheIISWeb服务器软件,由俄罗斯的Igor Sysoev开发、在短短数年内市场占有率迅速跃居第三位的轻量级、高性能的HTTP服务软件。Nginx专为性能优化而开发,其最知名的优点是它的稳定性和低系统资源消耗,以及对HTTP并发连接的高处理能力(单台物理服务器可支持30000~50000个并发请求),正因为如此,大量提供社交网络、新闻资讯、电子商务以及虚拟主机等服务的企业纷纷选择Nginx来提供WEB服务,如新浪博客、网易新闻、新华网RSS、六间房视频、迅雷安全中心、腾讯3G下载......等站点,都在使用Nginx服务。
Nginx
的官方站点:http://sysoev.ru/en/http://nginx.net
Nginx
中文Wikihttp://wiki.codemongers.com/NginxChs
--------------------------------------------------------------------------

上面是对Nginx的一个简单介绍,今天我要做的是首先使用NginxMysqlPHPCentOS5.4 X64上搭建LNMP平台,然后在LNMP平台上部署一套PHP视频点播系统(SKYUC天空网络电影系统),涉及的主要软件全部使用源代码安装。
这个过程中涉及的软件下载地址:

Nginxhttp://www.nginx.org
Mysql
http://www.mysql.com/downloads/
php
http://www.php.net/downloads.php
SKYUC
电影系统:http://www.skyuc.com

--------------------------------------------------------------------------

从这里开始,就正式进入安装篇:

首先编译安装Nginx
1.
安装支持软件。
Nginx
的配置及运行需要pcrezlib等软件包的支持,因此应预先安装这些软件的开发包(devel)以便提供相应的库和头文件,确保Nginx的安装顺利完成。

2.创建运行用户、组

3.编译安装Nginx

4.为了使Nginx服务器的运行更加方便,可以为主程序Nginx创建链接文件,以便管理员直接执行Nginx命令就可以调用Nginx的主程序

5.检查配置文件
Apache的主程序httpd类似,Nginx的主程序也提供了一个“-t”选项用来对配置文件进行检查,以便找出不当或错误的配置。配置文件nginx.conf默认位于安装目录下的conf/子目录中,若要检查位于其他位置的配置文件,可使用“-c”选项来指定路径。

6.启动Nginx
直接运行Nginx即可启动Nginx服务器,这种方式将使用默认的配置文件,若要改用其它配置文件,需添加“-c 配置文件路径”选项来指定路径。这里需要注意:若服务器中安装有httpdWEB服务软件,应采取措施(修改端口/停用或卸载)避免冲突。
我这里直接使用Nginx来启动Nginx服务:

7.检查Nginx程序的监听状态,或者在浏览器中访问此WEB服务(默认页面将显示“Welcom to nginx!”),可以确认Nginx服务是否正常运行。

这里我使用Linux的字符终端浏览器(lynx)来访问网站:


8.Nginx的运行控制(重新加载/退出程序)
通过killall命令发送HUP信号表示重载配置,QUIT信号表示退出进程:
还可以使用kill信号来杀死进程:
(下面第一条命令重新加载配置文件,第二条是退出Nginx程序,注意:关掉后,重新运行nginx开启程序)

9.使用Nginx服务脚本
为了使用Nginx服务的启动、停止、重载等操作更加方便,可以编写Nginx服务脚本,并使用chkconfigservice工具来进行管理,也更加符合RHEL系统的管理习惯。
下面是脚本内容:



#!/bin/bash

#chkconfig: - 99 20

#description: Nginx Service Control Script

#

PROG="/usr/local/nginx/sbin/nginx"

PIDF="/usr/local/nginx/logs/nginx.pid"

case "$1" in

  start)

    $PROG

    ;;

  stop)

    kill -s QUIT $(cat $PIDF)

    ;;

  restart)

    $0 stop

    $0 start

    ;;

  reload)

    kill -s HUP $(cat $PIDF)

    ;;

  *)

        echo "Usage: $0 {start|stop|restart|reload}"

        exit 1

esac

exit 0


这样依赖,就可以通过Nginx脚本来启动、停止、重启、重载Nginx服务器了

10.配置文件nginx.conf
Nginx服务器的主配置文件nginx.conf中,包括全局配置、I/O事件配置、HTTP配置这三大块内容,配置语句的格式为“关键字  ;”(末尾以分号表示结束),以“#”开始的部分表示注释。
1
)全局配置

上面的配置中,worker_processes表示工作进程的数量。若服务器有多块CPU或者使用多核处理器,可以参考CPU核心总数来指定工作进程数,如设为8;如果网站访问量需求并不大,一般设为1就够用了。其它三项配置均已注释,例如Nginx的运行用户实际是编译时指定的nginx,若编译时未指定则默认为nobody

2I/O事件配置
使用“events  }”界定标记,用指定Nginx进程的I/O响应模型,每个进程连接数等设置,对于2.6及以上版本的内核,建议使用epoll模型以提高性能,每个进程的连接数应根据实际需要来定,一般在10000一下(默认为1024


注:我们来看看工作进程和进程连接数的换算关系:
若工作进程数为8,每个进程处理4096个连接,则允许Nginx正常提供服务的连接数已超过3万个(4096*8=32768),当然具体还要看服务器硬件,网络带宽等物理条件的性能表现。

3HTTP配置

11.Nginx的访问状态统计
Nginx
内置了HTTP_STUB_STSTUS状态统计模块,用来反馈当前的WEB访问情况,配置编译参数时可添加--with-http_stub_status_module来启用此模块。要使用Nginx的状态模块功能,除了启用内建模块以外,还需要修改nginx.conf配置文件,指定访问位置并打开stub_status配置:
因截图不方便,这里用文字描述:在nginx.conf中的HTTP配置的标记“sever  }”内指定访问位置并打开stub_status,方法如下:

保存配置,用nginx -t 检查一下配置文件是否出错,并重新启动nginx服务:


在浏览器中访问Nginx服务器的/status网站位置,可以看到当前的状态统计信息:


Active connections
:表示当前的活动连接数。
server accepts handled requests
:表示已经处理的连接信息,三个数字依次表示已处理的连接数(1)、成功的TCP握手次数(1)、已处理的请求数(1

12.基于域名的虚拟WEB主机

使用Nginx搭建虚拟主机服务器时,每个虚拟WEB站点拥有独立的“server { }"配置段,各自监听的IP地址、端口号可以单独指定,当然网站名称也是不同的,这里我主要以两个虚拟主机来介绍:www.yye1.combbs.yye1.com,关于域名解析问题,我用hosts文件来完成,具体步骤这里就不在阐述了。

1)准备网站目录及测试文件:

2)调整nginx.conf配置文件:
配置两个“server  }”区域,分别对应两个WEB站点,指定各自的网站名称、监听地址、网站根目录、访问日志等信息,然后重载配置


3)检查nginx.conf配置文件是否有错误,并重新加载一下配置文件:


4
)访问虚拟WEB主机
在浏览器中分别访问两个站点:www.yye1.combbs.yye1.com,若能看到各自的测试首页内容,就表示虚拟WEB主机的配置成功。

 

因为篇幅的关系,这篇文章就写到这里,不过这个只是第一部分,主要介绍了一下Nginx的使用,从下篇文章开始介绍LNMP平台的组合搭建并在LNMP架构上部署电影网站程序,请继续关注,谢谢。
第二部分链接地址:
(第二部分更新后,我会在这里粘贴地址的,敬请午饭们等待










本文转自 jundong 51CTO博客,原文链接:http://blog.51cto.com/minitoo/813148,如需转载请自行联系原作者
目录
相关文章
|
2月前
|
机器学习/深度学习 文字识别 监控
安全监控系统:技术架构与应用解析
该系统采用模块化设计,集成了行为识别、视频监控、人脸识别、危险区域检测、异常事件检测、日志追溯及消息推送等功能,并可选配OCR识别模块。基于深度学习与开源技术栈(如TensorFlow、OpenCV),系统具备高精度、低延迟特点,支持实时分析儿童行为、监测危险区域、识别异常事件,并将结果推送给教师或家长。同时兼容主流硬件,支持本地化推理与分布式处理,确保可靠性与扩展性,为幼儿园安全管理提供全面解决方案。
137 3
|
3月前
|
资源调度 监控 调度
基于SCA的软件无线电系统的概念与架构
软件通信体系架构(SCA)是基于软件定义无线电(SDR)思想构建的开放式、标准化和模块化平台,旨在通过软件实现通信功能的灵活配置。SCA起源于美军为解决“信息烟囱”问题而推出的联合战术无线电系统(JTRS),其核心目标是提升多军种联合作战通信能力。 上海介方信息公司的OpenSCA操作环境严格遵循SCA4.1/SRTF标准,支持高集成、嵌入式等场景,适用于军用通信、雷达等领域。 SCA体系包括目标平台资源层(TRL)、环境抽象层(EAL)、SRTF操作环境(OE)及应用层(AL)。其中,SRTF操作环境包含操作系统、运行时环境(RTE)和核心框架(CF),提供波形管理、资源调度等功能。
【YashanDB知识库】如何排查YMP报错:”OCI版本为空或OCI的架构和本地系统的架构不符“
【YashanDB知识库】如何排查YMP报错:”OCI版本为空或OCI的架构和本地系统的架构不符“
【YashanDB知识库】如何排查YMP报错:”OCI版本为空或OCI的架构和本地系统的架构不符“
|
1月前
|
监控 Linux 应用服务中间件
Linux多节点多硬盘部署MinIO:分布式MinIO集群部署指南搭建高可用架构实践
通过以上步骤,已成功基于已有的 MinIO 服务,扩展为一个 MinIO 集群。该集群具有高可用性和容错性,适合生产环境使用。如果有任何问题,请检查日志或参考MinIO 官方文档。作者联系方式vx:2743642415。
340 56
|
18天前
|
数据采集 存储 算法
人才招聘系统开发全解析:从技术底层到商业逻辑的完整架构优雅草卓伊凡|小无|果果|阿才
人才招聘系统开发全解析:从技术底层到商业逻辑的完整架构优雅草卓伊凡|小无|果果|阿才
60 2
人才招聘系统开发全解析:从技术底层到商业逻辑的完整架构优雅草卓伊凡|小无|果果|阿才
|
2月前
|
人工智能 自然语言处理 API
MCP与A2A协议比较:人工智能系统互联与协作的技术基础架构
本文深入解析了人工智能领域的两项关键基础设施协议:模型上下文协议(MCP)与代理对代理协议(A2A)。MCP由Anthropic开发,专注于标准化AI模型与外部工具和数据源的连接,降低系统集成复杂度;A2A由Google发布,旨在实现不同AI代理间的跨平台协作。两者虽有相似之处,但在设计目标与应用场景上互为补充。文章通过具体示例分析了两种协议的技术差异及适用场景,并探讨了其在企业工作流自动化、医疗信息系统和软件工程中的应用。最后,文章强调了整合MCP与A2A构建协同AI系统架构的重要性,为未来AI技术生态系统的演进提供了方向。
618 62
|
1月前
|
人工智能 Cloud Native 容灾
深圳农商银行三代核心系统全面投产 以云原生架构筑牢数字化转型基石
深圳农商银行完成第三代核心系统全面上云,日均交易超3000万笔,峰值处理效率提升2倍以上。扎根深圳70余年,与阿里云共建“两地三中心”分布式云平台,实现高可用体系及全栈护航。此次云原生转型为行业提供可复制样本,未来将深化云计算与AI合作,推动普惠金融服务升级。
220 17
|
3月前
|
人工智能 运维 自然语言处理
“AI医生”入驻运维现场:聊聊系统健康检查的新姿势
“AI医生”入驻运维现场:聊聊系统健康检查的新姿势
240 78
|
1月前
|
机器学习/深度学习 人工智能 运维
运维不靠玄学!用AI预测系统负载,谁用谁说香!
运维不靠玄学!用AI预测系统负载,谁用谁说香!
113 18
|
1月前
|
运维 监控 数据可视化
斩获6.1 star,再见Crontab!这款开源定时任务管理系统让运维更高效
Gocron是一款基于Go语言的轻量级定时任务调度系统,替代传统Linux Crontab。它提供可视化Web界面管理,支持秒级调度、任务依赖配置与多节点执行。核心功能包括:1) 可视化管理;2) 精确调度规则;3) 全链路任务控制;4) 多类型任务支持;5) 完善监控通知。适用于自动化运维、系统监控、数据处理及业务自动化等场景。通过三步快速上手:一键部署、添加任务节点、创建定时任务。相比Crontab和Celery,Gocron更直观高效,适合个人与企业使用。项目地址:https://github.com/ouqiang/gocron。
162 8