nginx网站服务于虚拟主机
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx网站服务于虚拟主机相关的知识,希望对你有一定的参考价值。
nginx网站服务于虚拟主机
1:nginx的优点:
稳定性高
系统资源消耗低
http并发量处理能力好可支持30000-50000个并发请求
主要用于静态页面
以线程为单位,一个进程对应多个用户,(线程很少占用系统资源)
2:与Apache的对比:
Apache主要用于动态页面
支持功能多
稳定性能高
Apache以进程为单位,一个用户对应一个进程(一对一)
3:nginx主要用于:电商,网站,社交,门户......
4:安装及控制nginx
1.安装支持软件
[[email protected] ~]# yum -y install pcre-devel zlib-devel
2.创建运行用户、组
[[email protected] ~]# useradd -M -s /sbin/nologin nginx
3.编译安装nginx
启用状态统计模块以支持状态统计,便于查看服务器的连接信息
[[email protected] nginx-1.6.2]# ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module(状态统计模块)
[[email protected] nginx-1.6.2]# make&&make install
4.添加符号链接,以便通过nginx命令就可以调用nginx的主程序
[[email protected] nginx-1.6.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin
2.启动和停止nginx
[[email protected] nginx-1.6.2]# nginx
3.检查nginx的监听端口,或通过浏览器访问
[[email protected] 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
[[email protected] nginx-1.6.2]# killall -s HUP nginx
4.退出nginx
[[email protected] 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.修改完配置文件后,重新加载下配置文件
[[email protected] nginx-1.6.2]# killall -s HUP nginx
四、构建基于域名的虚拟web主机
1.准备网站目录以及测试文件
[[email protected] nginx-1.6.2]# mkdir -p /var/www/benet
[[email protected] nginx-1.6.2]# echo "<h1>www.benet.com</h1>">/var/www/benet/index.html
[[email protected] nginx-1.6.2]# mkdir -p /var/www/accp
2.[[email protected] nginx-1.6.2]# echo "<h1>www.accp.com</h1>">/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.重新加载
[[email protected] nginx-1.6.2]# killall -s QUIT nginx
[[email protected] nginx-1.6.2]# nginx
4.测试
五、构建LNMP架构及应用部署
1.安装mysql数据库(略,直接启动mysql服务器)
2.安装php解析环境
说明:较新保本(如5.3)php已经自带FPM(fastCGI Process Manager FastCGI进程管理器)模块,用来对php解析实例进行管理、优化解析效率。需要启用--enable-fpm以启用此模块
(1)编译安装php
[[email protected] ~]# yum -y install gd libxml2-devel libjpeg-devel libpng-devel
[[email protected]~]#cd /usr/src/php-5.3.28
[[email protected] 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
[[email protected] php-5.3.28]#make &&make install
(2)安装后的调整
[[email protected] php-5.3.28]# cp php.ini-development /usr/local/php5/php.ini
[[email protected] php-5.3.28]# ln -s /usr/local/php5/bin/* /usr/local/bin
[[email protected] php-5.3.28]# ln -s /usr/local/php5/sbin/* /usr/local/sbin
[[email protected] php-5.3.28]#
3.配置nginx支持php环境
有两种让nginx支持php的方法
l 充当中介,将访问php页面的web请求转交给其他的服务器(lamp)去处理
l 通过使用php的FPM模块来调用本机的php环境
(1)启用php-fpm进程
[[email protected] 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
[[email protected] etc]# /usr/local/sbin/php-fpm
(2)配置nginx:完全支持php解析
说明:无论使用哪一种解析方式都需要server中进行配置
[[email protected] 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模块配置
}
}
}
[[email protected] vod]# killall -s QUIT nginx
[[email protected] vod]# nginx
3)php页面访问测试
l [[email protected] vod]# mysqladmin -u root -p password ‘123456‘
l #service mysqld start //启动数据库
l 在/var/www/lxf下创建一个测试页面test.php
vim /var/www/lxf/test.php
<?php
$link=mysql_connect(‘localhost‘,‘root‘,‘pwd123‘);
if ($link) echo "<h1>恭喜你,数据库连接成功</h1>";
mysql_close();
?>
六、LNMP平台的应用--部署天空网络电影系统
1.下载并部署程序代码
[[email protected] ~]# unzip SKYUC_3.4.2_for_php5.3.zip -d /usr/src
[[email protected] ~]# cd /usr/src/SKYUC.v3.4.2.SOURCE/
[[email protected] SKYUC.v3.4.2.SOURCE]# mv wwwroot/ /var/www/lxf/skyuc
[[email protected] SKYUC.v3.4.2.SOURCE]# cd /var/www/vlxf/skyuc/
[[email protected] skyuc]# chown -R php:php admincp/ data/ templates/ upload/
[[email protected] skyuc]#
2.创建数据库
为了降低web应用程序对数据库的风险,建议设置专用的数据库以及授权用户[[email protected] skyuc]# mysql -u root -p
mysql> create database skyucdb;
mysql> grant all on skyucdb.* to [email protected] identified by ‘[email protected]‘;
验证:
本文出自 “apache” 博客,请务必保留此出处http://xiaorenwutest.blog.51cto.com/12754924/1912588
以上是关于nginx网站服务于虚拟主机的主要内容,如果未能解决你的问题,请参考以下文章