Nginx网站服务与LNMP构建

Nginx

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

  • 稳定高
  • 系统资源消耗低
  • 对HTTP并发连接的处理能力高
    • 单台物理服务器可支持30000~50000个并发请求

配置文件nginx.conf

  • 全局配置
  • I/O时间配置

Nginx工作原理

Nginx由内核和模块组成
Nginx本身做的工作实际很少,当它接到HTTP请求时,它仅仅是通过查找配置文件将此次请求映射到一个location block,而此location中所配置的各个指令则会启动不同的模块去完成工作,因此模块可以看做Nginx真正的劳动工作者

模块
Nginx 的模块从功能上分为如下三类:

  • handler(处理器)模块:负责处理请求,完成响应内容的生成
  • filter(过滤器)模块:filter模块是对响应内容进行处理
  • proxies(代理类)模块:此类模块是Nginx的HTTP Upstream之类的模块

这些模块主要与后端一些服务比如FastCGI(动态网页请求)等进行交互,实现服务代理和负载均衡等功能

Nginx的模块从结构上分为核心模块、基础模块和第三方模块

  • 核心模块:HTTP(网页)模块、EVENT(事件)模块和MAIL(邮件)模块;
  • 基础模块:HTTP Access(访问)模块、HTTP FastCGI(动态网页请求)模块、HTTP - Proxy(代理)模块和HTTP Rewrite(重写)模块
  • 第三方模块:HTTP Upstream Request Hash (动态池)模块、Notice(注意)模块和HTTP Access Key模块

nginx命令

nginx -t //配置文件语法检查
nginx //启动服务
killall -1 nginx //安全重启
killall -3 nginx //停止服务

安装nginx

添加安装包
在这里插入图片描述
关闭防火墙
在这里插入图片描述
安装依赖包

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

在这里插入图片描述
创建一个不可登陆用户

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

解压nginx压缩包
在这里插入图片描述
配置nginx

[root@server3 ~]# cd nginx-1.12.2/
[root@server3 nginx-1.12.2]# ./configure --prefix=/usr/local/nginx --user=
nginx --group=nginx --with-http_stub_status_module

在这里插入图片描述
编译安装
在这里插入图片描述
验证
在这里插入图片描述
在这里插入图片描述

管理nginx:制作管理脚本

vi /etc/init.d/nginx

#!/bin/bash
#chkconfig: 35 80 20
#description: Nginx HTTP Server
PROG="/usr/local/nginx/sbin/nginx"
PIDF="/usr/local/nginx/logs/nginx.pid"
case "$1" in
     start)
     $PROG
     ;;
     stop)
     kill -s QUIT $(cat $PIDF)
     ;;
     reload)
     kill -s HUP $(cat $PIDF)
     ;;
     restart)
     $0 stop
     $0 start
     ;;
     *)
     echo "Usage: $0 {start|stop|restart|reload}"
     exit 1
esac

在这里插入图片描述
查询是否开启
在这里插入图片描述
建立软链接
[root@server1 ~]# ln -s /usr/local/nginx/conf/nginx.conf /etc/

修改配置文件

vi /usr/local/nginx/conf/nginx.conf

在这里插入图片描述
在这里插入图片描述

修改允许进程连接数:
默认允许进程连接数为1024
在这里插入图片描述
开启统计模块

root@server3 ~]# vi /etc/nginx.conf

/loaction查找相关文段
在下图中添加
location ~ /status {  匹配项只要URL路径中出现/status就会定位到该模块
            stub_status on;   功能开启
            access_log off;   不记录日志
        }

在这里插入图片描述
检验
http://20.0.0.13
在这里插入图片描述
http://20.0.0.13/status
在这里插入图片描述
nginx status详解

  • active connections 活跃的连接数量
  • server accepts handled requests 总共处理了n个连接,成功创建n次握手,总共处理了n个请求
  • reading: 读取客户端的连接数
  • writing: 响应数据到客户端的数量
  • waiting: 开启keep-alive的情况下,这个值等于active (reading+writing) 意思就是Nginx已经处理完正在等候下一次请求指令的驻留连接

查询日志文件
在这里插入图片描述

配置nginx的验证功能

安装文件

[root@server1 logs]# yum -y install httpd-tools

设置验证用户
在这里插入图片描述

开启验证功能

vi /usr/local/nginx/conf/nginx.conf

在这里插入图片描述
验证
20.0.0.13
登录用户zzz
密码abc123
在这里插入图片描述
拒绝访问

vi /usr/local/nginx/conf/nginx.conf

在这里插入图片描述
验证
已拒绝访问
在这里插入图片描述

配置虚拟主机功能

先把之前的拒绝访问的命令删除再完成下列

基于域名
修改配置文件
vi /etc/nginx.conf
在这里插入图片描述
添加模块
在末尾http模块中添加
在这里插入图片描述
创建网页文件
在这里插入图片描述

映射配置
在这里插入图片描述
验证
在这里插入图片描述

基于ip
创建虚拟网卡地址
在这里插入图片描述
编辑配置文件

[root@server1 ~]# vi /etc/nginx.conf 
[root@server1 ~]# nginx -t
[root@server1 ~]# systemctl stop nginx
[root@server1 ~]# systemctl start nginx
[root@server1 ~]# netstat -anpt | grep nginx

在这里插入图片描述
在这里插入图片描述
验证
在这里插入图片描述
基于端口
编辑配置文件

[root@server1 ~]# vi /etc/nginx.conf 
[root@server1 ~]# nginx -t
[root@server1 ~]# systemctl stop nginx
[root@server1 ~]# systemctl start nginx
[root@server1 ~]# netstat -anpt | grep nginx

在这里插入图片描述

验证
在这里插入图片描述

安装mysql服务数据库

安装依赖包
yum -y install ncurses ncurses-devel bison cmake

  • ncurses ncurses-devel:字符终端下屏幕控制的基本库
  • bison :自动生成语法分析器程序
  • cmake :跨平台的安装编译工具

在这里插入图片描述
创建用户

[root@server1 ~]# useradd -s /sbin/nologin mysql 

解压缩文件

[root@server1 ~]# tar zxvf mysql-boost-5.7.20.tar.gz 

编译安装

[root@server1 ~]# cd mysql-5.7.20/

cmake \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ 
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
-DSYSCONFDIR=/etc \
-DSYSTEMD_PID_DIR=/usr/local/mysql \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_ARCHIVE_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DWITH_BOOST=boost \
-DWITH_SYSTEMD=1
注意:如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中
的CMakeCache. txt文件删除,然后再重新CMAKE, 否则错误依旧---

make && make install

对数据库目录进行权限配置,属主,属组

[root@server1 mysql-5.7.20]# cd
[root@server1 ~]# chown -R mysql.mysql /usr/local/mysql/

编辑配置文件,进行权限配置,属主,属组

[root@server1 ~]# vi /etc/my.cnf
[root@server1 ~]# chown mysql.mysql /etc/my.cnf

[client]
port = 3306
default-character-set = utf8
socket = /usr/local/mysql/mysql.sock
[mysql]
port = 3306
default-character-set = utf8
socket = /usr/local/mysql/mysql.sock
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server = utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

在这里插入图片描述
设置环境变量(重定向输入环境,赋值)

[root@server1 ~]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
[root@server1 ~]# source /etc/profile
[root@server1 ~]# echo $PATH

在这里插入图片描述
数据库初始化设置

[root@server1 ~]# mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
--initialize-insecure  

在这里插入图片描述
拷贝文件并服务启动

[root@server1 ~]# cd /usr/local/mysql/
[root@server1 mysql]# cp usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system
[root@server1 mysql]# cd
[root@server1 ~]# systemctl enable mysqld
[root@server1 ~]# systemctl start mysqld
[root@server1 ~]# systemctl status mysqld

在这里插入图片描述
设置数据库登录密码

[root@server1 ~]# mysqladmin -uroot -p password '123456'
[root@server1 ~]# mysql -uroot -p 

在这里插入图片描述

在这里插入图片描述

安装配置php

安装依赖包

[root@server1 ~]# yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel curl curl-devel openssl openssl-devel
  • libjpeg libjpeg-devel :jpeg图像压缩库
  • libpng libpng-devel :png图像压缩库
  • freetype freetype-devel :字体引擎
  • libxml2 libxml2-devel :解析Xml程序库
  • zlib zlib-devel :数据压缩
  • curl curl-devel :传输工具
  • openssl openssl-devel :安全通信
    在这里插入图片描述
    解压缩软件
    [root@server1 ~]# tar jvxf php-7.1.10.tar.bz2

配置文件

[root@server1 ~]# cd php-7.1.10/
[root@server1 php-7.1.10]# ./configure --prefix=/usr/local/php --with-mysql-sock=/usr/local/mysql/mysql.sock --with-mysqli --with-zlib --with-curl --with-gb --with-jpeg-dir --with-png-dir --with-freetype-dir --with-openssl --enable-fpm --enable-mbstring --enable-xml --enable-session --enable-ftp --enable-pdo --enable-tokenizer --enable-zip

./configure --prefix=/usr/local/php  :          安装路径
 --with-mysql-sock=/usr/local/mysql/mysql.sock :套接字路径
--with-mysqli :    调用mysql存储过程
 --with-zlib :     打开zlib函式库
--with-curl  :     调用curl规则
 --with-gb :       图像处理
--with-jpeg-dir :  支持jpeg格式
--with-png-dir :   支持png格式
--with-freetype-dir :打开字体引擎
--with-openssl :   打开ssl套接字功能
--enable-fpm :     加载fpm模块
--enable-mbstring  支持utf-8功能
--enable-xml :     支持xml文件格式
--enable-session : 开启会话
--enable-ftp :     开启ftp扩展
--enable-pdo :     访问接口
--enable-tokenizer:分词器 
--enable-zip:      对zip文件支持

编译安装

[root@server1 php-7.1.10]# make && make install

[root@server1 ~]# cd php-7.1.10/
[root@server1 php-7.1.10]# ls -lh
[root@server1 php-7.1.10]# cp php.ini-development /usr/local/php/lib/php.ini
[root@server1 php-7.1.10]# vi /usr/local/php/lib/php.ini   
[root@server1 php-7.1.10]# /usr/local/php/bin/php -m | wc -l

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

配置及优化FPM模块

[root@server1 php-7.1.10]# cd
[root@server1 ~]# cd /usr/local/php/etc
[root@server1 etc]# cp php-fpm.conf.default php-fpm.conf
[root@server1 etc]# cd /usr/local/php/etc/php-fpm.d/
[root@server1 php-fpm.d]# cp www.conf.default www.conf
[root@server1 php-fpm.d]# cd /usr/local/php/etc/
[root@server1 etc]# vi php-fpm.conf
[root@server1 etc]# cd

在这里插入图片描述

在这里插入图片描述
启动fpm模块

php启动时,启动php-fpm模块,模块启动时会生成9000号端口,即FastCGI接口

[root@server1 ~]# /usr/local/php/sbin/php-fpm -c /usr/local/php/lib/php.ini   手动启动
[root@server1 ~]# netstat -anpt | grep 9000

在这里插入图片描述
创建链接

[root@server1 ~]# ln -s /usr/local/php/bin/* /usr/bin

使nginx支持PHP功能

编辑配置文件

[root@server1 ~]# vi /etc/nginx.conf 
[root@server1 ~]# nginx -t
[root@server1 ~]# systemctl stop nginx
[root@server1 ~]# systemctl start nginx
修改
$document_root 

在这里插入图片描述

在这里插入图片描述
创建php网页

[root@server1 ~]# vi /usr/local/nginx/html/index.php

<?php
phpinfo();
?>

在这里插入图片描述
访问测试
在这里插入图片描述
测试数据库工作是否正常

配置数据库

[root@server1 ~]# mysql -uroot -p123456
mysql> create database bbs;  创建数据库
mysql> grant all privileges on bbs.* to 'bbsuser'@'localhost' identified by 'admin123';    本地授权
mysql> grant all privileges on bbs.* to 'bbsuser'@'%' identified by 'admin123';       远程授权
mysql> flush privileges;    刷新
mysql> exit

在这里插入图片描述
配置php网页

[root@server1 ~]# vi /usr/local/nginx/html/index.php

<?php 变量  连接信息   本机地址 数据库登录名    登录密码
$link=mysqli_connect ('20.0.0.13','bbsuser','admin123');
if($link) echo "<h1>Success!!</h1>";
else echo "Fail!!";
?>

在这里插入图片描述
在这里插入图片描述
部署Discuz 社区论坛 Web应用
安装论坛
解压缩文件

[root@server1 ~]# ls -lh
[root@server1 ~]# unzip Discuz_X3.4_SC_UTF8.zip 
[root@server1 ~]# cd dir_SC_UTF8/
[root@server1 dir_SC_UTF8]# cp -r upload/ /usr/local/nginx/html/bbs
[root@server1 dir_SC_UTF8]# cd /usr/local/nginx/html/bbs/
[root@server1 bbs]# ls -lh
[root@server1 bbs]# chown -R root.nginx ./config/
[root@server1 bbs]# chown -R root.nginx ./data/
[root@server1 bbs]# chown -R root.nginx ./uc_client/
[root@server1 bbs]# chown -R root.nginx ./uc_server/
[root@server1 bbs]# chmod -R 777 ./config/
[root@server1 bbs]# chmod -R 777 ./data/
[root@server1 bbs]# chmod -R 777 ./uc_client/
[root@server1 bbs]# chmod -R 777 ./uc_server/

访问
http://20.0.0.13/bbs/install/index.php
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
设置安装目录仅自己可见

在这里插入图片描述

[root@server1 bbs]# mv install/ install.lock
[root@server1 bbs]# chmod 600 install.lock/
[root@server1 bbs]# ls -lh

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值