理论·Nginx网站服务及LNMP架构搭建流程

理论·Nginx网站服务及LNMP架构搭建流程

关于Nginx

一款高性能、轻量级Web服务软件

​ 稳定性高

​ 系统资源消耗低

​ 对HTTP并发连接的处理能力高

​ 单台物理服务器可支持30000 ~ 50000个并发请求

Nginx编译安装

安装支持软件

[root@localhost ~]# yum -y install pcre-devel zlib-devell

创建运行用户、组

[root@localhost ~]# useradd -M -s /sbin/nologin nginx

编译安装Nginx

#解压缩源码包
[root@localhost ~]# tar zxf nginx-1.12.0.tar.gz

#进入源码包目录
[root@localhost ~]# cd nginx-1.12.0

#设置安装目录指定用户跟组还有一个统计模块
[root@localhost nginx-1.12.0]# ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module

#编译安装
[root@localhost nginx-1.12.0]# make && make install

#设置软链接便于后期管理
[root@localhost nginx-1.12.0]# In -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

#查看软链接
[root@localhost nginx-1.12.0]# ls -l /usr/local/sbin/nginx

Nginx运行控制

检查配置文件

[root@localhost ~]# nginx -t

启动、重载配置、停止Nginx

#启动服务
[root@localhost ~]# nginx

#查看端口号是否已经启用了
[root@localhost ~]# netstat -anpt | grep nginx

#安装elinks
[root@localhost ~]# yum -y install elinks

#字符界面直接验证
[root@localhost -]# elinks http://localhost
显示 "Welcome to  ginx!"页面,表明Nginx服务已经正常运行

Nginx添加为系统服务

#添加为系统服务可以使用systemctl控制
[root@localhost ~]# vim /etc/init.d/nginx
#/bin/bash
#chkconfig:-99 20
#description:Nginx Server Script
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in

	start)

			SPROG
			;;
	stop)
......

#添加执行权限
[root@localhost ~]# chmod +x /etc/init.d/nginx

#添加nginx服务
[root@localhost ~]# chkconfig --add nginx

#查看nginx状态
[root@localhost ~]# systemctl status nginx

配置文件nginx.conf

全局配置

#user nobody;
worker_processes 1;
#error_log logs/error.log;
#pid	logs/nginx.pid;

I/O事件配置

events {
	use epoll;
	worker connections 4096;
}

НTTP配置

http {												===>协议
	......
	access_log logs/access.log main;
	sendfile on
	......
	keepalive timeout 65;
	server{											===>服务
		listen  80;
		server_name www.bt.com;
		charset utf-8;
		location /{									===>location
			root html;
			index index.html index.php; }
		error_page 500 502 503 504 /50x.html;
			location=/50x.html {
				root html; }}
}

Nginx的访问状态统计

启用HTTP-STUB-STATUS状态统计模块

配置编译参数时添加–with-http-stub_status_module

nginx-V 查看已安装的Nginx是否包含

HTTP_STUB_STATUS模块

[root@localhost ~]# nginx-V
nginx version: nginx/1.12.0
built by gcc 4.8.5 20150623 (Red Hat 4.8.5-11) (GCC)
configure arguments: --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module

修改nginx.con配置文件

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
http {
	server {
		listen 80;
		server_name www.bt.com;
		charset utf-8;
		location /{
			root html;
			index index.html index.php;}
		location /status {
			stub_status on;
			access_log off;}}}

查看当前的状态统计信息

LNMP架构解读

LNMP平台就是Linux, Ngnix, MySQL, PHP的组合架构,需要Linux服务器、MySQL数据库、PHP解析环境

本案例在单台服务器上部署LNMP环境

MySQL安装配置

为了与Nginx, PHP环境保持一致,此处选择采用源代码编译的方式安装MySQL组件

MySQL部署的方法

编译安装MySQL

优化调整

初始化数据库

启动MySQL服务并设置root数据库账号的密码

PHP解析环境的安装

配置网页动静分离,解析PHP,有两种方法可以选择

​ 使用PHP的FPM模块

​ 将访问PHP页面的Web请求转交给Apache服务器去处理

较新版本的PHP已经自带FPM模块,对PHP解析实例进行管理、优化解析效率

​ FastCGI将Http Server和动态脚本语言分离开

​ Nginx专门处理静态请求,转发动态请求

​ PHP-FPM专门解析PHP动态请求

单服务器的LNMP架构通常使用FPM方式来解析PHP

PНР编译安装步骤

​ 编译安装PHP

​ 编译选项时添加"–enable-fpm"以启用此模块

​ 安装后的调整

​ 主要是配置文件的建立与相应命令工具的路径优化

​ 安装ZendGuardLoader (提高PHP解析效率) ,并进行加载配置

配置Nginx支持PHP环境

调用本机的php-fpm进程配置方法

​ 建立FPM配置文件php-fpm.conf,修改配置选项

​ PID文件、运行用户、服务进程数等

​ 启动php-fpm进程

配置Nginx支持PHP解析

​ 在Nginx的配置文件的server(}配置段中设置将PHP的网页请求转给FPM模块处理

PHP页面访问测试

LNMP下部署Discuz

官方网站: http://www.discuz.net

部署Discuz论坛系统

​ 下载并解压discuz代码包

​ 将upload文件夹上传到网站的网页目录,将修改权限为777

​ 创建所需要的数据库,如bbs,并授权给runbbs用户

​ 在浏览器中访问网站的bbs/install/目录,按提示操作便可完成安装

猜你喜欢

转载自blog.csdn.net/weixin_47153668/article/details/107883276