codecamp

Linux Nginx网站服务

防伪码:山重水复疑无路,柳暗花明又一村

                                    第二章  Nginx网站服务

前言:Nginx与apache的作用一样,都是为了搭建网站服务器,由俄罗斯人lgor Sysoev开发,是一款高性能、轻量级Web服务软件,中国使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。其优点如下:

1、稳定性高

2、系统资源消耗低

3、对HTTP并发连接的处理能力高(单台物理服务器可支持30000~50000个并发请求)

一、 安装及运行

1、 搭建yum仓库,安装支持软件

挂载rhel-6.5的光盘、复制到/a下

安装pcre,zlib软件开发包,以便提供相应的库和头文件,确保Nginx的安装顺利完成

2、 创建运行用户、组(nginx默认以nobody身份运行,不安全,所以需要创建用户)

3、 编译安装nginx

 


注:http_stub_status_module模块用来支持状态统计,便于查看服务器的连接信息

为了方便管理员直接执行nginx命令,我们为主程序nginx创建链接文件

4、 检查配置文件(nginx -t)并启动nginx服务,端口号为80,注意不要同时安装apache

在浏览器上看到下面的页面,说明nginx搭建成功

5、 使用nginx服务器脚本

Vi  /etc/init.d/nginx

 


添加为系统服务

二、 访问状态统计及虚拟主机应用

1、 nginx的访问状态统计

Vim  /usr/local/nginx/conf/nginx.conf,添加下图红钩的内容。

 


然后访问网站,看到如下内容表示成功。

注:其中“Active connections”表示当前的活动连接数,“server accepts handled requests”表示已经处理的连接信息

三个数字(从左至右)依次表示已处理的连接数,成功的TCP握手次数,已处理的请求数

1、 基于域名的虚拟主机

例如:在nginx服务器上搭建两个网站,www.google.com和www.baidu.com

1) 准备网站目录和网页

2) 搭建dns服务器

或者采用另外一种方法,修改hosts文件,就不用搭建dns服务器了

Vi /etc/hosts

 


再指向自己

Vi  /etc/resolv.conf

3) 调整nginx.conf配置文件(把server区域复制一份修改即可)

4)访问网站

三、 LNMP平台的搭建

1、 安装mysql数据库

1)安装cmake和mysql

[root@yangwen ~]# cd /media/

[root@yangwen media]# ls

cmake-2.8.12.tar.gz  php-5.3.28.tar.gz

mysql-5.5.38.tar.gz  SKYUC_3.4.2_for_php5.3.zip

nginx                ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz

nginx-1.6.2.tar.gz

统一解包:

[root@yangwen media]# tar zxf cmake-2.8.12.tar.gz -C /usr/src/

[root@yangwen media]# tar zxf mysql-5.5.38.tar.gz -C /usr/src/

[root@yangwen media]# tar zxf php-5.3.28.tar.gz -C /usr/src/

[root@yangwen media]# tar zxf ZendGuardLoader-php-5.3-linux-glibc23-x86_64.tar.gz -C /usr/src/

安装cmake:

[root@yangwen media]# cd /usr/src/cmake-2.8.12/

[root@yangwen cmake-2.8.12]# ./configure && gmake && gmake install

安装MySQL:

[root@yangwen ~]# cd /usr/src/mysql-5.5.38/

[root@yangwen mysql-5.5.38]# cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DSYSCONFDIR=/etc/

[root@yangwen mysql-5.5.38]# make && make install

2) 优化调整

[root@yangwen mysql-5.5.38]# cp support-files/my-medium.cnf /etc/my.cnf 

cp:是否覆盖"/etc/my.cnf"? y

[root@yangwen mysql-5.5.38]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld

[root@yangwen mysql-5.5.38]# chmod +x /etc/rc.d/init.d/mysqld 

[root@yangwen mysql-5.5.38]# chkconfig --add mysqld

[root@yangwen mysql-5.5.38]# echo "PATH=$PATH:/usr/local/mysql/bin" >> /etc/profile

[root@yangwen mysql-5.5.38]# . /etc/profile

3)初始化数据库

[root@yangwen mysql-5.5.38]# groupadd mysql

[root@yangwen mysql-5.5.38]# useradd -M -s /sbin/nologin mysql -g mysql

[root@yangwen mysql-5.5.38]# chown -R mysql:mysql /usr/local/mysql/

[root@yangwen mysql-5.5.38]# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --user=mysql

Installing MySQL system tables...

OK

Filling help tables...

OK

4) 启动mysql服务

[root@yangwen ~]# service mysqld start

5) 修改mysql密码

[root@yangwen ~]# mysqladmin -u root password '123456'

2、 安装php解析环境

1)编译安装php

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

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

[root@yangwen 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@yangwen php-5.3.28]# make && make install

2) 安装后的调整

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

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

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

3) 安装Zend(提高PHP程序执行效率,优化页面加载速度)

[root@yangwen ~]# cd /usr/src/ZendGuardLoader-php-5.3-linux-glibc23-x86_64/

[root@yangwen ZendGuardLoader-php-5.3-linux-glibc23-x86_64]# cd php-5.3.x/

[root@yangwen php-5.3.x]# cp ZendGuardLoader.so /usr/local/php5/lib/php/

[root@yangwen php-5.3.x]# vi /usr/local/php5/php.ini 

在php.ini文件中添加以下两行

3、 配置nginx支持php环境

1)启用php-fpm进程

[root@yangwen ~]# cd /usr/local/php5/etc/

[root@yangwen etc]# cp php-fpm.conf.default php-fpm.conf

[root@yangwen etc]# useradd -M -s /sbin/nologin php

[root@yangwen etc]# vi php-fpm.conf


修改完成之后保存,然后执行:/usr/local/sbin/php-fpm

Netstat -anpt | grep php-fpm

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

[root@yangwen etc]# netstat -anpt | grep php-fpm

tcp        0      0 127.0.0.1:9000              0.0.0.0:*                   LISTEN      38954/php-fpm       

2)修改nginx脚本文件,使php-fpm自动运行

Vi  /etc/init.d/nginx

在最后esac后面添加下面内容

3) 配置nginx支持解析php

[root@yangwen ~]# vim /usr/local/nginx/conf/nginx.conf

在server区域里面添加下面几行(有注释)

注:fastcgi_pass 127.0.0.1:9000;    指定php-fpm的监听地址

include fastcgi.conf;        加载默认的FastCGI配置

[root@yangwen ~]# service nginx reload

4、 php页面测试

编写一个网页test.php,内容如下:

在浏览器测试,显示ok说明连接数据库正常。

四、 部署web应用(搭建动态网站)

1、 下载网站代码

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

cp SKYUC_3.4.2_for_php5.3.zip /

unzip /SKYUC_3.4.2_for_php5.3.zip 

2、设置权限

[root@yangwen /]# cd SKYUC.v3.4.2.SOURCE/

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

[root@yangwen SKYUC.v3.4.2.SOURCE]# cd /var/www/google/skyuc/

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

3、创建数据库、用户yangwen

4、安装网站

谢谢观看,真心的希望能帮到您!


本文出自 “一盏烛光” 博客,谢绝转载!

Linux Squid透明代理+ACL访问控制+日志分析
Linux 教你使用shell脚本15分钟部署LNMP
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }