nginx

关注公众号 jb51net

关闭
首页 > 网站技巧 > 服务器 > nginx > Nginx网站服务

Nginx网站服务详解

作者:行止6

这篇文章主要介绍了Nginx网站服务,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

一、基于授权的访问控制

1:基于授权的访问控制简介

Nginx 与 Apahce 一样,可以实现基于用户授权的访问控制,当客户端想要访问相应网站或者目录时,要求用户输入用户名和密码才能正常访问,配置步骤与 Apache 基本一致。

概括为以下几个步骤。

2:基于授权的访问控制步骤

(1)使用 htpasswd 生成用户认证文件

使用 htpasswd 生成用户认证文件,如果没有该命令,可使用 yum 安装 httpd-tools软件包,用法与 Apache 认证时方式相同,如:htpasswd -c /usr/local/nginx/passwd.db test。在/usr/local/nginx/目录下生成了 passwd.db 文件,用户名是 test,密码输入 2 次。在passwd.db 中生成用户和密码的密文。

(2)修改密码文件权限为 400,将所有者改为 nginx,设置 Nginx 的运行用户能够读取

(3)修改主配置文件 nginx.conf,添加相应认证配置项

(4)检测语法、重启服务

(5)用浏览器访问网址,检验控制效果

二、基于客户端的访问控制

1:基于客户端的访问控制简介

基于客户端的访问控制是通过客户端 IP 地址,决定是否允许对页面访问。

Nginx 基于客户端的访问控制要比 Apache 简单,规则如下:

2:基于客户端的访问控制步骤

(1)修改主配置文件 nginx.conf,添加相应配置项

三、Nginx 虚拟主机

利用虚拟主机,不用为每个要运行的网站提供一台单独的 Nginx 服务器或单独运行一组 Nginx 进程,虚拟主机提供了在同一台服务器,同一组 Nginx 进程上运行多个网站的功能。跟 Apache 一样,Nginx 也可以配置多种类型的虚拟主机,分别是基于 IP 的虚拟主机、基于域名的虚拟主机、基于端口的虚拟主机

使用 Nginx 搭建虚拟主机服务器时,每个虚拟 Web 站点拥有独立的“server{}”配置段,各自监听的 IP 地址、端口号可以单独指定,当然网站名称也是不同的。

1:基于域名的虚拟主机

(1)设置客户端域名解析

修改hosts 文件,加入www.benet.com 和 www.accp.com 这两个域名

(2)准备各个网站的目录和测试首页

(3)修改配置文件

(4)测试

2:基于 IP 的虚拟主机

一台主机如果有多个 IP 地址,可以设置每一个 IP 对应一个站点。主机安装多个网卡可以有多个 IP,这里采用虚拟 IP 的方式使主机有多个 IP。

(1)为服务器设置多个IP地址

nmcli是NetworkManager的命令行工具,用于管理Linux系统中的网络连接

(2)修改 Nginx的配置文件,使基于 IP 的虚拟主机生效

(3)访问两个IP网站,测试页面是否生效

3:基于端口的虚拟主机

(1)选择系统中不使用的端口,多个端口映射到同一 IP 地址

(2)检测端口是否运行正常

(3)分别访问 2 个端口地址

四、LNMP 架构部署及应用

众所周知,LAMP 平台是目前应用最为广泛的网站服务器架构,其中“A”对应着 Web 服务软件 Apache。随着 Nginx 在企业中的使用越来越多,LNMP(或 LEMP)架构也越老越受到企业的青睐。

1:编译安装 Mariadb服务

把数据库安装到第二台服务器192.168.10.102中

开启MySQL

给mysql密码(默认没密码)

进入mysql

给root用户提权为后续连接php做铺垫

刷新策略

2:安装 PHP 解析环境

(1)编译安装 PHP

备注:

libxml2-devel:libxml是一个用来解析XML文档的函数库

libjpeg-devel #是一个完全用C语言编写的库,包含了被广泛使用的JPEG解码、JPEG编码和其他的JPEG功能的实现

libpng-devel #libpng 是一套免费的、公开源代码的程序库,支持对 PNG 图形文件的创建、读写等操作

GD指的是Graphic Device,PHP的GD库是用来处理图形的扩展库,通过GD库提供的一系列API,可以对图像进行处理或者直接生成新的图片。PHP除了能进行文本处理以外,通过GD库,可以对JPG、PNG、GIF、SWF等图片进行处理

zlib-devel #Zlib是一个压缩和解压模块

编译php

注意:

–with-mysqli=mysqlnd需要用ip地址的方式连接数据库,既可以是php和mysql装在同一个服务器,也可以装在不同的服务器。用127.0.0.1本地连接不需要为连接授权,用192.168.10.101连接需要授权,哪怕连接本地数据库。

–with-mysqli=/usr/bin/mysql_config需要用localhost连接数据库,只能用于本地连接,也就是php和mysql装在同一个服务器上

(2)安装后调整

(3)安装 ZendGuardLoader

3:配置 Nginx 支持 PHP 环境

(1)启用 php-fpm 进程

(2)配置 Nginx 支持 PHP 解析

调用本机的 php-fpm 进程

(3)PHP 页面访问测试

关MySQL防火墙

4.在 LNMP 平台中部署 Web 应用

(1):下载并部署程序代码

(2):创建数据库

(3):安装 Web 应用

访问服务器 URL 地址,对网站进行初始化 

http://192.168.10.101/bbs/install/index.php

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文