nginx web搭建及虚拟主机头
1.构建 Nginx WEB 服务器
入门简介:
Nginx [engine x]是 Igor Sysoev 编写的一个 HTTP 和反向代理服务器,另外它也可以作为邮件 代理服务器。 它已经在众多流量很大的俄罗斯网站上使用了很长时间,这些网站包括 Yandex、Mail.Ru、VKontakte,以及 Rambler。 据 Netcraft 统计,在 2012 年 8 月份,世界上最繁忙的网站中有 11.48%使用 Nginx 作为其服 务器或者代理服务器。目前互联网主流公司 360、百度、新浪、腾讯、阿里等都在使用 nginx 作为自己的 web 服务器。 Nginx 由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅 仅通过查找配置文件将客户端请求映射到一个 location block(location 是 Nginx 配置中的一 个指令,用于 URL 匹配),而在这个 location 中所配置的每个指令将会启动不同的模块去完 成相应的工作。
Nginx 相对于 Apache 优点:
1)高并发响应性能非常好,官方 Nginx 处理静态文件并发 5w/s
2)反向代理性能非常好。(可用于负载均衡)
3)内存和 cpu 占用率低。(为 Apache 的 1/5-1/10)
4)功能较 Apache 少(常用功能均有)
5)对 php 可使用 cgi 方式和 fastcgi 方式。
2.Nginx WEB 安装配置
首先需要安装 pcre 库,然后再安装 Nginx:
安装 pcre 支持 rewrite 库,也可以安装源码,注*安装源码时,指定 pcre 路径为解压 源码的路径,而不是编译后的路径,否则会报错
2.1.下载依赖包
yum install -y gcc pcre pcre-deve openssl openssl-deve gd gd-deve
2.2.下载nginx源码包
wget -c http://nginx.org/download/nginx-1.4.2.tar.gz
2.3解压 Nginx 源码包
tar -xzf nginx-1.4.2.tar.gz
#此步不重要 进入解压目录,然后 sed 修改 Nginx 版本信息为 WS
cd nginx-1.4.2 ; sed -i -e 's/1.4.2//g' -e 's/nginx//WS/g' -e 's/"NGINX"/"WS"/g' src/core/nginx.h
#预编译Nginx
useradd -s /sbin/nologin nginx #不能登录系统的用户./configure --user=nginx --group=nginx --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module
6.> --prefix=/usr/local/nginx \ //指定安装路径
7.> --user=nginx \ //指定用户
8.> --group=nginx \ //指定组
9.> --with-http_ssl_module //开启SSL加密功能
#.configure 预编译成功后,执行 make 命令进行编译
make && make install
#自此 Nginx 安装完毕 /usr/local/nginx/sbin/nginx -t 检查 nginx 配置文件是否正确,返回 OK 即正确。
]# /usr/local/nginx/sbin/nginx -t
启动 nginx
/usr/local/nginx/sbin/nginx 回车即可。查看进程是否已启动:
ps -ef |grep nginx 查看是否启动
3.Nginx 虚拟主机配置
3.1. #去掉 nginx 配置文件中的#号开 头的行和空行,并将结果追加到 nginx.conf.swp 文件中
cat nginx.conf | grep -v '#' |grep -v '^$' >>nginx.conf.swp
cp nginx.conf nginx.conf.bak #将原 nginx.conf 备份(可以用&&连起来执行)
rm -rf nginx.conf #然后删除
mv nginx.conf.swp nginx.conf #然后将 nginx.conf.swp 重命名为 nginx.conf
vim nginx.conf #在末尾添加 include vhosts/*.conf;
include vhosts/*.conf;
3.2.配置多主机头
mkdir -p /usr/local/nginx/conf/vhosts/ #创建存放多主机头的目录
touch /usr/local/nginx/conf/vhosts/server.conf #创建有主机头配置文件
mkdir -p /usr/local/nginx/conf/vhosts/{jingdong,taobao} #创建两个存放页面的目录
vim /usr/local/nginx/conf/vhosts/server.conf #编写多主机头的配置文件
server {
listen 80;
server_name localhost;
location / {
root /usr/local/nginx/conf/vhosts/jingdong;
index index.html index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
} #原本的是这个样子的端口 80 跟目录为 html,首页为 index.html
server {
listen 81;
server_name localhost;
location / {
root /usr/local/nginx/conf/vhosts/taobao;
index index.html;
}
}—————————————————————————————————————————————————————
配置虚拟主机头可以在源文件/usr/local/nginx/conf/nginx.conf里的https模块中添加
server {
listen 80; #//端口
server_name localhost; #//域名
location / {
root /usr/local/nginx/conf/vhosts/jingdong; #//指定网站根路径
index index.html index.html;
}
} #原本的是这个样子的端口 80 跟目录为 html,首页为 index.html
server {
listen 81; #//端口
server_name localhost; #//域名
location / {
root /usr/local/nginx/conf/vhosts/taobao; #//指定网站根路径
index index.html;
}
}—————————————————————————————————————————————————————
分别在 jingdong 和 taobao 目录下创建 2 个 index.html 页面,写上 jingdong 和 taobao 为了访问的时候好区分开。
cd /usr/local/nginx/conf/vhosts/jingdong
echo "jingdong" > index.html
taobao一样操作
然后重启 nginx 然后用谷歌浏览器访问 80 和 81 端口如下
/usr/local/nginx/sbin/nginx -s restart
netstat -tunlp | grep ngins
浏览器访问192.168.1.10:80
显示jingdong
浏览器访问192.168.1.10:81
显示taobao
至此 nginx 虚拟主机多主机头配置完成!