使用Centos7部署静态网站

使用Centos7部署静态网站

我在配置过程中参阅了一些博主的文章,收益很大,在此列出:
【CentOS7快速上手】4、Nginx安装&配置 - Ken的杂谈
在centOs 上搭建nginx来部署静态页面网站 - 会写代码的husky
Nginx web server配置 - freefishz2

首先介绍一下Nginx,Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务(没错,百度百科抄来的~)。Nginx占用内存少,并发能力强,相比老牌的Apache作为web服务器,性能更加卓越。

注意如果是阿里云等服务器,需要在安全组选项中打开相应的端口,否则无法访问

第一步:准备工作

#开放80端口(Nginx默认监听80端口)
firewall-cmd --add-port=80/tcp --permanent
#重载防火墙规则
firewall-cmd --reload
#我们需要在服务器中安装Nginx,在centos上,我们可以直接通过yum来安装Nginx
yum install nginx -y
#启动Nginx服务,如果启动失败,极有可能是80端口被其他服务占用,停掉该服务即可,或者修改Nginx配置文件来改变Nginx的监听端口
sudo systemctl start nginx
#设置Nginx开机启动
sudo systemctl enable nginx

访问测试

安装完成后,我们需要测试Nginx是否正常工作,在浏览器中输入你的服务器的ip地址,出现如下页面则说明安装成功

使用Centos7部署静态网站_第1张图片

第二步:配置服务器访问路径

Nginx服务器默认访问的是/usr/share/nginx/html目录,我们可以在/etc/nginx/nginx.conf配置文件中配置自己的项目目录:

#新建/修改配置文件
vi /etc/nginx/nginx.conf
//server块配置示例
server{
    listen		80; //监听端口
    server_name	 _; //监听的域名
    root	/data/www; //修改root默认目录
    //index	index.html; //定义首页索引文件的名称
    location / {	    //请求的url过滤,正则匹配,~为区分大小写,~*为不区分大小写
    	root	/data/www; //静态资源根目录
    }
	error_page 404 /404.html; //错误页
	location = /40x.html {
	}
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    }
}

Location指令的配置

Nginx根据URL将请求发送给不同的代理,或处理不同的文件请求。由server指令中的location指令配置规则。

比如,可以为虚拟服务器配置三个location指令,将一些请求发送给代理服务器#1,将另外一些请求发送给代理服务器#2,再由本地文件系统处理剩余请求。

Nginx会将请求的URL匹配所有的location指令,请执行匹配location中的指令。每个location指令中通常还会包含多条更为精细匹配的location指令。

location指令包含两类参数:前缀字符串正则表达式。请求要匹配前缀字符串的话,必须以前缀字符串开始。

以下例子中location参数匹配以/some/path/开始的请求URI,如/some/path/document.html(不匹配/my-site/some/path,因为/some/path不在起始位置)。

location /some/path/ {
    ...
}

~用于匹配区分大小写的正则表达式,~*用于匹配不区分大小写的正则表达式。下面例子匹配任意包含.html.htm的URI。

location ~ \.html? {
    ...
}

Nginx先匹配前缀字符串,然后再匹配正则表达式。正则表达式拥有较高优先级,除非使用^~修饰符。在所有前缀字符串中,Nginx会挑选最精确的那个,也就是最长最匹配的那个。详细匹配过程如下:

  1. 匹配所有前缀字符串;
  2. 如果有一个=定义的精确匹配前缀字符串,停止继续匹配;
  3. 如果^~在最长匹配的前缀字符串之前,将忽略正则表达式;
  4. 存储最长的匹配前缀字符串;
  5. 匹配正则表达式;
  6. 找到第一个相匹配的正则表达,停止匹配过程,并执行该location指令;
  7. 如果没有正则表达式匹配,则使用第4部存储的最长前缀字符串;

=修饰符的典型应用是匹配 /请求。针对频繁访问/的情况,将location参数设置为= /可以加速处理过程,因为整个匹配过程在第一条之后就结束了。

location = / {
    ...
}

location指令内可以配置如何处理请求:处理静态文档或将请求转发给代理服务器。在下面的例子中,匹配第一个location的请求可以访问/data目录的文件,匹配第二个location的请求将被转发到www.example.com服务器。

server {
    location /images/ {
        root /data;
    }

    location / {
        proxy_pass http://www.example.com;
    }
}

其中root指令指定了静态文件的文件系统路径,将与请求URI一起构成静态文件的完全路径。在上述例子中,请求/images/example.png将返回服务器上位于/data/images/example.png的文件。

proxy_pass指令将请求转发到代理服务器,并将代理服务器的响应返回给客户端。在上述例子中,所有不是以/images/开头的URI请求都将被转发到代理服务器。

作者:freefishz2
链接:https://www.jianshu.com/p/f81195da5a22
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

第三步:创建项目目录

#创建项目目录
mkdir -p /data/www
#接下来只要将静态网站资源上传到该目录即可,相信有了上面location配置的说明,你应该知道具体该怎么上传了

第四步:重启Nginx,访问测试

#重启Nginx
nginx -s reload

你可能感兴趣的:(Web)