Nginx焦点功能

打印 上一主题 下一主题

主题 1875|帖子 1875|积分 5625

目录

一:基于授权的访问控制
1:基于授权的访问控制简介
2:基于授权的访问控制步调
(1)使用htpasswd 天生用户认证文件
(2)修改密码文件权限为400,将所有者改为nginx,设置nginx的运行用户能后读取
(3)修改主配置文件nginx.conf 添加相应认证配置项
(4)检测语法,重启服务
(5)欣赏器访问检测效果
二:基于客户端的访问控制
1:基于客户端的访问控制简介
2:基于客户端的访问控制步调
(1)修改主配置文件nginx.conf添加相应配置项
三:Nginx 假造主机
1:基于域名的假造主机
(1)设置客户端域名解析
(2)准备各个网站的目录和测试首页
(3)修改配置文件
2:基于IP的假造主机
(1)为服务器设置多个IP地点
(2)修改nginx的配置文件,是基于IP的假造主机生效
3:基于端口的假造主机
(1)选择体系总不使用的端口,多个端口映射到用以IP地点
(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页面访问


一:基于授权的访问控制

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中天生用户和密码的密文。
   [root@localhost ~]# yum -y install httpd-tools
[root@localhost ~]# htpasswd -c /usr/local/nginx/passswd.db test
[root@localhost ~]# cat /usr/local/nginx/passwd.db
  (2)修改密码文件权限为400,将所有者改为nginx,设置nginx的运行用户能后读取

   [root@localhost ~]# chmod 400 /usr/local/nginx/passwddb
[root@localhost ~]# chown nginx /usr/local/nginx/passswd.db
[root@localhost ~]# ll -d /usr/local/nginx/passwodb
  (3)修改主配置文件nginx.conf 添加相应认证配置项

   server {
          listen  80;
        server_name localhost;
        #charset koi8-r;
        #access_log logs/host.access.log main;
        location/{
                root        html;
                index index.html index.htm;
                auth_basic "secret";
                auth_basic_user_file /usr/local/nginx/passwd.db;
  }
  (4)检测语法,重启服务

   [root@localhost ~]# nginx -t
[root@localhost ~]# systemctl restart nginx
  (5)欣赏器访问检测效果


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

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

基于客户端的访问控制是通过客户端IP地点,决定是否允许许对页面访问。Nginx于客户端的访问控制要比Apache简单,规则如下:
>denyIP/IP段:拒绝某个IP段的客户端访问。
>allowIP/IP段:允许某个IP段的客户端访问。
>规则从上往下实行,如匹配则制止,不再往下匹配。
2:基于客户端的访问控制步调

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

location / {
        root        html;
         indexindex.html index.htm;
 #     auth_basic "secret";
 #     auth_basic_user_file /usr/local/nginx/passwd.db;
        deny 192.168.10.3;
        allow all;
}
三:Nginx 假造主机

利用假造主机,不用为每个要运行的网站提供一台单独的Nginx服务器或单独运行一组Nginx进程,假造主机提供了在同一台服务器,同一组Ngiinx 进程上运行多个网站的功能。跟Apache一样,Nginx也可以配置多种范例的假造主机,分别是基于IP的假造主机、基于域名的假造主机、基于端口的假造主机。
使用Nginx搭建假造主机服务器时,每个假造Web站点拥有独立的"server{}"配置段,各自监听的IP地点、端口号可以单独指定,当然网站名和你也是差别的
1:基于域名的假造主机

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

   修改hosts文件,参加www.benet.com和ww.accp.com这两个域名
192.168.10.101 www.benet.com
192.168.10.101 www.accp.com
  (2)准备各个网站的目录和测试首页

   [root@localhost ~]# mkdir -p/var/www/html/benet/
[root@localhost ~]# mkdir -p/var/www/html/accp/
[root@localhost ~]# echo "www.benet.com">>/var/www/html/beenet/index.html
[root@localhost ~]# echo "www.accp.com">>/var/www/htrml/accp/index.html
  (3)修改配置文件

   server   {
        listen        80;
        server_name www.benet.com;
        access_log logs/www.benet.com.access.log;
        charset utf-8;
        location / {
                     root         /var/www/html/benet;
                   index index.html index.htm;
  }
  error_page 500 502 503 504 /50x.html;
location = 50x.html
                root html;
          }
  }
  server {
        listen        80;
        server_name www.accp.com;
        access_log logs/www.accp.com.access.log;
        charset utf-8;
        location / {
                root        /var/www/html/accp;
          index          index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = 50x.html {
        root html;
          }
  }
  [root@localhost ~]# nginx -t
[root@localhost ~]# systemctl restart nginx
  访问测试
  2:基于IP的假造主机

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

   [root@localhost ~]# cd /etc/sysconfig/network-scripts
[root@localhost network-scripts]# cp ifcfg-ens33 iifcfg-ens 33:0
[root@localhost network-scripts]# cp ifcfg-ens33 iifcfg-ens 33:1
[root@localhost network-scripts]# vim ifcfg-ens33:0
  [root@localhost network-scripts]# vim ifcfg-eens33:1
  [root@localhost network-scripts]# nmcli c reload
[root@localhost network-scripts]# nmcli c up ens33
[root@localhost network-scripts]# ip add
  (2)修改nginx的配置文件,是基于IP的假造主机生效

   [root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
server {
        listen        192.168.10.151:80;
  ..............
  server {
        listen        192.168.10.152:80;
  ............
  
  [root@localhost ~]# systemctl restart nginx
  访问测试
  3:基于端口的假造主机

(1)选择体系总不使用的端口,多个端口映射到用以IP地点

   [root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
server {
        listen        192.168.10.101:8080;
  .............
  server {
        listen        192.168.10.101:8080;
  ................
  [root@localhost ~]# systemctl restart nginx
  (2)检测端口是否运行正常

   [root@localhost ~]# netstat -anpt | grep nginx
  分别访问两个端口地点
  四:LNMP架构部署及应用

1:编译安装MySQL服务

(1)编译安装MySQL服务

   [root@www ~]# yum install -y autoconf
  
备注:
Autoconf是一个用于天生可以主动地配置软件源代码包以认适应多种Unix类体系的shell脚本的工具。
   [root@localhost ~]# yum -y install ncurses-devel gcc-c++ perl-Modulee-Install cmake
[root@localhost ~]# tar -zxvf mysql-5.6.36.tar.gz
[root@localhost ~]# cd mysql-5.6.36/
[root@localhost mysql-5.6.36]# cmake 、
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DDEFAULT CHARSET=utf8 、
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DSYSCONFDIR=/etc
  [root@localhost mysql-5.6.36]# make && make install
  (2)复制配置文件到/etc下,并把MySQL添加到服务

   [root@localhost mysql-5.6.36]# cp support-files/my-default.cnf/etcmy.cnf
[root@localhost mysql-5.6.36]# cp support-files/mysql.server /etc/init.d/mysqld
[root@localhost mysql-5.6.36]# chmod +x /etc/rc.d/init.d/mysqld
[root@localhost mysql-5.6.36]# chkconfig --add mysqld
[root@localhost mysql-5.6.36]# chkconfig mysqld on
[root@localhost mysql-5.6.36]# echo "ATH=$PATH:/usr/locaal/mysql/bin">> /etc/profile
[root@localhost mysql-5.6.36]# . letc/profile
  (3)初始化数据库

   
[root@localhost ~]# groupadd mysql
[root@localhost ~]# useradd -M -s /sbin/nologin mysql -g mysql
[root@localhost ~]# chown -R mysql.mysql /usr/local/mysql
[root@localhost ~]# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql
--datadir=/usr/local/mysql/data --user=mysql
  (4)启动MySQL,并设置密码

   [root@localhost ~]# systemctl start mysqld
[root@localhost ~]# mysqladmin -u root password 'pwd123‘
  2.安装PHP解析情况

(1)编译按钻过PHP

   [root@localhost ~]# yum -y install gd libxml2-devel libjpeg-devel libpng-devel
  备注:
  >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是一个压缩和解压模块zlib-devel
  [root@localhost ~]#tar -zxvf php-5.38.tar.gz
  (2)安装后调解

   [root@localhost php-5.38]# cp php.ini-development/usr/loccal/php5/php.ini
[root@localhost php-5.5.38]# In -s /usr/local/php5/bin/* /usr/local/biin/
[root@localhost php-5.5.38]# In -s /usr/local/php5/sbin/*/usr/local/sbin/
  (3)安装ZendGuardLoader

   [root@localhost ~]# tar -zxvf zend-loader-php5.5-linux-x86_64_update1.tar.gz
[root@localhost ~]# 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@localhost zend-loader-php5.5-linux-x86_64]# vim /usr/local/php5/php.ini
添加下列内容:
zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so
zend_loader.enable=1
  3:配置nginx支持PHP情况

(1)启用php-fpm进程

   [root@localhost ~]# cd /usr/local/php5/etc/
[root@localhost etc]# cp php-fpm.conf.default php-fpm.coonf
[root@localhost etc]# useradd -M -s /sbin/nologin php
[root@localhost etc]# vim php-fpm.conf
pid = run/php-fpm.pid
user = php
group = php
pm.max_children = 50        ##最多子进程数
pm.start_servers = 20        ##启动时开启的进程数
pm.min_spare_servers = 5        ##最少空闲进程数
pm.max_spare_servers=35         ##最多空闲进程数
  [root@localhost etc]# /usr/local/sbin/php-fpm
[root@localhost etc]# netstat -anpt | grep php-fpm 
  [root@localhost ~]# vim /lib/systemd/system/php-fpm.service
[Unit]
Description=The PHP FastCGI Process Manager
After=network.target
  
[Service]
Type=simple
PIDFile=/usr/local/php5/php-fpm.pid
ExecStart=/usr/local/php5/sbin/php-fpm --nodaemonize --fpm-config /usr/local/php5/etc/php-fpm.con
ExecReload=/bin/kill -USR2 $MAINPID
Private Tmp=true
  [Install]
WantedBy=multi-user.target
[root@localhost ~]# systemctl daemon-reload
[root@localhost ~]# systemctl start php-fpm
  (2)配置nginx支持php解析

   调用本机的php-fpm进程
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
  Server{
        listen         80;
        server_name www.bt.com;
                location / {
                root        /var/www/html;
                index index.html index.htm index.php;
  }
location ~ \.php${
        root        /var/www/html;
        fastcgi_pass        127.0.0.1:9000;
        fastcgi_index index.php;
        include        fastcgi.conf;
          }
  }
  (3)php页面访问

   [root@localhost ~]# mkdir-p/var/www/html/
[root@localhost ~]# vim /var/www/html/test1.php
<?php
phpinfo();
  ?>
  [root@localhost ~]# vim /var/www/html/test2.php
<?php
$link=mysqli_connect('127.0.0.1','root, pwd123');
if(Slink)echo"<h1>恭喜你,数据库连接成功啦!!!</h1>";
mysqli_close($link);
  ?>

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

勿忘初心做自己

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表