配置nginx大多数情况下是我们想让他顺利支持我们的虚拟主机,那么什么是虚拟主机呢,偶抄来的解释如下:
虚拟主机--使用特殊的软硬件技术,把一台运行在因特网上的服务器主机分成一台台“虚拟”的主机,每台虚拟主机都可以是一个独立的网站,可以具有独立的域名,具有完整的Internet服务器功能(WWW,FTP,Email 等),同一台主机上的虚拟主机之间是完全独立的。从网站访问者来看,每一台虚拟主机和一台独立的主机完全一样。
解释下主配置文件部分配置
#使用的用户和组
user nobody;
#指定的工作衍生进程数(一般等于CPU的总核数或者总核数的两倍,例如两个四核CPU,总核数为8)
worker_processes 1;
#指定错误日志存放路径,错误日志记录级别可以为[ debug | info | notice | warn | error | crit ]
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#指定pid存放的路径
#pid logs/nginx.pid;
events {
#允许的链接数
worker_connections 1024;
}
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压缩
#gzip on;
..................
跟apache一样,Nginx也可以配置多种类型的虚拟主机:基于ip、基于域名、基于端口
一、配置基于IP的虚拟主机
Linux、FreeBSD都允许添加IP别名(IP别名:在一块物理网卡上绑多个IP地址),这样就能够在使用单一网卡的服务器上运行多个基于IP的虚拟主机。配置步骤如下:
--运行ifconfig查看该服务起的IP地址(让你看看偶的虚拟机地址哈):
-- 现在我们添加新的IP地址
ifconfig eth0:1 10.0.2.16 broadcast 10.0.2.255 netmasK 255.255.255.0 up
route add -host 10.0.2.16 dev eth0:1
现在再看下我们的IP地址呀
从另外一台服务器ping 这两个ip,能ping通,则证明配置正确无误。别忘了把刚才配置命令写在(/etc/rc.local)中,让系统开机的时候自动运行。因为ifcofnig和route配置的IP别名无法在机器从启动后继续保存。
-- 现在配置支持ip的虚拟主机
server { listen 10.0.2.15:80; server_name 10.0.2.15; location / { root /var/www/nginx/iptest/; index index.html index.htm; } }
由此可见,一个sever就是一个虚拟机server { listen 10.0.2.16:80; server_name 10.0.2.16; location / { root /var/www/nginx/iptest/; index index.html index.htm; } }
二、配置基于域名的虚拟主机
这个偶就不多说了呀,都是仅支持静态文件。server{ server_name www.nginxtest.com; location / { root /var/www/nginx; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } server { listen 80; server_name www.newnginx.com; location / { root /var/www/nginx/domaintest/; index index.html index.htm; } }
三、nginx 的自动列目录配置
我们有时候会看见一些开源软件的下载页面是能够自动列目录的,这个功能Apache会实现,那么nginx,当然也可以实现。只要我们在nginx.conf中加入如下配置
或者http { autoindex on; }
server { listen 80; server_name www.newnginx.com; location / { #开启自动列目录配置 autoindex on; root /var/www/nginx/domaintest/; index index.html index.htm; } }
注意呀:你如果想让你的目录下自动列出目录配置,那那个目录就不能包含所指定的文件index index.html index.htm;
四、Nginx 的浏览器本地缓存设置
浏览器缓存(Browser Caching) 是为了加速浏览并节约网络资源,浏览器在用户磁盘上对最近请求过的文档进行存储。
nginx可以通过 expires 指令来设置浏览器的Header,expires指令语法如下:
语法:expires [ time | epoch | max | off ]
默认:expires off
作用域:http 、 server 、 location