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初学入门》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

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

用户故事地图

用户故事地图

Jeff Patton / 李涛、向振东 / 清华大学出版社 / 2016-4-1 / 59.00元

用户故事地图作为一种有效的需求工具,越来越广泛地应用于开发实践中。本书以用户故事地图为主题,强调以合作沟通的方式来全面理解用户需求,涉及的主题包括怎么以故事地图的方式来讲用户需求,如何分解和优化需求,如果通过团队协同工作的方式来积极吸取经验教训,从中洞察用户的需求,开发真正有价值的、小而美的产品和服务。本书适合产品经理、用户体验设计师、产品负责人、业务分析师、IT项目经理、敏捷教练和精益教练阅读和......一起来看看 《用户故事地图》 这本书的介绍吧!

MD5 加密
MD5 加密

MD5 加密工具

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具