使用Nginx搭建一个静态Web服务器

使用Nginx搭建一个静态web服务器

1. 理解Nginx配置文件语法

conf目录中存放了nginx相关的配置文件
nginx主配置文件为nginx.conf

可以使用sed命令去掉配置文件中的注释,这样可以更方便的查看与操作:

sed -i '/^[[:space:]]*#/'d nginx.conf

在这里插入图片描述
在这里插入图片描述

其中的语法为:

http {
    ...
    ...
    server {
        ...
        ...
        location ... {
            ...
            ...
        }
       
    }
    server {
        ...
        ...
    }
}

从上述语法配置示例可以看出:上述示例可以分为几个逻辑部分,http部分、server部分、location部分。
或者说,上述示例可以分为几个逻辑块:http块、server块、location块,每个"配块"都是使用大括号{ }作为分界线的。

而且从缩进可以看出,它们是有层级关系的。http中可以配量多个server,一个server中可以配多个location。

我们知道,nginx最基础的功能就是用来提供http服务,所以跟http有关的公共配置,可以放在http块中,http块中又可以配置多个server

  • 那么server代表了什么呢?我们在一台主机中安装了nginx,那么能不能让这台nginx主机同时提供多个web服务呢?答案是肯定的。每一个server就代表一个http服务,我们可以同时配多个server,以便同时提供多个http服务,不同的server可以使用不同的配置,写入到某个server块中的配置只对对应的http服务生效,如果多个server存在共同的公用配置,则可以将共同的配写在http块中,以便多个server共享这些配置,一个server块中又可以有一个或多个location。
  • location又是什么意思呢?当我们访问一个网络上的资源时,都是通过url访问的。你可以把location当做url的一部分。此处,我们使用如下url作为示例: http://www.haha.org/haha/1591 ,上述链接中的 /haha 部分就是一个location, 我们可以通过location将url的路径和服务器的某个目录建立起关联关系。再比如当我们访问"http://172.25.1.1/"这个url时,这个url的最后一个"/"其实就是location
  • location块中有两条配通指令,它们分别是root和index
    root配置指令的意思是:当前location所对应的文档根目录是哪里root html;表示当前location的文档根目录是htmI目录。
  • 那么"文档根目录"又是什么意思呢?说白了,文档根目录的意思就是当有人访问"/"这个路径时,去服务器的哪个目录中找对应的资源

举个例子:

如果我在htmI目录中放了一张图片,图片名为a.jpg,那么我就能通过"http://172.25.254.1/a.jpg"访问到这张图片
url中的"/"对应了"location /“配置段,而"location/“又对应到了服务器的htmI目录,所以url中的”/“就与服务器的html目录建立了对应关系
当我们访问"http://172.25.0.1/a.jpg"这个地址时,其实访问的是服务器上htmI目录中的a.jpg
再换句话说,htmI目录就是当前location的资源目录。
注意:上例中的htmI路径是一个相对路径,表示nginx安装目录中的html目录,因为我将nginx安装到了/usr/local/nginx目录中
所以上例中的html目录的绝对路径就是”/usr/local/nginx/html/”

2. 搭建静态Web服务器

注意:这个实验需要虚拟机server1和server2,其中server1作为nginx服务器,server2安装apache服务

step1 修改配置文件

在server1中:

cd /usr/local/nginx
cd conf/
vim nginx.conf
http {
    include       mime.types;
    default_type  application/octet-stream;
        upstream kane {
                server 172.25.1.2:80;
}

...

server{ 
        listen 80;
        server_name www.kane.org;
        location / {
                proxy_pass http://kane;
}
}

在这里插入图片描述
在这里插入图片描述

nginx -t	       #语法检测
nginx -s reload	   #在不暂停服务的情况下重新加载

在这里插入图片描述

step2 写默认发布页面
在server2中:

yum install httpd -y
vim /var/www/html/index.html
server2
systemctl restart httpd

step3 添加解析
在客户端(真机)中:

vim /etc/hosts
172.25.1.1 www.kane.org

step4 测试
在客户端(真机)中:

curl www.kane.org

在这里插入图片描述

发布了175 篇原创文章 · 获赞 11 · 访问量 6060

猜你喜欢

转载自blog.csdn.net/weixin_45775963/article/details/104533292