tigh 发表于 2018-11-11 13:07:04

nginx的部署

  介绍nginx之前我们先领略一种技术:
  Fastcgi是一种动态的、开放、安全的网络服务器接口技术。是由CGI(common gateway interface通用网关接口的技术)升级过来的。

  CGI就是图示的应用进程,它反复加载来完成响应,而fastCGI同时启动多个CGI并且让进程常驻内存,使得fastcgi的效率是cgi的数倍。
  支持fastcgi的web服务器有:nginx,apache(需要加入mod_fastcgi模块,并且只支持单进程所以效果一般)、lighttpd、IIS等。
  下面我们来搭建:centos+nginx+mysql+php
  Nginx简介:是俄罗斯人igor sysoev(伊戈尔。赛索耶夫)编写的一款高性能的HTTP和反向代理服务器。Nginx应该是web服务器软件中的一匹黑马,自从出世便表现不凡。
  Centos安装php,openbsd安装nginx,实现分布安装。
  Pcre下载:http;//pcre.org(使nginx支持正则表达式rewrite规则)
  Nginx下载:http://www.nginx.net
  先安装pcre库:
  Tar zxvf pcre-8.21.tar.gz
  Cd /pcre-8.21
  ./configure
  Make && make install
  安装nginx:
  Tar zxvf nginx-1.2.0.tar.gz
  cd /nginx-1.2.0
  ./configure –prefix=/usr/local/nginx (指定安装目录)

  Make && make install
  注:安装过程中可以执行./configure –help 会介绍详细的安装选项
  nginx配置文件:/usr/local/nginx/conf/nginx.conf
  启动nginx:cd /usr/local/nginx/sbin
  ./nginx
  Ps –aux|grep nginx 查看进程
  访问:http://ip

  关闭nginx:cd /usr/local/nginx/logs
  cat nginx.pid
  kill –QUIT 进程号
  重启nginx:kill –HUP 进程号   当然我们也可以用下面这个命令重启nginx
  kill -HUP `cat /usr/local/nginx/sbin/nginx.pid`
  安装php:
  Php下载地址:http://www.php.net/
  Php-fpm下载地址:http://php-fpm.org/(是php的一个补丁,更好的支持nginx)
  安装php:
  Tar php-5.2.17.tar.gz
  Gzip –cd php-5,2,17-fpm-0.5.14.diff.gz| patch –d php-5.2.17 –p1   将补丁打入php
  Cd php-25.2.17
  ./configure –prefix=/opt/php-5.2.17–enable-fastcgi –enable-fpm

  Make && make install
  注当然还有好多的选项可以配置如:--with-http_ssl_module –with-http_stub_status --with-mysql=/usr/local/mysql 还有一些GD库的支持都可以打上
  如果遇到configure- error- XML configuration could not be found
  可执行yum -y install libxml2 libxml2-devel修复,应该是我安装包时缺少包才出现这个问提。
  启动php-cgi:
  Php配置文件:/opt/php-5.2.17/php.ini-recommended
  一般启动php要先执行:cp php.ini-recommended/usr/local/lib/php.ini
  Php-fpm配置文件:/opt/php-5.2.17/etc/php-fpm.conf
  如果分布式安装,这个配置文件需要修改一下:

  如果是别的机器安装,需要将默认的127.0.0.1改成自己的ip

  这个是增加需要认证的ip,多个ip用逗号隔开
  Cd /opt/php-5.2.17/sbin
  ./php-fpm start
  Ps ef|grep php
  Netstat –ntl |grep 9000
  修改一下nginx配置文件
  Vi /usr/local/nginx/conf/nginx.conf

  我们将127.0.0.1:9000改成需要php支持的主机ip
  修改Root后面我们接我们需要指定的解析php文件路径,
  修改fastcgi-param SCRIPT_FILENAME /opt/php/www/$fastcgi_script_name;
  注:默认的html文件是在nginx目录下的/usr/local/nginx/html目录
  启动nginx:cd /usr/local/nginx/sbin    ->   ./nginx
  建立网页测试文件
  Cd /opt/php
  Mkdir www
  Cd www
  Vi info.php
  
  测试:
  http://ip/info.php

  配置开机自动重启nginx:
  Vi /etc/rc.local
  ulimit-SHu 65535
  /opt/php-5.2.17/sbin/php-fpm start
  /usr/local/nginx/sbin/nginx
  检查配置文件:
  /usr/local/nginx/sbin/nginx -t -nginx.conf
  安装Discuz:
  下载discuz:http://discuz.net
  Cd /opt/php-5.2.17/www
  Wget http://download.comsenz.com/DiscuzX/2.5/Discuz_X2.5_SC_UTF8.zip
  unzip Discuz_X2.5_SC_UTF8.zip
  Mysql>create database discuz;
  Mysql>grant all privileges on discuz.* to 'saisai'@'localhost' indentified '123456';
  Mysql>flush privileges;
  Mysql>quit
  http://192.168.213.129/upload

  Php的安全可以参考网页:http://www.php.net/manual/security.php
  总结:对于配置文件,我们会发现server用于记录服务器信息,location用于记录网页文件的所在路径,我们设置多个server和location便可以代理多台服务器了,反向代理这个我就不探讨了,如果有需要再进行进一步的探讨。

页: [1]
查看完整版本: nginx的部署