nginx初学入门

栏目: 服务器 · Nginx · 发布时间: 6年前

内容简介:因为前几天加班比较多,人也比较累,不怎么想学习新的知识,周三加班到周四凌晨1点多,周四晚上直接到周五4点钟才睡,上午还要去上班,结果项目线上小问题不断,搞的身心俱疲,副能量爆满!!!周末就想着好好放松下,所以今天来点简单的!nginx,其实自己接触nginx也比较长时间了,上家公司项目使用nginx主要作为的是静态资源服务器,毕竟nginx的性能在业界也是有目共睹的,但是自己并没有怎么学习过nginx,只是懂的一点点配置。这次之所以想起再来看nginx是因为前段时间自己想在自己的服务器上搞一个jet br

因为前几天加班比较多,人也比较累,不怎么想学习新的知识,周三加班到周四凌晨1点多,周四晚上直接到周五4点钟才睡,上午还要去上班,结果项目线上小问题不断,搞的身心俱疲,副能量爆满!!!周末就想着好好放松下,所以今天来点简单的!nginx,其实自己接触nginx也比较长时间了,上家公司项目使用nginx主要作为的是静态资源服务器,毕竟nginx的性能在业界也是有目共睹的,但是自己并没有怎么学习过nginx,只是懂的一点点配置。这次之所以想起再来看nginx是因为前段时间自己想在自己的服务器上搞一个jet brains的服务器,方便自己使用,其中就用nginx作为反向代理服务器使用,结果呢,搞了半天也没成功,也不知道是哪方面原因。所以自己准备再研究一下,不然以后经常找IDE的破解码也挺麻烦(壕们请支持正版)。不管怎么说nginx作为一个优秀的web服务器确实是值得我们去好好学习一下的。

一、安装和启动

这次我使用的是安装包安装,当然觉得麻烦也可以使命令直接安装。我这次安装下载的1.14版本,应该是最新版本了。下载之后进入相应文件夹下,执行解压命令:

tar zxvf nginx-1.14.0.tar.gz

大概看下解压的目录结构:

nginx初学入门

2018-11-03 20-18-58 的屏幕截图.png

然后使用默认的配置,即执行./configure命令,结果报错,提示HTTP rewrite模块需要PCRE库。当然给出的方案要不禁用http_rewrite模块,要不系统安装PCRE库。所以就选择在自己系统安装PCRE库吧。

nginx初学入门

2018-11-03 20-19-47 的屏幕截图.png

执行命令安装PCRE和它的二次开发库:

sudo apt-get install libpcre3 libpcre3-dev

PCRE库支持正则表达式。如果我们在nginx.conf中使用了正则表达式,那么在编译nginx时就必须把PCRE库编译进nginx,因为HTTP模块需要靠它来解析正则表达式。而pcre-devel是使用PCRE做二次开发时所需要的开发库,包括头文件等,这也是编译nginx需要使用到的。

仅仅安装了PCRE库是不够的,还需要安装zlib库,这个是HTTP gzip模块需要使用到。zlib库用于对HTTP包的内容做gzip格式的压缩,如果我们在nginx.conf中配置了gzip on,并指定对于某些类型(content-type)的HTTP响应使用gzip来进行压缩以减少网络传输量(如果你仔细看过http请求的时候就会注意到这点),因此在编译时必须把zlib编译进nginx,zlib-devel是二次开发所需要的库。所以还需要执行下面的命令:

sudo apt-get install zlib1g-dev

最后如果服务器不只是要支持HTTP还想支持更安全的HHTPS,那么就还需要安装OpenSSL,我的系统之前已经安装过了,安装命令:

sudo apt-get install openssl libssl-dev

这时候再次执行默认配置如图所示:

nginx初学入门

2018-11-03 20-31-20 的屏幕截图.png

然后编译安装nginx:

sudo make install

编译安装完之后我们看到安装目录下,即"/usr/local/nginx",然后进入"/sbin目录",启动nginx:

sudo ./nginx

使用浏览器访问:localhost:80,显示nginx的index.htm页面,说明服务器成功启动。

这里简单说下nginx常用命令

./nginx 
./nginx -s quit
./nginx -s stop
./nginx -s reload

quit和stop都是停止服务器的意思,但是quit的命令会在关闭服务器前完成正在服务的连接,而stop就是立即停止服务。另外如果对nginx的配置文件进行了修改,并想使其生效,可以用reload命令。

二、反向代理配置

关于什么是反向代理,以及和代理的区别这里就不细述了,如果又不了解建议百度或者谷歌一下,其实很好理解。我这里只是做一个最简单的配置,比如现在我想让用户访问localhost:80/这个请求的时候,显示百度的首页,那么我就可以到"/usr/local/conf/"下进行配置,打开nginx.conf文件,在http模块的server自摸块下面修改配置文件内容,在location下添加代理的地址就可以了,如下图:

nginx初学入门

2018-11-04 12-09-33 的屏幕截图.png

其实从http模块我们也可以看到一些基本的配置的内容,比如文件mime类型,默认的类型为二进制流,此外日志格式和日志位置,文件传输,连接超时时间以及gzip设置。

server下面主要是监听端口号,服务器名称,这里可以是域名也可以是ip地址,另外还有就是字符编码和日志。location主要是配置URL和解析URL,比如默认情况下用户访问localhost:80,nginx会到响应的内容是html下面的index.html或者index.htm,root这里使用的是相对路径(相对于nginx安装目录),当然也可以使用绝对路径。

反向代理是同过"proxy_pass"来实现的,我这里配置了百度的域名,保存好配置文件之后,执行reload命令重新加载新的配置文件,并访问:localhost:80

nginx初学入门

2018-11-04 12-07-24 的屏幕截图.png

可以看到已经是百度页面了,然后看下请求和响应头,根据状态吗推断是nginx帮我们做了重定向。以上就是最简单的一个反向代理的例子。

三、静态资源服务器

使用nginx作为静态资源服务器在上家公司遇到过,但是目前开发web服务器主要还是使用Apache,vanish缓存。还是在server子模块下,添加一个location的配置:

location /static/ {
    root /home/ypcfly/ypcfly;
    expires 1d;
}

这里我开始的时候遇到了一个问题,就是请求资源时报404错误,后来网上找了一些资料才算是搞明白是怎么回事了。主要是root和alias的区别,比如现在配置的root,如果请求localhost:80/static/images/111.jpg,实际对应的路径是/home/ypcfly/ypcfly/static/images/111.jpg,也就是说如果配置成root的话,文件的地址应该是配置的root路径 + location路径 + 请求资源名。如果配置的是alias的话配置稍有不同

location /static/ {
    alias /home/ypcfly/ypcfly/;
    expires 1d;
}

注意:alias必须以"/"结尾。如果我访问的依然是localhost:80/static/images/111.jpg,这时实际的路径应该是/home/ypcfly/ypcfly/images/111.jpg,也就是说配置成alias,文件地址是:配置的alias路径 + 请求资源名称。这个是官方文档的一点说明: https://nginx.org/en/docs/beginners_guide.html#static

expires指定的是过期时间

好了,我配置使用的是root,重新加载下配置文件,并访问localhost:80/static/images/golang-5.png,我本地图片保存的实际路径是:/home/ypcfly/ypcfly/static/images/golang-5.png。

nginx初学入门

2018-11-04 13-53-01 的屏幕截图.png

已经可以正常访问了,说明配置生效了。

今天只是从最简单的部分入手,如果要深入的学习,还是要多看文档,多实践,多总结才行。今天自己也是偷懒,从最简单的部分开始,关于nginx的其他知识点后期再学习。


以上所述就是小编给大家介绍的《nginx初学入门》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Inside Larry's and Sergey's Brain

Inside Larry's and Sergey's Brain

Richard Brandt / Portfolio / 17 Sep 2009 / USD 24.95

You’ve used their products. You’ve heard about their skyrocketing wealth and “don’t be evil” business motto. But how much do you really know about Google’s founders, Larry Page and Sergey Brin? Inside......一起来看看 《Inside Larry's and Sergey's Brain》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具