Web服务_Nginx
1 Nginx
Nginx(发音为 "engine x")是一个高效的开源 HTTP 服务器和反向代理服务器。作为 HTTP 服务器,Nginx 的功能类似于 Apache,它可以将静态网站内容提供为 HTTP 服务,即创建网站。
反向代理的概念可能不太容易理解,让我们通过两个典型的场景来解释一下:
- 在客户的场地内,我们可能需要启动多个端口的 Web 服务,但客户只允许我们打开两个端口。
- 我的博客和公众号服务都需要在 80 端口上运行,但它们是两个完全不同的程序,不方便合并代码。
在这种情况下,我们可以使用 Nginx 作为中间的转发。例如,我们可以将所有以 /wx 为相对路径的请求都转发到运行在 8082 端口的公众号服务上,其余的请求则被视为博客请求,转发到运行在 8083 端口的博客服务进行处理。
2 使用 Docker 运行 Http 服务
作为 Http 服务使用时,推荐以下方法:
2.1 安装 docker 镜像
1 | docker pull nginx |
docker image 很小,仅需要 187 M
2.2 启动 nginx 服务
1 | docker run --rm -it -p 80:80 --name mynginx -v /exports/hexo_data/public/:/usr/share/nginx/html nginx |
其中 /exports/hexo_data/public/ 是静态网页路径。
3 宿主机直接配置
作为反向代理,可能涉及多个端口,反复调试,使用 docker 不太方便,建议安装在宿主机上。
3.1 安装 nginx 工具
1 | $ apt-get install nginx |
3.2 设置配置文件
由于不同版本的配置文件可能存在细微差异,这里我们主要介绍的是入口配置文件。该文件可能会包含其他配置文件(参见 include
部分)。在大多数情况下,默认的配置文件会开启
80
端口,并使用位于 /usr/share/nginx/html
或 /var/www/html
的静态网页来创建网站。
如需反向代理,请在 /etc/nginx/nginx.conf 的 http 块内加入 server 块如下,另外,请注意删除其它对 80 端口的设置。
1 | server { |
1 | server { # xieyan |
在宿主机上重启 nginx 服务
1 | $ service nginx restart |
3.3 问题与解决
- https 443 服务在 /etc/nginx/nginx.conf 中设置,默认数据目录在:/usr/share/nginx/html/
- http 80 服务在/etc/nginx/sites-available/default 中设置,默认目录在:/var/www/html/
All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.