跳到主要内容
  1. Skills/
  2. 建站/

使用nginx创建web网页服务

·字数 1418·3 分钟
nginx howto

nginx 来自战斗民族的软件产品,用于在服务器上搭配http服务,性能表现非常优秀,在全球范围内打遍天下无敌手。只要是搞建站建设、系统建设的人,无人不晓。

国内有 nginx 的修改版本,好像没有修改版本就代表自己技术不够牛,配不上互联网大厂的称呼一样。

  • 阿里,有 tengine
  • 360,有 openresty

nginx 支持 windows、macos、linux,实际情况,基本都是部署在 linux 上。下面以 ubuntu 为例来描述。

如何安装 #

# 使用有root权限的用户操作
> sudo apt update
> sudo apt install nginx

安装成功,系统会自动启动,可以使用下面的命令来验证:

> sudo systemctl status nginx
> # 或者
> sudo service nginx status
ubuntu@VM-12-6-ubuntu:~$ sudo service nginx status
● nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enable>
     Active: active (running) since Sat 2021-02-27 21:00:58 CST; 1 months 25 days ago
       Docs: man:nginx(8)
   Main PID: 1002 (nginx)
      Tasks: 3 (limit: 4474)
     Memory: 15.6M
     CGroup: /system.slice/nginx.service
             ├─   1002 nginx: master process /usr/sbin/nginx -g daemon on; master_proc>
             ├─3269729 nginx: worker process
             └─3269730 nginx: worker process

以上使用到的 systemctlservice 命令, 是 linux 的服务管理器。

配置网站 #

使用上节的方法,可以在系统安装上 nginx 服务环境,安装包已经带有默认的配置,这个配置已经可以直接用于生产环境。

一般的,配置文件的保存路径在 /etc/nginx 下,主配置文件为 nginx.conf,在 /etc/nginx/site-enabled 目录下配置的站点,是生效的站点。所以一般运维的习惯是将站点的配置文件保存在 /etc/nginx/site-available,然后需要生效的,就在 site-enabled 下创建一个文件链接。

nginx没有强制性的要求你的网页文件、日志文件应该放在哪个位置,这些都可以在配置文件中来指定。

例如本站的网页文件放在 /home/public/youwu 目录下,那么在原有默认配置都不修改的情况下,按以下的操作添加简单配置之后就可以生效。

  • 添加一个站点配置

/etc/nginx/site-available/default 是一个站点配置模板

/etc/nginx/site-available 下添加一个站点配置文件,内容如下:

# my site
# /etc/nginx/site-available/youwu.conf
# Default server configuration
#
server {
    listen 80 default_server;
    listen [::]:80 default_server;

    index index.html index.htm;

    # server_name _;
    server_name youwu.today;  # 这里修改为你的域名
    
    error_page 404 /404.html;
    location / {
        root /home/public/youwu;
        # First attempt to serve request as file, then
        # as directory, then fall back to displaying a 404.
        try_files $uri $uri/ =404;
    }
}

nginx的配置文件,每一行的结束是以 ; 来表示的,所以在一项配置结束后,记得写上 ; 号,不然会出现奇怪的错误。

保存后,在 site-enabled 下创建一个文件链接,

> # 进入 /etc/nginx
> sudo ln -s ./site-available/youwu ./site-enabled/youwu
> # 刷新 nginx 的配置,无须重启
> sudo nginx -s reload

上面的配置完成后,通过域名 youwu.today 可以正常访问了,非常简单,本站就是在网站备案完成之后,使用ngnix快速部署的,当然,需要事先准备好网页文件。

使用域名的,需要准备一个有效域名(dns能正常解析到服务器)。若此时还没有可用域名,在上面的配置例子中,使用 _; ,然后通过ip来使用http服务。

若你的网站也同本站一样,需要准备域名及网站备案的,可以看

关于快速建站,特别是静态网站,可以考虑本站使用的hugo,需要的看

启动、停止,或修改配置 #

若服务器环境是 ubuntu,那么使用 service 或者 systemctl 来管理 nginx 的服务进程。

> # 启动:使用 systemctl
> sudo systemctl start nginx
> # 启动:使用 service
> sudo service nginx start
> # 停止:使用 systemctl 
> sudo systemctl stop nginx
> # 停止:使用 service
> sudo service nginx stop
> # 查看状态: 使用 systemctl
> sudo systemctl status nginx
> # 查看状态:使用 service
> sudo service nginx status

一般地,在修改了站点配置之后,无须重启服务,刷新即可。

> sudo nginx -s reload