Nginx 核心功能

目录

一:基于授权的访问控制

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

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

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

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

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

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

(5)用浏览器访问网址,重启服务

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

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

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

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

三:Nginx 虚拟主机

1.基于域名的虚拟主机

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

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

(3)修改配置文件

2.基于IP 的虚拟主机

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

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

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

3.基于端口的虚拟主机

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

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

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

四:LNMP 架构部署及应用

1.编译安装MYSQL服务

(1)编译安装MYSQL

(2)复制配置文件到/etc下,并把MYSQL添加到服务

(3)初始化数据库

(4)启动MySQL,并设置密码

2.安装PHP解析环境

(1)编译安装PHP

(2)安装后调整

(3)安装ZendGuardLoader

3.配置Nginx 支持PHP环境

(1)启用php-fpm 进程

(2)配置Nginx支持PHP解析

(3)PHP页面访问测试

五:在LNMP平台中部署Web 应用

1.下载并部署程序代码

2.创建数据库

3.安装Web 应用


一:基于授权的访问控制

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

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

  • 生成用户密码认证文件。
  • 修改主配置文件相对应目录,添加认证配置项。
  • 重启服务,访问测试.

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

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

htpasswd 是一个用于创建和管理用户认证文件的工具,该文件包含用户名和加密后的密码。在终端中执行以下命令来创建或更新认证文件:

htpasswd -c /etc/nginx/.htpasswd username

  • -c 选项表示创建一个新的认证文件,如果文件已存在,它将被覆盖。
  • /etc/nginx/.htpasswd 是认证文件的路径,你可以根据需要修改。
  • username 是你要创建的用户名,执行命令后会提示你输入密码。

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

chmod 400 /etc/nginx/.htpasswd
chown nginx:nginx /etc/nginx/.htpasswd

  • chmod 400 确保只有文件所有者(这里是 nginx)能够读取该文件。
  • chown nginx:nginx 将文件的所有者和所属组都设置为 nginx

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

打开 nginx.conf 文件,通常位于 /etc/nginx/nginx.conf 或 /etc/nginx/conf.d/default.conf,在需要进行访问控制的位置添加以下配置:

location /protected {
    auth_basic "Restricted Access";
    auth_basic_user_file /etc/nginx/.htpasswd;
}

  • location /protected 表示对 /protected 路径下的所有资源进行访问控制,你可以根据需要修改路径。
  • auth_basic "Restricted Access" 定义了认证提示信息,当用户访问受保护的资源时,浏览器会弹出一个对话框,显示该提示信息。
  • auth_basic_user_file /etc/nginx/.htpasswd 指定了认证文件的路径。

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

在修改配置文件后,需要检测语法是否正确,并重启 Nginx 服务使配置生效:

nginx -t
systemctl restart nginx

  • nginx -t 用于检测 Nginx 配置文件的语法是否正确。
  • systemctl restart nginx 用于重启 Nginx 服务。

(5)用浏览器访问网址,重启服务

       打开浏览器,访问受保护的网址(例如 http://your-server/protected),浏览器会弹出一个认证对话框,要求你输入用户名和密码。输入之前创建的用户名和密码,如果输入正确,你将能够访问受保护的资源。

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

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

基于客户端的访问控制是通过客户端IP 地址,决定是否允许对页面访问。Nginx基于客户端的访问控制要比 Apache简单,规则如下。

  • deny IP/P段:拒绝某个IP或IP段的客户端访问。
  • allow 1P/P 段:允许某个P或IP段的客户端访间。
  • 规则从上往下执行,如匹配则停止,不再往下匹配。

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

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

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

location / {
      root        html;
#    index       index.html index.htm; auth_basic "secret";
#    auth_basic_usefile /usr/local/nginx/passwd.db;

      deny 192.168.10.3;

      allow all;

}

三:Nginx 虚拟主机

1.基于域名的虚拟主机

      利用虚拟主机,不用为每个解运行的网的提供一台单独的Ngin服务器或单独运行组Nginx进程,虚拟主机提筷了在同一合服务器,同一组Nginx进程上运行多个网鳞的功能。跟 Apache一-样,NEin×也向以配理多种实型的虚拟主机。分别是基于IP的虚拟主机、基于域名的角拟主机、基于缩口的虚拟主机
      使用Ngin×搭糖虚拽士机服务器时,每个鹿打Weo站点据有狼的"sorvere”配理段。各自监听的1P地址、端口号可以单独指定,当然网站名称也是不同的。

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

在客户端的 hosts 文件(Windows 系统位于 C:\Windows\System32\drivers\etc\hosts,Linux 系统位于 /etc/hosts)中添加域名与服务器 IP 地址的映射,示例如下:

192.168.1.100 example1.com
192.168.1.100 example2.com

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

为每个虚拟主机创建对应的目录,并且添加测试首页:

mkdir -p /var/www/example1.com/html
mkdir -p /var/www/example2.com/html
echo "This is example1" > /var/www/example1.com/html/index.html
echo "This is example2" > /var/www/example2.com/html/index.html

(3)修改配置文件

在 nginx.conf 或者 sites - available 目录下的配置文件中添加如下配置:

server {
    listen 80;
    server_name example1.com;
    root /var/www/example1.com/html;
    index index.html;
}

server {
    listen 80;
    server_name example2.com;
    root /var/www/example2.com/html;
    index index.html;
}

2.基于IP 的虚拟主机

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

在 Linux 系统中,可通过修改网络配置文件(如 /etc/network/interfaces)来添加多个 IP 地址:

auto eth0
iface eth0 inet static
    address 192.168.1.100
    netmask 255.255.255.0
    gateway 192.168.1.1

auto eth0:1
iface eth0:1 inet static
    address 192.168.1.101
    netmask 255.255.255.0

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

server {
    listen 192.168.1.100:80;
    root /var/www/site1/html;
    index index.html;
}

server {
    listen 192.168.1.101:80;
    root /var/www/site2/html;
    index index.html;
}

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

在浏览器中分别输入 http://192.168.1.100 和 http://192.168.1.101,查看是否能正常访问对应的页面。

3.基于端口的虚拟主机

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

假设选择 8080 和 8081 端口,确保这两个端口未被其他程序占用。

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

可使用 netstat -tuln 命令查看端口占用情况

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

在 Nginx 配置文件中添加如下内容:

server {
    listen 8080;
    root /var/www/port8080/html;
    index index.html;
}

server {
    listen 8081;
    root /var/www/port8081/html;
    index index.html;
}

在浏览器中分别输入 http://your - server - ip:8080 和 http://your - server - ip:8081 进行访问测试。

四:LNMP 架构部署及应用

1.编译安装MYSQL服务

(1)编译安装MYSQL

wget https://dev.mysql.com/get/Downloads/MySQL - 8.0/mysql - 8.0.26.tar.gz
tar -zxvf mysql - 8.0.26.tar.gz
cd mysql - 8.0.26
cmake. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/etc
make && make install

(2)复制配置文件到/etc下,并把MYSQL添加到服务

cp support - files/my - default.cnf /etc/my.cnf
cp support - files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysql

(3)初始化数据库

/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data

(4)启动MySQL,并设置密码

service mysqld start
/usr/local/mysql/bin/mysql_secure_installation

2.安装PHP解析环境

(1)编译安装PHP

get https://www.php.net/distributions/php - 8.0.10.tar.gz
tar -zxvf php - 8.0.10.tar.gz
cd php - 8.0.10
./configure --prefix=/usr/local/php --with - mysql=/usr/local/mysql --with - mysqli=/usr/local/mysql/bin/mysql_config --with - pdo - mysql=/usr/local/mysql --with - openssl --enable - mbstring --enable - fpm
make && make install

(2)安装后调整

cp php.ini - production /usr/local/php/lib/php.ini
cp /usr/local/php/etc/php - fpm.conf.default /usr/local/php/etc/php - fpm.conf
cp /usr/local/php/etc/php - fpm.d/www.conf.default /usr/local/php/etc/php - fpm.d/www.conf

(3)安装ZendGuardLoader

wget https://downloads.zend.com/guard/7.0.0/zend-loader - php8.0 - linux - x86_64.tar.gz
tar -zxvf zend - loader - php8.0 - linux - x86_64.tar.gz
echo "zend_extension=/path/to/zend_loader.so" >> /usr/local/php/lib/php.ini

3.配置Nginx 支持PHP环境

(1)启用php-fpm 进程

/usr/local/php/sbin/php - fpm

(2)配置Nginx支持PHP解析

在 nginx.conf 中添加如下配置:

location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

(3)PHP页面访问测试

在网站根目录下创建 test.php 文件:

<?php
phpinfo();
?>

在浏览器中访问 http://your - server - ip/test.php,查看是否能正常显示 PHP 信息页面。

五:在LNMP平台中部署Web 应用

1.下载并部署程序代码

wget https://example.com/your - web - app.zip
unzip your - web - app.zip -d /var/www/your - web - app

2.创建数据库

登录 MySQL:

mysql -u root -p

在 MySQL 中创建数据库:

CREATE DATABASE your_database_name;

3.安装Web 应用

打开浏览器,访问 http://your - server - ip/your - web - app,按照安装向导的提示,输入数据库信息等完成安装。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值