lig 发表于 2018-11-10 14:05:28

nginx网站服务于虚拟主机

  Nginx网站服务于虚拟主机
  1:nginx的优点:
  稳定性高
  系统资源消耗低
  http并发量处理能力好可支持30000-50000个并发请求
  主要用于静态页面
  以线程为单位,一个进程对应多个用户,(线程很少占用系统资源)
  2:与Apache的对比:
  Apache主要用于动态页面
  支持功能多
  稳定性能高
  Apache以进程为单位,一个用户对应一个进程(一对一)
  3:nginx主要用于:电商,网站,社交,门户......
  4:安装及控制nginx
  1.安装支持软件
  # yum -y install pcre-devel zlib-devel

  2.创建运行用户、组
  # useradd -M -s /sbin/nologin nginx

  3.编译安装nginx
  启用状态统计模块以支持状态统计,便于查看服务器的连接信息
  # ./configure --prefix=/usr/local/nginx--user=nginx--group=nginx--with-http_stub_status_module(状态统计模块)

  # make&&make install

  4.添加符号链接,以便通过nginx命令就可以调用nginx的主程序
  # ln -s /usr/local/nginx/sbin/nginx/usr/local/sbin


  2.启动和停止nginx
  # nginx
  3.检查nginx的监听端口,或通过浏览器访问
  # 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
  # killall -s HUP nginx
  4.退出nginx
  # killall -s QUITnginx

  三、了解nginx的配置文件nginx.conf
  说明:nginx.conf文件包含三部分配置,分别是全局配置、I/O事件配置和HTTP配置
  1.全局配置
  #usernobody;//运行用户 默认为nobody
  worker_processes1; //工作的进程数量,可以根据cpu核心总数来指定工作进程数
  #error_loglogs/error.log;//错误日志文件的位置
  #pid      logs/nginx.pid; //PID文件的位置

  2.I/O事件配置
  events {
  use epoll//使用epoll模型
  worker_connections4096;每个进程处理4096个进程连接
  }
  nginx服务提供的连接数为工作的进程数x每个进程提供的连接数
  3.HTTP配置,用于完成web站点的设置
  http {
  include       mime.types;
  default_typeapplication/octet-stream;
  log_formatmain'$remote_addr - $remote_user [$time_local] "$request" ' //去掉前面的#
  '$status $body_bytes_sent "$http_referer" ' //去掉前面的#
  '"$http_user_agent""$http_x_forwarded_for"'; //去掉前面的#
  access_loglogs/access.logmain; //去掉前面的#
  sendfile      on;
  #tcp_nopush   on;
  #keepalive_timeout0;
  keepalive_timeout65;
  #gzipon;
  server {
  listen       80;
  server_namelocalhost;
  #charset koi8-r;
  #access_loglogs/host.access.logmain;
  location / {
  root   html;
  indexindex.html index.htm;
  }
  location / status{   //访问位置为/status
  stub_status on;//打开状态统计功能
  access_log off;//关闭此位置的日志记录
  }
  #error_page404            /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.修改完配置文件后,重新加载下配置文件
  # killall -s HUP nginx

  四、构建基于域名的虚拟web主机
  1.准备网站目录以及测试文件
  # mkdir -p /var/www/benet
  # echo "www.benet.com">/var/www/benet/index.html
  # mkdir -p /var/www/accp
  2.# echo "www.accp.com">/var/www/accp/index.html

  虚拟主机配置在server{}区域中,每个server{}区域代表一个web站点配置,指定各自网站名称、监听地址、网站根目录、访问日志等信息,然后重新加载配置
  省略部分内容
  {
  server {
  listen       80;
  server_namewww.benet.com;
  charset utf-8;
  access_loglogs/benet.access.logmain;
  location / {
  root   /var/www/benet;
  indexindex.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_namewww.accp.com;
  charset utf-8;
  access_loglogs/accp.access.logmain;
  location / {
  root   /var/www/accp;
  indexindex.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.重新加载
  # killall -s QUIT nginx
  # nginx
  4.测试

  五、构建LNMP架构及应用部署
  1.安装mysql数据库(略,直接启动mysql服务器)
  2.安装php解析环境
  说明:较新保本(如5.3)php已经自带FPM(fastCGI Process Manager FastCGI进程管理器)模块,用来对php解析实例进行管理、优化解析效率。需要启用--enable-fpm以启用此模块
  (1)编译安装php
  # yum -y install gd libxml2-devellibjpeg-devel libpng-devel
  #cd /usr/src/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

  #make &&make install

  (2)安装后的调整
  # cp php.ini-development /usr/local/php5/php.ini
  # ln -s /usr/local/php5/bin/* /usr/local/bin
  # ln -s /usr/local/php5/sbin/* /usr/local/sbin
  #

  3.配置nginx支持php环境
  有两种让nginx支持php的方法
  l 充当中介,将访问php页面的web请求转交给其他的服务器(lamp)去处理
  l 通过使用php的FPM模块来调用本机的php环境
  (1)启用php-fpm进程
  # 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
  # /usr/local/sbin/php-fpm
  (2)配置nginx:完全支持php解析
  说明:无论使用哪一种解析方式都需要server中进行配置

  # vim /usr/local/nginx/conf/nginx.conf
  ..........
  server {
  listen       80;
  server_namewww.lxf.com;
  charset utf-8;
  access_loglogs/vod.access.logmain;
  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模块配置
  }
  }
  }

  # killall -s QUIT nginx
  # nginx
  3)php页面访问测试
  l # mysqladmin -u root -p password '123456'
  l #service mysqld start//启动数据库
  l 在/var/www/lxf下创建一个测试页面test.php
  vim/var/www/lxf/test.php
  

  验证:
  六、LNMP平台的应用--部署天空网络电影系统
  1.下载并部署程序代码
  # unzip SKYUC_3.4.2_for_php5.3.zip -d /usr/src
  # cd /usr/src/SKYUC.v3.4.2.SOURCE/
  # mv wwwroot/ /var/www/lxf/skyuc
  # cd /var/www/vlxf/skyuc/
  # chown -R php:php admincp/ data/ templates/ upload/
  #


  2.创建数据库
  为了降低web应用程序对数据库的风险,建议设置专用的数据库以及授权用户# mysql -u root -p
  mysql> create database skyucdb;

  mysql> grant all on skyucdb.* to runskyuc@localhost>
  验证:




页: [1]
查看完整版本: nginx网站服务于虚拟主机