内容简介:nginx 是一款毛子写的高性能网页服务和反向代理服务软件。使用它,可以把自己的静态、动态网页发布出去,或者作为一个代理使外界能访问服务器上无法直接访问的资源。nginx 支持 HTTPS,因而也可以用来把 HTTP 的服务代理为 HTTPS。直接使用 apt:注:在 CentOS 上, 需要先安装 epel:
nginx 是一款毛子写的高性能网页服务和反向代理服务软件。使用它,可以把自己的静态、动态网页发布出去,或者作为一个代理使外界能访问服务器上无法直接访问的资源。nginx 支持 HTTPS,因而也可以用来把 HTTP 的服务代理为 HTTPS。
安装
直接使用 apt:
apt install nginx
注:在 CentOS 上, 需要先安装 epel:
yum install epel-release
配置文件
Nginx 的配置文件在 /etc/nginx/
,这个文件夹下的文件大多被 include
到了主配置文件 nginx.conf
中。nginx 的配置文件结构大致是:
http { some settings; server { some settings; } server { some settings; } something; }
我们需要修改的参数主要是 server
部分。常常在 nginx.conf
中看不到 server
,这是因为它被放在外部文件中而被 include
进来了。这一步需要看具体情况来操作。
在我的树莓派上是这样的:
include /etc/nginx/sites-enabled/*;
也就是说真正的 server
配置部分在上面的这个文件中。那么去到这个文件夹修改下面的文件,我的是:
/etc/nginx/sites-enabled/default
server内设置字段概述
listen
用于指定监听端口,也就是对外开放的端口。例如:
listen 80;
监听 ipv4 上的 80 端口(HTTP 默认端口)。
listen [::]:80;
监听 ipv6 上的 80 端口。
listen
设置只能出现在 server
中,但可以出现多次。
server_name
指明虚拟主机的名字,用于选择不同的虚拟主机。
在我刚开始学习的时候,这个设置令我相当疑惑。其实它主要用于多域名:在打开一个网页时,浏览器会向服务器发送一个 HTTP 请求头,这个头里面包含了所请求的域名。服务器接收到这个域名,便可以得知要进行哪个域名的服务。这样,一个服务器就可以给多个域名(注意:1.a.com 与 2.a.com 是不同的域名)提供服务,就好像是多个服务器一样,也就因此有了“虚拟主机”的名字。
例如:beardic.cn与tools.beardic.cn,在域名解析中它们指向同一个地址 47.94.238.201,但得到的内容却是不同的。只需要创建两个 server
,分别设置它们的 server_name
为 beardic.cn 和 tools.beardic.cn 即可。
这个字段的设置也可以是 IP 地址,用于 IP 直接访问的时候。可以用来禁止直接的 IP 访问。
使用配置 server_name _
可以在别的 server
都匹配失败时进行接管。在这种情况下如果没有这个配置,则将使用顺序第一个的 server
。
server_name
只能出现在 server
中,且只能出现一次。
root
设置网站的根目录。例如:
root /var/www/html/;
那么,假如你的域名是 example.com,访问 example.com/folder/pic.jpg 即是访问 /var/www/html/folder/pic.jpg。
root
设置可以出现在 server
和 location
中。
index
设置默认主页名字。一般(如果使用了 PHP)的设置是:
index index.html index.htm index.php;
它的作用是,访问网址 example.com/folder/(而不是 example.com/folder/index.html)时,自动依次检索 folder 目录下的 index.html、index.htm、index.php,一旦找到就返回给用户。
index
设置可以出现在 server
和 location
中。
location
location
里面又另有一番天地。 它可以有多个,用来匹配用户请求的地址中 server_name
后面的部分。反向代理就会用到这个,例如在反代 deluge-web 时:
location /deluge/ { proxy_pass http://localhost:8112/; proxy_set_header X-Deluge-Base "/deluge/"; add_header X-Frame-Options SAMEORIGIN; }
我们先看这段配置的第一行: location /deluge/
。这表示它会匹配对 example.com/deluge/ 以及子目录的所有请求。
里面的第一句 proxy_pass http://localhost:8112/;
是反代的核心。它表示,把匹配到的所有请求都转发到 http://localhost:8112/ 上,从而使外界访问 example.com/deluge 的时候能看到在服务器上访问 http://localhost:8112/ 所看到的页面。
而后面的两句就和 HTTP 请求头有关系了。前面讲到 HTTP 请求头会包含用户请求的域名,事实上它除此之外还有用户的 IP、请求方法、Cookie、加密算法等信息。直接的 proxy_pass
会使后端服务器接收到的请求头与用户实际发出的请求头不同,所以可能需要加上一些额外的语句。
当然, location
里面也可以不是 proxy_pass
,它还可以是 root
、 index
来使用不同的根目录:所以上面说 location
里面又有一番天地。
此外, location
的第一行匹配还有别的方式,例如 location = /a/
。
location匹配结尾是否加斜杠“/”与其中的 root
或 proxy_pass
结尾是否加反斜杠之间有一定关系,不同组合有不同效果。可参考 这篇文章
里面的实验。
location
在 server
中可以出现多次。
access_log
用于记录访问日志。一般写法:
access_log /var/log/thelogfile.log;
或者关闭之:
access_log off;
能够出现在 http
、 server
、 location
中。可以在 server
中打开,而在某些特定的 location
中关闭。
例子
deluge反代
有关 deluge,可以参看之前的文章。
server { listen 80; listen [::]:80; server_name example.com; index index.html index.htm index.php; root /home/www/; access_log /home/wwwlogs/access.log; location /deluge/ { proxy_pass http://localhost:8112/; proxy_set_header X-Deluge-Base "/deluge/"; add_header X-Frame-Options SAMEORIGIN; } }
这个例子在上面有提到。deluge-web 是默认在某个端口上进行服务的,并且不支持 HTTPS。往往反代它的目的是转移到另一个端口(80)的子目录,并且加上 HTTPS,达到方便且安全的目的。
在实际应用中,这段配置最关键的部分是 proxy_set_header X-Deluge-Base "/deluge/"
,它在http请求头中加入了子目录信息。这是因为 deluge-web 自带的服务端会匹配子目录,如果访问的地址不匹配,将只会展示一个有标题的空白页,见这篇文章。
部署静态网页
要部署静态网页,只需要把网页及其附带文件放入 root
所定义的根目录下。例如在上面的 deluge 例子中,定义了 root
在文件夹 /home/www/ 下,那么通过 FTP 等文件传输的方式传网页至 /home/www/somepath/ 就可以了。结合 index
配置,能够使访问 example.com/somepath/ 时直接访问主页。当然,把网页放在网站根目录也是可以的。
以 AriaNg( Git )为例。Aria 是一个优秀的下载器,但是没有好看易用的图形用户界面(GUI)。AriaNg 是为 Aria 开发的一个单纯的网页 GUI,由 HTML+CSS+JS 实现,不涉及 PHP,是一个静态网页。部署它甚至不需要修改 nginx 配置文件,只需把它放到所希望的目录下就可以了。例如,我配置的 root 是 /home/wwwroot/default,然后 AriaNg 在 /home/wwwroot/default/aria/,那么访问 your.domain/aria/ 即可。
阅读: 12
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- 使用树莓派和Rocket.Chat构建一个私人聊天服务器
- 使用微信 + 树莓派 + Arduino + 服务器构建你的看门狗
- [树莓派]树莓派的入门教程
- 「玩转树莓派」树莓派 3B+ 安装 OpenCv
- 「玩转树莓派」树莓派 3B+ 查询本机IP
- 「玩转树莓派」树莓派 3B+ 配置静态IP
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Zen of CSS Design
Dave Shea、Molly E. Holzschlag / Peachpit Press / 2005-2-27 / USD 44.99
Proving once and for all that standards-compliant design does not equal dull design, this inspiring tome uses examples from the landmark CSS Zen Garden site as the foundation for discussions on how to......一起来看看 《The Zen of CSS Design》 这本书的介绍吧!