使用Nginx搭建静态网站

简介: 使用Nginx搭建静态网站

前言


开始建站了,暂时还没想要做些什么东西。

Anyway,先搞个云服务器吧,那要怎么搭建呢?先来个最简单的。

以阿里云服务器为例,假设公网 IP 为 100.2.3.4(随便乱写的)。


正文


1. 登录云服务

$ ssh root@100.2.3.4


2. 安装 Nginx 及相关命令


# 安装
$ yum install nginx -y
# 启动
$ nginx
# 关闭
$ nginx -s stop
# 重启
$ nginx -s reload
3. Nginx 默认配置


Nginx 配置文件目录一般在 /etc/nginx/ 下,打开 nginx.conf 文件可以看到配置:

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
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 2048;
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
    include /etc/nginx/conf.d/*.conf;
    server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;
        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;
        location / {
        }
        error_page 404 /404.html;
        location = /40x.html {
        }
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
        }
    }
}


当外网用户访问服务器 Web 服务由 Nginx 提供,Nginx 需要配置静态资源的路径信息才能通过 URL 正确访问到服务器上的静态资源。

当我们在服务器上安装并启动 Nginx 之后,就可以通过 http://<域名或IP> 访问我们的网页了。所以,在浏览器中输入 http://100.2.3.4 即可。


0.webp.jpg


我们观察到浏览器的地址变成了 http://100.2.3.4/index.html,这页面是安装 Nginx 的默认站点,可以在 /usr/share/nginx/html 目录下找到。在 nginx.conf 配置文件中,有一项 root /usr/share/nginx/html 的配置,意思是当外网访问服务器跟目录时,Nginx 会将资源指向 /usr/share/nginx/html 的站点。

但如果输入地址,无法打开(如下截图)。


1.webp.jpg


以阿里云为例,需要在云服务器添加“安全组规则”,添加并保存,重新刷新页面就能打开了。


关于阿里云服务器安全组规则说明,推荐这篇文章


3.webp.jpg


4. 修改 Nginx 配置


我习惯将前端静态资源放置到服务器的 /data/www 下,因此将配置修改为 root /data/www。此时访问 http://100.2.3.4 会指向 /data/www/index.html(在不配置 locationindex 情况下,Nginx 默认配置是 index.html)。

server {
    listen       80;
    server_name  _;
    root         /data/www;
    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;
    location / {
    }
    error_page 404 /404.html;
    location = /40x.html {
    }
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    }
}


修改配置后,记得执行 ngnix -s reload 重启 Nginx 服务。


5. 将 Webpack 打包的文件上传服务器


由于我使用的是 Mac 机器,因此可以直接在系统终端使用 scp 命令将本地文件上传到云服务器。

# scp [参数] [原路径] [目标路径]
$ scp -r /Users/frankie/Desktop/Web/react-demo/dist/* root@100.2.3.4:/data/www


scp(secure copy)用于在 Linux 下进行远程拷贝文件的命令。类似于 cp,只不过 cp 只能在本机进行拷贝,不能跨服务器。-r 表示递归复制整个目录。


关于 scp 更多细节,请看文章

需要注意一下,下面两种的区别:


# 1️⃣
$ scp -r /xxx/dist /data/www
# 2️⃣
$ scp -r /xxx/dist/* /data/www


其中 1️⃣ 得到的是 /data/www/dist,而 2️⃣ 得到的是 /data/www。前者表示将 dist 整个目录拷贝至 /data/www 下。后者是把 dist 目录下的所有子文件和子目录都拷贝至 /data/www


换句话说就是,前者配置 root 的路径应该是 /data/www/dist,后者则为 /data/www


效果如下:

frankie@iMac ~ % 🐶 scp -r /Users/frankie/Desktop/Web/react-demo/dist/* root@100.2.3.4:/data/www/
root@100.2.3.4's password: 
bundle.2b1a17.js                              100% 1580   120.1KB/s   00:00    
favicon.ico                                   100% 9662   724.9KB/s   00:00    
index.html                                    100% 2045   149.9KB/s   00:00    
vendors.chunk.7fb171.js                       100%  625KB 409.8KB/s   00:01

[root@ali-ecs www]# ls
bundle.2b1a17.js  favicon.ico  index.html  vendors.chunk.7fb171.js


6. 看效果


在浏览器中访问 http://100.2.3.4 即可看到我们配置的网页了。


5128488-847c8fa6105b2570.webp.jpg


最简单的 Nginx 部署静态网页就完了,其他的下次再讲...

The end.


相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情:&nbsp;https://www.aliyun.com/product/ecs
目录
相关文章
|
3天前
|
负载均衡 Ubuntu 应用服务中间件
nginx修改网站默认根目录及发布(linux、centos、ubuntu)openEuler软件源repo站点
通过合理配置 Nginx,我们可以高效地管理和发布软件源,为用户提供稳定可靠的服务。
28 13
|
2月前
|
Docker 容器
docker nginx-proxy 添加自定义https网站
docker nginx-proxy 添加自定义https网站
42 4
|
2月前
|
前端开发 JavaScript 应用服务中间件
使用nginx部署网站
使用nginx部署网站
|
4月前
|
Ubuntu 应用服务中间件 Linux
如何在Ubuntu 14.04上使用Nginx和Php-fpm安全地托管多个网站
如何在Ubuntu 14.04上使用Nginx和Php-fpm安全地托管多个网站
32 0
|
5月前
|
前端开发 JavaScript 应用服务中间件
Nginx 开启 gzip 压缩,让网站飞一会!
一起来了解下nginx的gzip压缩
322 3
|
6月前
|
安全 Ubuntu 应用服务中间件
NGINX环境下实现Web网站访问控制的实战指南
在NGINX中设置基于IP的访问控制可提升网站安全性。步骤包括安装NGINX、备份配置文件、编辑`/etc/nginx/sites-available/default`,添加`allow`和`deny`指令限制特定IP访问,如`allow 192.168.1.100; deny all;`,然后测试配置并重启服务。成功后,仅允许的IP能访问网站,否则会收到403错误。这为Web安全提供基础保障,还可扩展实现更多高级控制策略。【6月更文挑战第20天】
684 3
|
6月前
|
应用服务中间件 nginx Windows
nginx实现网站url带参跳转 POST请求GET请求跳转
nginx实现网站url带参跳转 POST请求GET请求跳转
329 1
|
6月前
|
网络协议 安全 应用服务中间件
阿里云 网站https设置 sll申请与nginx跳转配置
阿里云 网站https设置 sll申请与nginx跳转配置
210 0
|
7月前
|
应用服务中间件 nginx
如何在树莓派部署Nginx并实现无公网ip远程访问内网制作的web网站
如何在树莓派部署Nginx并实现无公网ip远程访问内网制作的web网站
67 0
|
7月前
|
弹性计算 应用服务中间件 文件存储
容器服务ACK+容器网络文件系统CNFS快速搭建NGINX网站
本文介绍如何在半小时内,通过阿里云容器ACK服务和CNFS容器网络文件系统服务搭建一个简单的弹性、高可用NGINX网站。在完成本文的所有操作后,您将获得一个单网页的网站,用户的请求将会被打散到多个容器节点上,并且根据业务负载自动扩缩容,即使某个容器节点宕机也不会影响用户访问。另外您还可以将本地编辑的网页快速更新到网站上。
220 0
容器服务ACK+容器网络文件系统CNFS快速搭建NGINX网站