Nginx网站服务

Nginx专为性能优化而开发,优点是它的稳定性和低系统资源消耗,以及对HTTP并发连接的高处理能力(单台服务器可支持30000 – 50000个并发请求

Nginx和Apache的区别

Nginx:只需一个进程可以接收多个用户的连接,以线程为单位(线程包含在进程里面)节省资源

Apache:一个用户需一个进程,以进程为单位

 

主要结构:Nginx的基本配置

        :构建LNMP网站服务器平台

 

 

实验要求:

1.服务器的ip地址为192.168.1.1,使用泛域名解析*.benet.com

2.构建LNMP网站服务平台,并通过脚本实现自动化控制

3.配置虚拟web主机服务,同时支持三个站点:www.benet.com与www.accp.com以及vod.benet.com

 

  

 

安装nginx

1:安装支持软件

 

wKioL1kuulDy8_L6AAKRJeQydXc119.png 

 

wKioL1kuumKC206ZAACXu-I3KwQ722.pngwKioL1kuunGBckQeAAAgG-Qeiew250.png 

 

2.创建运行用户、组

wKioL1kuuoDhllEqAAASthLm_Q0991.png 

 

3.编译安装nginx

启用状态统计模块以支持状态统计,便于查看服务器的连接信息

 

wKioL1kuuo6z8wnoAACl_9G95UI867.png 

 

wKioL1kuurDhqMb9AAAMLK3oz4g467.png 

 

 

4.添加符号链接,以便通过nginx命令就可以调用nginx的主程序

 

[root@centos1nginx-1.6.2]#ln-s/usr/local/nginx/sbin/nginx  /usr/local/sbin

 

二、nginx的运行控制

1.检查配置文件

 

wKioL1kuusaxFES3AABSSeU9nj8235.png 

 

2.启动和停止nginx

 

wKiom1kuutXB5wk6AABqGsT086M869.png


  

3.重新加载nginx

 

wKioL1kuutWxfiC0AAAcUWoSRCE325.png 

 

4.退出nginx

 

wKioL1kuuvvhOve6AAAix8xLTK0530.png 

 

 

 

三、了解nginx的配置文件nginx.conf

 

nginx.conf文件包含三部分配置,分别是全局配置、I/O事件配置和HTTP配置

1. 全局配置

2. #user  nobody;  //运行用户 默认为nobody

3. worker_processes  1; //工作的进程数量,可以根据cpu核心总数来指定工作进程数

4. #error_log  logs/error.log;//错误日志文件的位置

5. #pid        logs/nginx.pid; //PID文件的位置

2.I/O事件配置

events {

    use epoll  //使用epoll模型

    worker_connections  4096;每个进程处理4096个进程连接

}

nginx服务提供的连接数为工作的进程数x每个进程提供的连接数

3.HTTP配置,用于完成web站点的设置

 

 

http {

    include       mime.types;

    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ' //去掉前面的#

                      '$status $body_bytes_sent "$http_referer" ' //去掉前面的#

                      '"$http_user_agent""$http_x_forwarded_for"'; //去掉前面的#

 

    access_log  logs/access.log  main; //去掉前面的#

    sendfile        on;

    #tcp_nopush     on;

    #keepalive_timeout  0;

    keepalive_timeout  65;

    #gzip  on;

 server {

        listen       80;

        server_name  localhost;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {

            root   html;

            index  index.html index.htm;

        }

wKiom1kuuxOSHFBqAAD1xORruqY059.png 

location / status{   //访问位置为/status

stub_status on;//打开状态统计功能

access_log off;//关闭此位置的日志记录

        }

 

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html

        #

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

            }

4.修改完配置文件后,重新加载下配置文件

[root@centos1 nginx-1.6.2]# killall -s HUP nginx

 

5 测试

Active connections :表示当前的活动连接数

Server accepts handled requests :表示已经处理的连接信息,三个数字依次表示已经处理的连接数(1) 成功的TCP握手次数(1) 已经处理的请求次数(1)

wKioL1kuuyiDJWodAABWTqOxJGo089.png


 

四、构建基于域名的虚拟web主机

1.准备网站目录以及测试文件

 

 

wKiom1kuuymTsc8PAAB4_1Ge2YA751.png 

 

2.调整nginx.conf配置文件

虚拟主机配置在server{}区域中,每个server{}区域代表一个web站点配置,指定各自网站名称、监听地址、网站根目录、访问日志等信息,然后重新加载配置

省略部分内容

 

 

wKioL1kuu2XTJbi8AACL70nuwCk253.png

wKioL1kuu2XjuJp8AABRwDmkNWc549.png

  

3重新加载.

 

wKioL1kuu7_DCnTRAAAZtr_ZAn0919.png


4 测试

wKiom1kuu7-jqtTlAAFokMQo2f8998.png 

wKioL1kuu8Dy3TJ_AACtUqlrNCw885.png 

 

wKiom1kuu8Czt-FrAADWxaJfTdo778.png 

 

 

五、构建LNMP架构及应用部署

1.安装mysql数据库(略,直接启动mysql服务器)

2.安装php解析环境

说明:较新版本(如5.3)php已经自带FPM(fastCGI Process Manager FastCGI进程管理器)模块,用来对php解析实例进行管理、优化解

 

wKioL1kuvGbAEhdHAAA2Rz64A0o672.png

 

(1)编译安装php

wKioL1kuvGfx7jb6AABHYXVWn0o153.png 

 

 

wKiom1kuvGexHr4PAACiwq5KazQ784.png 

 

wKioL1kuvGiTBhjOAAELI_8A_x0698.png 

 

 wKioL1kuvPPy4Ak6AABQcbyN4is498.png

 

(2)安装后的调整

 

wKiom1kuvGnhw4DuAABuukYiUSg256.png 

 

3.配置nginx支持php环境

有两种让nginx支持php的方法

充当中介,将访问php页面的web请求转交给其他的服务器(lamp)去处理

通过使用php的FPM模块来调用本机的php环境

 

 

 

(1)启用php-fpm进程

 

wKiom1kuvVzy5RF5AAArQxyi0bY836.png

 

①修改php-fpm.conf配置文件修改相关参数,然后启动php-fpm进程,php-fpm默认监听本机的9000端口

  Vim Php-fpm.com文件中配置

pid = run/php-fpm.pid   //确认pid文件的位置

user = php               //运行用户

group = php//运行组

pm.start_servers = 20//启动时开启的进程数

pm.min_spare_servers = 5//最小空闲进程数

pm.max_spare_servers = 35  //最大空闲进程数

pm.max_children = 50//最大子进程数

②启动php-fpm

 

wKioL1kuvV2CmFDaAAB3kBk-Ipg955.png 

2)配置nginx:完全支持php解析

说明:无论使用哪一种解析方式都需要server中进行配置

[root@centos1 Desktop]# vim /usr/local/nginx/conf/nginx.conf

 

wKiom1kuvV6xSkYGAACwY7roYpU902.png 

 

   location ~ \.php$ {//访问.php页面的配置段

        root   /var/www/vod;//php页面的根目录

     fastcgi_pass 127.0.0.1:9000;     //php-fpm监听地址

       astcgi_index index.php;//php首页名称

       include fastcgi.conf;//fastcgi模块配置

        }

 

[root@centos1 vod]# killall -s QUIT nginx

[root@centos1 vod]# nginx

(3)php页面访问测试

[root@centos1 vod]# mysqladmin -u root -p passwor'123456'

 

 

wKiom1kuvV6TuCawAAATk5Zbcg0052.png 

 

 

wKioL1kuvV6CGP3lAAB7P0thwYI620.png 

 

 

然后在客户机使用浏览器访问(在hosts中添加记录

wKiom1kuvV_TerqwAAGJIp-iJgU408.png 

LNMP平台的应用--部署天空网络电影系统

1.下载并部署程序代码

[root@centos1 ~]# unzip /mnt/SKYUC_3.4.2_for_php5.3.zip -d /usr/src

[root@centos1 ~]# cd /usr/src/SKYUC.v3.4.2.SOURCE/

[root@centos1 SKYUC.v3.4.2.SOURCE]# mv wwwroot/ /var/www/vod/skyuc

[root@centos1 SKYUC.v3.4.2.SOURCE]# cd /var/www/vod/skyuc/

[root@centos1 skyuc]# chown -R php:php admincp/ data/ templates/ upload/

[root@centos1 skyuc]#

2.创建数据库

为了降低web应用程序对数据库的风险,建议设置专用的数据库以及授权用户[root@centos1 skyuc]# mysql -u root -p

mysql> create database skyucdb;

mysql> grant all on skyucdb.* to runskyuc@localhost identified by 'sky@uc123';

3.安装web应用

wKiom1kuvdbQCY6BAAD1-FCJhi4040.png



 

wKiom1kuvdfDlONZAABPsNg7ucw912.png 

 

 

 

4.访问web应用系统

wKioL1kuvdrCT8AkAAFPq4g71D4063.png