一.基于授权的访问控制
1.基于授权的访问控制简介
Nginx与Apahce 一样,可以实现基于用户授权的访问控制,当客户端想要访问相应网站或者目录时,要求用户输入用户名和密码才能正常访问,配置步骤与Apache基本一致。
2.基于授权的访问控制步骤
(1)使用 htpasswd生成用户认证文件
使用 htpasswd生成用户认证文件,如果没有该命令,可使用yum安装httpd-tools软件包,用法与Apache认证时方式相同,如:hRasswd/usr/local/nginx/passwd.db test。在/usr/local/nginx/日录下生成了 passwd.db文件,用户名是 test,密码输入2次。在passwd.db 中生成用户和密码的密文。
(2)修改密码文件权限为 400,将所有者改为nginx,设置ginx的运行用户能够读取
(3)修改主配置文件 nginx.conf,添加相应认证配置项
(4)检测语法,重启服务
(5)用浏览器访问网址,检验控制效果
二.基于客户端的访问控制
1.基于客户端的访问控制简介
基于客户端的访问控制是通过客户端IP地址,决定是否允许对页面访问。Nginx基于客户端的访问控制要比Apache简单。
denyIP/P段:拒绝某个|P或IP段的客户端访问。
allow IP/IP段:允许某个P或IP段的客户端访问。
规则从上往下执行,如匹配则停止,不再往下匹配。
三.Nginx 虚拟主机
使用 Nginx搭建虚拟主机服务器时,每个虚拟 web站点拥有独立的“server{}”配置段,各自监听的IP地址、端口号可以单独指定,当然网站名称也是不同的。
1.基于域名的虚拟主机
(1)设置客户端域名解析
修改 hosts 文件,加入www.benet.com和www.accp.com 这两个域名
192.168.10.101 www.benet.com
192.168.10.101 www.accp.com
(2)准备各个网站的目录和测试首页
(3)修改配置文件
[root@localhost ~]# nginx -t
root@localhost ~l# systemctl restart nginx
2.基于 IP 的虚拟主机
(1)为服务器设置多个 IP 地址
(2)修改 Nginx的配置文件,使基于IP的虚拟主机生效
3.基于端口的虚拟主机
(1)选择系统中不使用的端口,多个端口映射到同一IP地址
四.LNMP 架构部署及应用
1.编译安装 MySQL 服务
[root@localhest mysql-5.6.36]# make && make install
(2)复制配置文件到/et下,并把MySQL 添加到服务
cp support-files/my-default.cnf /etc/my.cnf
cp support-files/mysaserver /etclinit.d/mysald
chmod +x /etc/re d/init.d/mysqld
chkeonfig --add mysgld
chkeonfig mysgld on
echo "PATH=$PATH:/usr/local/mysql/bin">> /etc/profile
./etc/profile
(3)初始化数据库
[root@localhost ~]# groupadd mysa!
[root@localhost ~]# useradd -M -s /sbin/nologin mysal -g mysa!
[root@localhost ~]# chown -R mysqlmysal /usr/local/mysg!
[root@localhost -]# /usr/locallmysql/scripts/mysgl install db -basedir-/usr/local/mysql
datadir-/usrlocal/mysgldata --user=mysql
(4)启动mysgl,并设置密码
[root@localhost ~]# systemetl start mysqld
[rget@lgcalhgst -]# mysgladmin -u root password '123.com'
2.安装PHP 解析环境
(1)编译安装PHP
[rgot@localhgst ~]# yum -y install gd libxml2-devel libipeg-devel libpng-devel
如果 mysg1用源码包安装的
[root@localhost ~]#cd php-5.5.38/
[root@localhost php-5.5.38]# ./configure
--prefix=/usr/local/php5 \
--with-gd
--with-zlik
--with-mysal=/usr/local/mysa!
--with-mysali-/usr/local/mysq/bin/mysgl config.
--with-config-file-path=/usr/local/php5 \
--enable-mbstring
--enable-fpm \
--with-jpeg-dir=/usr/lib
如果 mysql用 yum 装的
[root@localhest php-5.5.38]# ./configure\
--prefix=/us!local/php5 \
--with-gd
--with-zlik
--with-mysal mysglind
--with-mysali-mysaind
--with-config-file-path=/usr/local/php5 \
--enable-mbstring
--enable-fpm \
--with-jpeg-dirc/usr/lib
注意.
--with-mysgli=mysglnd 需要用 ip,地址的方式连接数据库,既可以是 php 和 mysgl 装在同一个服务器,也可以装在不同的服务器。用127.0.0.1本地连接不需要为连接授权,用192.168.10.101连接需要授权,哪怕连接本地数据库。
--with-mysgli=/usr/bin/mysgl config需要用 localhost 连接数据库,只能用于本地连接,也就是 php和mysg1装在同一个服务器上.
[root@localhest php-5.5.38]# make && make install
(2)安装后调整
[root@lacalhest php-5.5.38]# cp php.ini-development /usr/local/php5/php.ini
[root@localhest php-5.5.38]#In -s /usr/local/php5/bin/* /usr/local/bin/
[root@localhost php-5.5 .38]# In-s /usrlocal/php5/sbin/* /usrlocal/sbin/
(3)安装 ZendGuardLoader
[root@localhest ~]# tar -xxvf zend-loader-php5.5-linuxx86_64_update1.tar.gz
[root@lggalhest~]# cd zend-loader-php5.5-linux-x86 64/
[root@localhost zend-loader-php5.5-linux-x86 64]# cp ZendGuardLoader.so usr/local/php5/lib/php
[root@lgcalhest zend-loader-php5.5-linux-x86_64# vim /usr/local/php5/php.ini