Nginx网站服务

目录

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

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

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

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

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

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

三.虚拟主机 

1.基于域名的虚拟主机

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

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

 (3).修改配置文件

(4).测试

2.基于 IP 的虚拟主机

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

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

3.基于端口的虚拟主机

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

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

四:LNMP 架构部署及应用

1:编译安装 MySQL 服务

(1).编译安装 MySQL 服务

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

(3).初始化数据库

(3)启动 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 生成用户认证文件,如果没有该命令,可使用 yum 安装 httpd-tools软件包,用法与 Apache 认证时方式相同。列:

[root@localhost ~]# yum -y install httpd-tools
[root@localhost ~]# htpasswd -c /usr/local/nginx/passwd.db test 
[root@localhost ~]# cat /usr/local/nginx/passwd.db 

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

[root@localhost ~]# chmod 400 /usr/local/nginx/passwd.db 
[root@localhost ~]# chown nginx /usr/local/nginx/passwd.db 
[root@localhost ~]# ll -d /usr/local/nginx/passwd.db 

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

root@localhost ~]# vim /usr/local/nginx/conf/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 简单,规则如下:

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

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

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

        location / {
            root   html;
            index  index.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 进程上运行多个网站的功能。跟 Apache 一样,Nginx 也可以配置多种类型的虚拟主机,分别是基于 IP 的虚拟主机、基于域名的虚拟主机、基于端口的虚拟主机。

        使用 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).准备各个网站的目录和测试首页

[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/benet/index.html 
[root@localhost ~]# echo "www.accp.com">>/var/www/html/accp/index.html

 (3).修改配置文件

[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf
    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

(4).测试

2.基于 IP 的虚拟主机

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

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

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens33:0
[root@localhost network-scripts]# cp ifcfg-ens33 ifcfg-ens33:1

[root@localhost network-scripts]# vim ifcfg-ens33:0
IPADDR=192.168.10.151
NETMASK=255.255.255.0
GATEWAY=192.168.10.254
DNS1=223.6.6.6
NAME=ens33:0
DEVICE=ens33:0

[root@localhost network-scripts]# vim ifcfg-ens33:1
IPADDR=192.168.10.152
NETMASK=255.255.255.0
GATEWAY=192.168.10.254
DNS1=223.6.6.6
NAME=ens33:1
DEVICE=ens33: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_name  www.benet.com;
.....
   }

    server {
        listen       192.168.10.152:80;
        server_name www.accp.com;
.....
}

[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_name  www.benet.com;
.....
   }

    server {
        listen       192.168.10.101:8888;
        server_name www.accp.com;
.....
}

[root@localhost ~]# systemctl restart nginx

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

[root@localhost ~]# netstat -anpt | grep nginx

四:LNMP 架构部署及应用

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

1:编译安装 MySQL 服务

(1).编译安装 MySQL 服务

[root@www ~]# yum install -y autoconf

注:Autoconf是一个用于生成可以自动地配置软件源代码包以适应多种Unix类系统的 shell脚本的工具。

[root@localhost ~]# yum -y install ncurses-devel gcc-c++ perl-Module-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 /etc/my.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 "PATH=$PATH:/usr/local/mysql/bin">> /etc/profile

[root@localhost mysql-5.6.36]# . /etc/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

(3)启动 mysql,并设置密码

[root@localhost ~]# systemctl start mysqld

[root@localhost ~]# mysqladmin -u root password '123.com'

2:安装 PHP 解析环境

(1).编译安装 PHP

[root@localhost ~]# yum -y install gd libxml2-devel libjpeg-devel libpng-devel

源码编译安装PHP

[root@localhost ~]#cd php-5.5.38/

[root@localhost php-5.5.38]# ./configure \

--prefix=/usr/local/php5 \

--with-gd \

--with-zlib \

--with-mysql=/usr/local/mysql \

--with-mysqli=/usr/local/mysql/bin/mysql_config \

--with-config-file-path=/usr/local/php5 \

--enable-mbstring \

--enable-fpm \

--with-jpeg-dir=/usr/lib
[root@localhost php-5.5.38]# make && make install

(2).安装后调整

[root@localhost php-5.5.38]# cp php.ini-development /usr/local/php5/php.ini

[root@localhost php-5.5.38]# ln -s /usr/local/php5/bin/* /usr/local/bin/

[root@localhost php-5.5.38]# ln -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.conf

[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.conf

ExecReload=/bin/kill -USR2 $MAINPID

PrivateTmp=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($link) echo "<h1>数据库连接成功</h1>";

mysqli_close($link);

?>

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

1.下载并部署程序代码

[root@localhost ~]# yum -y install unzip

[root@localhost ~]# unzip Discuz_X3.3_SC_UTF8.zip

[root@localhost ~]# mkdir -p /var/www/html/bbs

[root@localhost ~]# mv upload/* /var/www/html/bbs

[root@localhost ~]# chown -R php:php /var/www/html/bbs/

2.创建数据库

[root@localhost ~]# mysql -uroot -p

mysql>create database bbs;

mysql>grant all on bbs.* to runbbs@127.0.0.1 identified by 'bbs123';

mysql>grant all on bbs.* to runbbs@'localhost' identified by 'bbs123';

3:安装 Web 应用

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

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值