Nginx虚拟主机配置
2015-11-19 16:02
447 查看
Nginx虚拟主机配置
利用虚拟主机技术,可以把一台真正的主机分成许多"虚拟"的主机,每一台虚拟主机都具有独立的域名和IP地址,具有完整的Internet服务器(www, FTP,email)功能。 虚拟主机之间完全独立,在外界看来,每一台虚拟主机和一台独立的主机完全一样。目前生产环境中,大多数服务提供商都采用了虚拟主机的方式为客户提供web服务,虚拟主机包括基于IP的虚拟主机,基于端口的虚拟主机和基于名称的虚拟主机,本实验中以基于名称实现虚拟服务器。
1、创建虚拟主机对应的目录及网页
进入/usr/local/nginx/html目录创建jason1、jason2文件夹并设置index.html页面[root@jason1html]#cd /usr/local/nginx/html/jason2
[root@jason1jason2]# pwd
/usr/local/nginx/html/jason2
[root@jason1jason2]# ls
index.html
[root@jason1jason2]# cd /usr/local/nginx/html/jason1
[root@jason1jason1]# ls
index.html
[root@jason1jason1]# pwd
/usr/local/nginx/html/jason1
2、配置虚拟主机,如下:
user nobody;
worker_processes 1;
pid nginx.pid;
error_log logs/error.log notice;
worker_rlimit_nofile 65535;
events{
worker_connections 65535;
use epoll;
}
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"';
log_format download '$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;
client_max_body_size 20M;
client_header_buffer_size 4k;
large_client_header_buffers 4 8k;
client_header_timeout 10;
client_body_timeout 10;
send_timeout 10;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 60;
gzip on;
gzip_min_length 1k;
gzip_http_version 1.1;
gzip_buffers 4 8k;
gzip_comp_level 2;
gzip_types text/plain application/x-javascripttext/css application/xml;
gzip_vary on;
server {
listen80;
server_name www.jason1.com;
access_log logs/access.log main;
server_name_in_redirect off;
location / {
index index.html;
root/usr/local/nginx/html/jason1;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/nginx/html;
}
location /status {
stub_status on;
access_log/usr/local/nginx/logs/status.log;
auth_basic"NginxStatus";
auth_basic_user_file/usr/local/nginx/conf/htpasswd;}
location ~ /\.ht {
deny all;
}
}
server {
listen 80;
server_name www.jason2.com;
access_log logs/access.log main;
server_name_in_redirect off;
location / {
index index.html;
root /usr/local/nginx/html/jason2;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/nginx/html;
}
location /status {
stub_status on;
access_log/usr/local/nginx/logs/status.log;
auth_basic"NginxStatus";
auth_basic_user_file/usr/local/nginx/conf/htpasswd;}
location ~ /\.ht {
deny all;
}
}
}备注:红色字体为虚拟主机配置部分。(1)虚拟主机设置:listen80;
server_name www.jason1.com;
access_log logs/access.log main;
server_name_in_redirect off;
location / {
index index.html;
root /usr/local/nginx/html/jason1;
}
设置虚拟主机www.jason1.com,页面文件根目录为/usr/local/nginx/html/jason1。相同方法设置另外一台虚拟主机。(2)、nginx虚拟主机状态每台虚拟主机开启nginx运行状态,编译nginx时需要加入--with-http_stub_status_module模块开启状态检测。location/status { stub_statuson;
access_log/usr/local/nginx/logs/status.log;
auth_basic "NginxStatus";
auth_basic_user_file/usr/local/nginx/conf/htpasswd;}
由于Nginx的auth_basic认证采用的是与apache兼容的密码文件,因此创建密码文件可使用apache的htpasswd工具生成密码文件。账户密码都设置为admin。
[root@jason1 nginx]# /usr/bin/htpasswd -c/usr/local/nginx/conf/htpasswd admin
New password:
Re-type new password:
Adding password for user admin
[root@jason1 nginx]
备注:若未设置auth_basic与auth_basic_user_file参数,查看nginx状态时无需输入账户与密码。
3、启动nginx通过web页面访问,本实验环境中午DNS服务器,在客户端主机hosts文件中加入ip地址与域名的对应关系进行访问。
访问主机二:
访问主机一:
查看nginx状态
输入账户与密码admin,点击确定。
虚拟主机2状态查看
输入账户与密码admin,点击确定。
Active connections: 对后端发起的活动连接数.
Server accepts handled requests: Nginx总共处理了142个连接,成功创建142次握手,总共处理了120个请求.
Reading: Nginx 读取到客户端的Header信息数.
Writing: Nginx 返回给客户端的Header信息数.
Waiting: 开启keep-alive的情况下,这个值等于 active – (reading + writing),意思就是Nginx已经处理完成,正在等候下一次请求指令的驻留连接数.所以,在访问效率高,请求很快被处理完毕的情况下,Waiting数比较多是正常的.如果reading +writing数较多,则说明并发访问量非常大,正在处理过程中。
利用虚拟主机技术,可以把一台真正的主机分成许多"虚拟"的主机,每一台虚拟主机都具有独立的域名和IP地址,具有完整的Internet服务器(www, FTP,email)功能。 虚拟主机之间完全独立,在外界看来,每一台虚拟主机和一台独立的主机完全一样。目前生产环境中,大多数服务提供商都采用了虚拟主机的方式为客户提供web服务,虚拟主机包括基于IP的虚拟主机,基于端口的虚拟主机和基于名称的虚拟主机,本实验中以基于名称实现虚拟服务器。
1、创建虚拟主机对应的目录及网页
进入/usr/local/nginx/html目录创建jason1、jason2文件夹并设置index.html页面[root@jason1html]#cd /usr/local/nginx/html/jason2
[root@jason1jason2]# pwd
/usr/local/nginx/html/jason2
[root@jason1jason2]# ls
index.html
[root@jason1jason2]# cd /usr/local/nginx/html/jason1
[root@jason1jason1]# ls
index.html
[root@jason1jason1]# pwd
/usr/local/nginx/html/jason1
2、配置虚拟主机,如下:
user nobody;
worker_processes 1;
pid nginx.pid;
error_log logs/error.log notice;
worker_rlimit_nofile 65535;
events{
worker_connections 65535;
use epoll;
}
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"';
log_format download '$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;
client_max_body_size 20M;
client_header_buffer_size 4k;
large_client_header_buffers 4 8k;
client_header_timeout 10;
client_body_timeout 10;
send_timeout 10;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 60;
gzip on;
gzip_min_length 1k;
gzip_http_version 1.1;
gzip_buffers 4 8k;
gzip_comp_level 2;
gzip_types text/plain application/x-javascripttext/css application/xml;
gzip_vary on;
server {
listen80;
server_name www.jason1.com;
access_log logs/access.log main;
server_name_in_redirect off;
location / {
index index.html;
root/usr/local/nginx/html/jason1;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/nginx/html;
}
location /status {
stub_status on;
access_log/usr/local/nginx/logs/status.log;
auth_basic"NginxStatus";
auth_basic_user_file/usr/local/nginx/conf/htpasswd;}
location ~ /\.ht {
deny all;
}
}
server {
listen 80;
server_name www.jason2.com;
access_log logs/access.log main;
server_name_in_redirect off;
location / {
index index.html;
root /usr/local/nginx/html/jason2;
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/nginx/html;
}
location /status {
stub_status on;
access_log/usr/local/nginx/logs/status.log;
auth_basic"NginxStatus";
auth_basic_user_file/usr/local/nginx/conf/htpasswd;}
location ~ /\.ht {
deny all;
}
}
}备注:红色字体为虚拟主机配置部分。(1)虚拟主机设置:listen80;
server_name www.jason1.com;
access_log logs/access.log main;
server_name_in_redirect off;
location / {
index index.html;
root /usr/local/nginx/html/jason1;
}
设置虚拟主机www.jason1.com,页面文件根目录为/usr/local/nginx/html/jason1。相同方法设置另外一台虚拟主机。(2)、nginx虚拟主机状态每台虚拟主机开启nginx运行状态,编译nginx时需要加入--with-http_stub_status_module模块开启状态检测。location/status { stub_statuson;
access_log/usr/local/nginx/logs/status.log;
auth_basic "NginxStatus";
auth_basic_user_file/usr/local/nginx/conf/htpasswd;}
由于Nginx的auth_basic认证采用的是与apache兼容的密码文件,因此创建密码文件可使用apache的htpasswd工具生成密码文件。账户密码都设置为admin。
[root@jason1 nginx]# /usr/bin/htpasswd -c/usr/local/nginx/conf/htpasswd admin
New password:
Re-type new password:
Adding password for user admin
[root@jason1 nginx]
备注:若未设置auth_basic与auth_basic_user_file参数,查看nginx状态时无需输入账户与密码。
3、启动nginx通过web页面访问,本实验环境中午DNS服务器,在客户端主机hosts文件中加入ip地址与域名的对应关系进行访问。
访问主机二:
访问主机一:
查看nginx状态
输入账户与密码admin,点击确定。
虚拟主机2状态查看
输入账户与密码admin,点击确定。
Active connections: 对后端发起的活动连接数.
Server accepts handled requests: Nginx总共处理了142个连接,成功创建142次握手,总共处理了120个请求.
Reading: Nginx 读取到客户端的Header信息数.
Writing: Nginx 返回给客户端的Header信息数.
Waiting: 开启keep-alive的情况下,这个值等于 active – (reading + writing),意思就是Nginx已经处理完成,正在等候下一次请求指令的驻留连接数.所以,在访问效率高,请求很快被处理完毕的情况下,Waiting数比较多是正常的.如果reading +writing数较多,则说明并发访问量非常大,正在处理过程中。
相关文章推荐
- Seafile Server本地权限提升漏洞(CVE-2014-5443)
- 从USB安装Ubuntu Server 10.04.3 图文详解
- 使用zabbix监控Nginx活动状态--Part1
- 高效访问Internet-启用ISA Server的缓存
- windows server域用户提升到本地更高权限组中的方法
- 互联网业内的迷雾 谨慎选择虚拟主机
- 选定虚拟主机 性能凸显优势
- 完美解决SQL Server 安装问题:以前的某个程序安装已在安装计算机上创建挂起的文件操作
- 开通虚拟主机时提示Server.CreateObject失败的解决办法
- IIS 错误 Server Application Error 详细解决方法
- 在WINXP系统上安装SQL Server企业版的方法
- SQL Server 存储过程的分页
- 用vbs实现虚拟主机和域名查循的脚本
- SQL Server复制需要有实际的服务器名称才能连接到服务器
- SQL Server 2000向SQL Server 2008 R2推送数据图文教程
- SQL server 表操作介绍
- SQL Server 2000 注入防护大全(二)
- SQL Server 2000 注入防护大全(一)
- 怎样把Windows server 2003转换成工作站系统
- Windows Server 2007四月CTP发布 下载