nginx网站服务于虚拟主机

2023-05-15,,

   Nginx网站服务于虚拟主机

1nginx的优点:

稳定性高

系统资源消耗低

http并发量处理能力好可支持30000-50000个并发请求

主要用于静态页面

以线程为单位,一个进程对应多个用户,(线程很少占用系统资源)

2:与Apache的对比:

Apache主要用于动态页面

支持功能多

稳定性能高

Apache以进程为单位,一个用户对应一个进程(一对一)

3nginx主要用于:电商,网站,社交,门户......

4:安装及控制nginx

 

1.安装支持软件

[root@centos1 ~]# yum -y install pcre-devel zlib-devel

 

2.创建运行用户、组

[root@centos1 ~]# useradd -M -s /sbin/nologin nginx

 

3.编译安装nginx

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

[root@centos1 nginx-1.6.2]# ./configure --prefix=/usr/local/nginx  --user=nginx  --group=nginx  --with-http_stub_status_module状态统计模块

 

 

[root@centos1 nginx-1.6.2]# make&&make install

 

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

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

 

 

 

 

2.启动和停止nginx

[root@centos1 nginx-1.6.2]# nginx

3.检查nginx的监听端口,或通过浏览器访问

[root@centos1 nginx-1.6.2]# netstat -anpt

Active Internet connections (servers and established)

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   

tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      

 

3.重新加载nginx

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

4.退出nginx

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

 

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

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

1.全局配置

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

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

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

#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;

        }

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

 

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

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

[root@centos1 nginx-1.6.2]# mkdir -p /var/www/benet

[root@centos1 nginx-1.6.2]# echo "<h2>www.benet.com</h2>">/var/www/benet/index.html

[root@centos1 nginx-1.6.2]# mkdir -p /var/www/accp

2.[root@centos1 nginx-1.6.2]# echo "<h2>www.accp.com</h2>">/var/www/accp/index.html

 

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

省略部分内容

 {

server {

        listen       80;

        server_name  www.benet.com;

        charset utf-8;

        access_log  logs/benet.access.log  main;

        location / {

            root   /var/www/benet;

            index  index.html index.htm;

        }

        location /status {

            stub_status on;

            access_log off;

        }

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

}

server {

        listen       80;

        server_name  www.accp.com;

        charset utf-8;

        access_log  logs/accp.access.log  main;

        location / {

            root   /var/www/accp;

            index  index.html index.htm;

        }

        location /status {

            stub_status on;

            access_log offm;

        }

       error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

}

}

 

3.重新加载

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

[root@centos1 nginx-1.6.2]# nginx

4.测试

 

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

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

2.安装php解析环境

说明:较新保本(如5.3php已经自带FPM(fastCGI Process Manager FastCGI进程管理器)模块,用来对php解析实例进行管理、优化解析效率。需要启用--enable-fpm以启用此模块

1)编译安装php

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

 

[root@centos1~]#cd /usr/src/php-5.3.28

[root@centos1 php-5.3.28]# ./configure --prefix=/usr/local/php5 --with-gd --with-zlib --with-mysql=/usr/local/mysql --with-config-file-path=/usr/local/php5 --enable-mbstring --enable-fpm --with-jpeg-dir=/usr/lib

 

[root@centos1 php-5.3.28]#make &&make install

 

(2)安装后的调整

[root@centos1 php-5.3.28]# cp php.ini-development /usr/local/php5/php.ini

[root@centos1 php-5.3.28]# ln -s /usr/local/php5/bin/* /usr/local/bin

[root@centos1 php-5.3.28]# ln -s /usr/local/php5/sbin/* /usr/local/sbin

[root@centos1 php-5.3.28]#

 

3.配置nginx支持php环境

有两种让nginx支持php的方法

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

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

1)启用php-fpm进程

[root@centos1 vod]# useradd -M -s /sbin/nologin php

 

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

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

[root@centos1 etc]# /usr/local/sbin/php-fpm

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

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

 

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

..........

    server {

        listen       80;

        server_name  www.lxf.com;

        charset utf-8;

        access_log  logs/vod.access.log  main;

       location / {

           root   /var/www/lxf;

            index index.html index.php;

        }

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

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

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

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

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

        }

}

}

 

 

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

[root@centos1 vod]# nginx

 

 

 

3php页面访问测试

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

#service mysqld start  //启动数据库

/var/www/lxf下创建一个测试页面test.php

vim  /var/www/lxf/test.php

<?php

$link=mysql_connect('localhost','root','pwd123');

if ($link) echo "<h2>恭喜你,数据库连接成功</h2>";

mysql_close();

?>

 

验证:

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

1.下载并部署程序代码

[root@centos1 ~]# unzip 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/lxf/skyuc

[root@centos1 SKYUC.v3.4.2.SOURCE]# cd /var/www/vlxf/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';

 

 

验证: