- server {
- listen 80;
- server_name localhost;
- #默认编码
- charset utf-8;
- # access_log logs/host.access.log main;
- location / {
- #定义虚拟主机的资源目录,无论win或linux都要写成正斜杠
- root C:/Users/zhang/Desktop/new;
- #定义首页文件的名字
- index index.html index.htm;
- }
-
- }
执行命令
- // 检查配置是否正确
- nginx -t
- // 启动
- nginx
- // 重新加载Nginx配置文件
- nginx -s reload
准备资源

访问localhost

访问静态资源

nginx⽀持gzip对资源压缩传输,经过gzip压缩后的⻚⾯⼤⼩可以为原本的30%甚⾄更⼩,⽤户浏览体验会快很多
-
- #user nobody;
- worker_processes 1;
-
- #error_log logs/error.log;
- #error_log logs/error.log notice;
- #error_log logs/error.log info;
-
- #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 on;
- gzip_http_version 1.1;
- gzip_comp_level 4;
- gzip_types text/plain application/javascript
- application/x-javascript text/css application/xml
- text/javascript application/x-httpd-php image/jpeg image/gif
- image/png;
-
- server {
- listen 80;
- server_name localhost;
- #默认编码
- charset utf-8;
- # access_log logs/host.access.log main;
- location / {
- #定义虚拟主机的资源目录,无论win或linux都要写成正斜杠
- root C:/Users/zhang/Desktop/new;
- #定义首页文件的名字
- index index.html index.htm;
- }
-
- }
-
- }
nginx使用的是模块ngx_http_autoindex_module来实现的,该模块处理以斜杠("/")结尾的请求,并生成目录列表。nginx编译的时候会自动加载该模块,但是该模块默认是关闭的,我们需要使用下来指令来完成对应的配置
启用或禁用目录列表输出
| 语法 | autoindex on|off; |
| 默认值 | autoindex off; |
| 位置 | http、server、location |
对应HTLM格式,指定是否在目录列表展示文件的详细大小
默认为on,显示出文件的确切大小,单位是bytes。 改为off后,显示出文件的大概大小,单位是kB或者MB或者GB
| 语法 | autoindex_exact_size on|off; |
| 默认值 | autoindex_exact_size on; |
| 位置 | http、server、location |
设置目录列表的格式
| 语法 | autoindex_format html|xml|json|jsonp; |
| 默认值 | autoindex_format html; |
| 位置 | http、server、location |
注意:该指令在1.7.9及以后版本中出现
对应HTML格式,是否在目录列表上显示时间。
默认为off,显示的文件时间为GMT时间。 改为on后,显示的文件时间为文件的服务器时间
| 语法 | autoindex_localtime on | off; |
| 默认值 | autoindex_localtime off; |
| 位置 | http、server、location |
配置方式如下
- location /download{
- root /usr/local;
- autoindex on;
- autoindex_exact_size on;
- autoindex_format html;
- autoindex_localtime on;
- }
修改nginx.conf支持游览目录
-
- #user nobody;
- worker_processes 1;
-
- #error_log logs/error.log;
- #error_log logs/error.log notice;
- #error_log logs/error.log info;
-
- #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 on;
-
-
- #第一个虚拟主机
- server {
- #监听的端口和ip
- listen 80;
- #主机域名
- server_name www.test1.com;
-
- charset utf-8;
-
- access_log logs/host.access.log;
- #url匹配
- location / {
- #HTML文件存放的目录
- root C:/Users/zhang/Desktop/new/web2;
- #开启目录索引功能
- autoindex on;
- #关闭详细文件大小统计,让文件大小显示MB,GB单位,默认为b;
- autoindex_exact_size off;
- #开启以服务器本地时区显示文件修改日期!
- autoindex_localtime on;
- }
- }
-
- }
访问

-
- #user nobody;
- worker_processes 1;
-
- #error_log logs/error.log;
- #error_log logs/error.log notice;
- #error_log logs/error.log info;
-
- #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 on;
- gzip_http_version 1.1;
- gzip_comp_level 4;
- gzip_types text/plain application/javascript
- application/x-javascript text/css application/xml
- text/javascript application/x-httpd-php image/jpeg image/gif
- image/png;
-
- #第一个虚拟主机
- server {
- #监听的端⼝和ip
- listen 127.0.0.1:80;
- #主机域名
- server_name 127.0.0.1;
-
- charset utf-8;
-
- access_log logs/host.access.log;
- #url匹配
- location / {
- #HTML文件存放的目录
- root C:/Users/zhang/Desktop/new/web1;
- #默认首页文件,从左往右寻找,index.html或是index.htm
- index index.html index.htm;
- }
- }
-
-
-
- #第二个虚拟主机
- server {
- listen 192.168.52.100:80;
- server_name 192.168.52.100;
- location / {
- index index.html index.htm;
- root C:/Users/zhang/Desktop/new/web2;
- }
- }
- }
执行命令
- #重载nginx
- nginx -s reload
访问站点一

访问站点二

基于多IP的虚拟主机可能会造成IP地址不⾜的问题,如果没有特殊需求,更常⽤的是基于多域名的形式。只需要你单独配置DNS服务器,将主机名对应到正确的IP地址,修改Nginx配置,可以识别到不同的主机即可,这样就可以使得多个虚拟主机⽤同⼀个IP,解决了IP不足的隐患。
打开C:\Windows\System32\drivers\etc,配置域名。

-
- #user nobody;
- worker_processes 1;
-
- #error_log logs/error.log;
- #error_log logs/error.log notice;
- #error_log logs/error.log info;
-
- #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 on;
- gzip_http_version 1.1;
- gzip_comp_level 4;
- gzip_types text/plain application/javascript
- application/x-javascript text/css application/xml
- text/javascript application/x-httpd-php image/jpeg image/gif
- image/png;
-
- #第一个虚拟主机
- server {
- #监听的端?和ip
- listen 80;
- #主机域名
- server_name www.test1.com;
-
- charset utf-8;
-
- access_log logs/host.access.log;
- #url匹配
- location / {
- #HTML文件存放的目录
- root C:/Users/zhang/Desktop/new/web1;
- #默认首页文件,从左往右寻找,index.html或是index.htm
- index index.html index.htm;
- }
- }
-
-
-
- #第二个虚拟主机
- server {
- listen 80;
- server_name www.test2.com;
- location / {
- index index.html index.htm;
- root C:/Users/zhang/Desktop/new/web2;
- }
- }
- }
执行命令
- #重载nginx
- nginx -s reload
访问域名1

访问域名2

修改nginx.conf⽀持多域名的虚拟主机
-
- #user nobody;
- worker_processes 1;
-
- #error_log logs/error.log;
- #error_log logs/error.log notice;
- #error_log logs/error.log info;
-
- #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 on;
- gzip_http_version 1.1;
- gzip_comp_level 4;
- gzip_types text/plain application/javascript
- application/x-javascript text/css application/xml
- text/javascript application/x-httpd-php image/jpeg image/gif
- image/png;
-
- #第一个虚拟主机
- server {
- #监听的端口和ip
- listen 80;
- #主机域名
- server_name www.test1.com;
-
- charset utf-8;
-
- access_log logs/host.access.log;
- #url匹配
- location / {
- #HTML文件存放的目录
- root C:/Users/zhang/Desktop/new/web1;
- #默认首页文件,从左往右寻找,index.html或是index.htm
- index index.html index.htm;
- }
- }
-
-
-
- #第二个虚拟主机
- server {
- listen 81;
- server_name www.test1.com;
- location / {
- index index.html index.htm;
- root C:/Users/zhang/Desktop/new/web2;
- }
- }
- }
执行命令
- #重载nginx
- nginx -s reload
访问端口80

访问端口81

1. Nginx的配置文件server中指定两个location执行,分别为root和alias的指令
- location /test/{
- alias /www/test/;
- }
按照上述配置,则访问/test/目录里面的文件时,nginx会去/www/test目录找文件
- location /test/{
- root /www/test;
- }
按照上述配置,则访问/test/目录下的文件时,nginx会去/www/test/test/目录下找文件
2.alias是一个目录别名的定义,root则是最上层目录的定义。
3,另一个区别是alias后面必须要用"/"结束,否则会找不到文件,而root则对"/"可有可无
4.不少人都有误区,认为root是指的/www/test目录下,但是应该是/www/test/test目录