Nginx之静态文件服务器的搭建

1.概述

静态文件服务器是指提供HTML文件访问或客户端 可直接从中下载文件的Web服务器。对于图片、 JavaScript或CSS文件等渲染页面外观的、不会动态改 变内容的文件,大多数网站会单独提供以静态文件服 务器的方式对其进行访问,实现动静分离的架构。

HTML是一种标记语言,提供HTML文件读取是Web服 务器最基本的功能,Web服务器的配置样例如下:

复制代码
server {
    listen 8080;
    root /opt/nginx-web/www; #存放静态文件的文件目录
    location / {
        index index.html;
    }
    location /js {
        alias /opt/nginx-web/static/js/; #存放JavaScript文件的文件目录
        index index.html;
    }
}

在以上配置中,每个server指令域等同于一个虚 拟服务器,每个location指令域等同于一个虚拟目录

2.实验

按照上述配置后,我们在/opt/nginx-web/www下放置一个index.html文件

复制代码
#1.查看配置文件
[root@ansible01 nginx]# cat nginx.conf |grep -v "#"|grep -v "^$"
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
    worker_connections 1024;
}
http {
    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  /var/log/nginx/access.log  main;
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 4096;
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
    include /etc/nginx/conf.d/*.conf;
    server {
        listen       8080;
        listen       [::]:8080;
        server_name  11.0.1.18;
        root         /opt/nginx-web/www;
        include /etc/nginx/default.d/*.conf;
        location / {
            index  index.html index.htm;
        }
        error_page 404 /404.html;
        location = /404.html {
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }
}
#2.查看index.html文件
[root@ansible01 nginx]# cat /opt/nginx-web/www/index.html 
hello world
#3.重载nginx配置文件
[root@ansible01 nginx]# nginx -s reload
#4.关闭防火墙
[root@ansible01 nginx]# systemctl stop firewalld
#5.关闭selinux
[root@ansible01 nginx]# setenforce 0
[root@ansible01 nginx]# getenforce 
Permissive

直接在windows用浏览器访问:11.0.1.18:8080

2.1 基于域名的虚拟主机

2.1.1 nginx配置

复制代码
[root@ansible01 nginx]# cat nginx.conf |grep -v "#"|grep -v "^$"
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
    worker_connections 1024;
}
http {
    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  /var/log/nginx/access.log  main;
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 4096;
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
    include /etc/nginx/conf.d/*.conf;
    server {
        listen       80;
        listen       [::]:80;
        server_name  www.a.com;
        root         /opt/nginx-web/www/a/;
        include /etc/nginx/default.d/*.conf;
        location / {
            index  index.html index.htm;
        }
        error_page 404 /404.html;
        location = /404.html {
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }
    server {
        listen       80;
        listen       [::]:80;
        server_name  www.b.com;
        root         /opt/nginx-web/www/b/;
        include /etc/nginx/default.d/*.conf;
        location / {
            index  index.html index.htm;
        }
        error_page 404 /404.html;
        location = /404.html {
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }
}

2.1.2 准备静态文件

复制代码
[root@ansible01 nginx]# cat /opt/nginx-web/www/a/index.html 
hello,this is www.a.com
[root@ansible01 nginx]# cat /opt/nginx-web/www/b/index.html 
hello,this is www.b.com

2.1.3 重启服务,增加ip域名映射

复制代码
[root@ansible01 nginx]# nginx -s reload
[root@ansible01 nginx]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
11.0.1.18 www.a.com
11.0.1.18 www.b.com

2.1.4 测试

复制代码
[root@ansible01 nginx]# curl www.a.com
hello,this is www.a.com
[root@ansible01 nginx]# curl www.b.com
hello,this is www.b.com

2.2 基于端口的虚拟主机

2.2.1 nginx配置

复制代码
[root@ansible01 nginx]# cat nginx.conf |grep -v "#"|grep -v "^$"
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
    worker_connections 1024;
}
http {
    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  /var/log/nginx/access.log  main;
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 4096;
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
    include /etc/nginx/conf.d/*.conf;
    server {
        listen       80;
        listen       [::]:80;
        server_name  www.test.com;
        root         /opt/nginx-web/www/a/;
        include /etc/nginx/default.d/*.conf;
        location / {
            index  index.html index.htm;
        }
        error_page 404 /404.html;
        location = /404.html {
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }
    server {
        listen       81;
        listen       [::]:81;
        server_name  www.test.com;
        root         /opt/nginx-web/www/b/;
        include /etc/nginx/default.d/*.conf;
        location / {
            index  index.html index.htm;
        }
        error_page 404 /404.html;
        location = /404.html {
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }
}

2.2.2 重启服务,增加IP域名映射

复制代码
[root@ansible01 nginx]# nginx -s reload
[root@ansible01 nginx]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
11.0.1.18 www.a.com
11.0.1.18 www.b.com
11.0.1.18 www.test.com

2.2.3 测试

复制代码
[root@ansible01 nginx]# curl www.test.com:80
hello,this is www.a.com
[root@ansible01 nginx]# curl www.test.com:81
hello,this is www.b.com

2.3 基于IP的虚拟主机

2.3.1 nginx配置

复制代码
[root@ansible01 nginx]# cat nginx.conf |grep -v "#"|grep -v "^$"
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
include /usr/share/nginx/modules/*.conf;
events {
    worker_connections 1024;
}
http {
    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  /var/log/nginx/access.log  main;
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 4096;
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
    include /etc/nginx/conf.d/*.conf;
    server {
        listen       11.0.1.18:80;
        server_name  www.test.com;
        root         /opt/nginx-web/www/a/;
        include /etc/nginx/default.d/*.conf;
        location / {
            index  index.html index.htm;
        }
        error_page 404 /404.html;
        location = /404.html {
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }
    server {
        listen       11.0.1.19:80;
        server_name  www.test.com;
        root         /opt/nginx-web/www/b/;
        include /etc/nginx/default.d/*.conf;
        location / {
            index  index.html index.htm;
        }
        error_page 404 /404.html;
        location = /404.html {
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }
}

2.3.2 重启服务

复制代码
[root@ansible01 nginx]# nginx -s reload

2.3.3 测试

复制代码
[root@ansible01 nginx]# curl 11.0.1.18
hello,this is www.a.com
[root@ansible01 nginx]# curl 11.0.1.19
hello,this is www.b.com
相关推荐
七夜zippoe7 小时前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann
盟接之桥7 小时前
盟接之桥说制造:引流品 × 利润品,全球电商平台高效产品组合策略(供讨论)
大数据·linux·服务器·网络·人工智能·制造
Fcy6488 小时前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满8 小时前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠8 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
主机哥哥9 小时前
阿里云OpenClaw部署全攻略,五种方案助你快速部署!
服务器·阿里云·负载均衡
Harvey9039 小时前
通过 Helm 部署 Nginx 应用的完整标准化步骤
linux·运维·nginx·k8s
珠海西格电力科技10 小时前
微电网能量平衡理论的实现条件在不同场景下有哪些差异?
运维·服务器·网络·人工智能·云计算·智慧城市
释怀不想释怀10 小时前
Linux环境变量
linux·运维·服务器
zzzsde10 小时前
【Linux】进程(4):进程优先级&&调度队列
linux·运维·服务器