nginx | nginx安装及常用配置详解(下)

简介: Nginx("engine x")是一款是由俄罗斯的程序设计师Igor Sysoev所开发高性能的 Web和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。在高连接并发的情况下,Nginx是Apache服务器不错的替代品。

10启动nginx


直接输入  nginx就可以启动

通过输入ps -ef|grep nginx可以看到进程


12.JPG


在浏览器地址栏输入自己服务器的ip地址就可以看到下面的界面了

13.JPG


如果启动遇到nginx: [emerg] getpwnam("nginx") failed这个错误。少了用户配置

useradd -s /sbin/nologin -M nginx


id nginx


netstat -tlunp | grep nginx启动命令

或者在过程中出现 [emerg] mkdir() “/var/temp/nginx/client” failed (2: No such file or directory) 错误 执行


sudo mkdir -p /var/tem/nginx/client 这个sudo我不要加,应为我的就是root权限了,如果不是的需要加


9.nginx服务器自定义访问配置


先在我们的根目录通过 下面命令访问我们的主配置文件


`vim /usr/local/nginx/conf/nginx.conf`


14.JPG

第一行修改成这样

然后在最下面中添加 include /root/nginx/*.conf,等会在nginx目录中创建一个nginx目录

15.JPG

修改完之后,保存退出

按住shift + :  输入:wq!是保存突出


按 i 这个键是先升级编辑

按ecs是退出编辑

9.1返回根目录中,先进入nginx这个目录,在目录创建一个

`mkdir nginx.conf 文件`

 通过命令16.JPG进入这个里面进行编辑

server_name 是写入自己的服务器上的ip地址或者localhost,写完之后保存退出;

root /root/nginx/upload这个是监听到nginx下面的upload目录里面的index.html文件,等会会在nginx目录创建一个upload目录


17.JPG


9.2这样的话,我们监听的端口号就是8080了,但是和主文件的监听的端口号一样了,所以需要再次修改主文件的端口号,把他改成其他的端口号就行了


18.JPG


然后再次保存退出,


9.3检查nginx配置是否成功

nginx -t  //出现下面的情况就算配置正确了

19.JPG


9.4在nginx目录中创建upload目录,等会就会写一个hindextml文件


20.JPG


9.5在upload目录中,输入

`vimindex.html 创建了一个index.html文件,`


  21.JPG

里面写一些内容,然后保存退出

最后配置完之后重启一下nginx服务器

`nginx -s reload   `

 

如果重启过程中遇到下面的问题

nginx: [error] invalid PID number “” in “/usr/local/var/run/nginx/nginx.pid”


pid位置不对


pkill  nginx  先杀死,然后在次重启一下就好了


然后在我们浏览器访问服务器的ip地址就可以看到我们写入的内容了;


如果我们访问的ip地址访问的时候,用于都是nginx欢迎页面,说明我门配置的时候没有配置好对应的nginx.conf文件,可以通过nginx -t查看到nginx所配置的环境是在那个目录里面


22.JPG

然后在住目录,通过 vim /etc/nginx/nginx.conf进入再次编辑一下,保存就可以了。


开启GZIP



Nginx开启Gzip压缩功能, 可以使网站的css、js 、xml、html 文件在传输时进行压缩,提高访问速度, 进而优化Nginx性能! Web网站上的图片,视频等其它多媒体文件以及大文件,因为压缩效果不好,所以对于图片没有必要支压缩,如果想要优化,可以图片的生命周期设置长一点,让客户端来缓存。 开启Gzip功能后,Nginx服务器会根据配置的策略对发送的内容, 如css、js、xml、html等静态资源进行压缩, 使得这些内容大小减少,在用户接收到返回内容之前对其进行处理,以压缩后的数据展现给客户。这样不仅可以节约大量的出口带宽,提高传输效率,还能提升用户快的感知体验, 一举两得; 尽管会消耗一定的cpu资源,但是为了给用户更好的体验还是值得的。


经过Gzip压缩后页面大小可以变为原来的30%甚至更小,这样,用户浏览页面的时候速度会快得多。Gzip 的压缩页面需要浏览器和服务器双方都支持,实际上就是服务器端压缩,传到浏览器后浏览器解压并解析。浏览器那里不需要我们担心,因为目前的巨大多数浏览器 都支持解析Gzip过的页面。


Gzip压缩作用


将响应报⽂发送⾄客户端之前可以启⽤压缩功能,这能够有效地节约带宽,并提⾼响应⾄客户端的速度。Gzip压缩可以配置http,server和location模块下。Nginx开启Gzip压缩参数说明:


`gzip` `on;         ``#决定是否开启gzip模块,on表示开启,off表示关闭;``gzip_min_length 1k;   ``#设置允许压缩的页面最小字节(从header头的Content-Length中获取) ,当返回内容大于此值时才会使用gzip进行压缩,以K为单位,当值为0时,所有页面都进行压缩。建议大于1k``gzip_buffers 416k;   ``#设置gzip申请内存的大小,其作用是按块大小的倍数申请内存空间,param2:int(k) 后面单位是k。这里设置以16k为单位,按照原始数据大小以16k为单位的4倍申请内存``gzip_http_version 1.1;  ``#识别http协议的版本,早起浏览器可能不支持gzip自解压,用户会看到乱码``gzip_comp_level

2;    ``#设置gzip压缩等级,等级越底压缩速度越快文件压缩比越小,反之速度越慢文件压缩比越大;等级1-9,最小的压缩最快 但是消耗cpu``gzip_types text``/plain` `application``/x-javascript` `text``/css` `application``/xml``;  ``#设置需要压缩的MIME类型,非设置值不进行压缩,即匹配压缩类型``gzip_vary on;      ``#启用应答头"Vary: Accept-Encoding"` `gzip_proxied off;``nginx做为反向代理时启用,off(关闭所有代理结果的数据的压缩),expired(启用压缩,如果header头中包括``"Expires"``头信息),no-cache(启用压缩,header头中包含``"Cache-Control:no-cache"``),``no-store(启用压缩,header头中包含``"Cache-Control:no-store"``),private(启用压缩,header头中包含``"Cache-Control:private"``),no_last_modefied(启用压缩,header头中不包含`` ``"Last-Modified"``),no_etag(启用压缩,如果header头中不包含``"Etag"``头信息),auth(启用压缩,如果header头中包含``"Authorization"``头信息)` `gzip_disable msie6;``(IE5.5和IE6 SP1使用msie6参数来禁止``gzip``压缩 )指定哪些不需要``gzip``压缩的浏览器(将和User-Agents进行匹配),依赖于PCRE库` `######################################################################################################``#如下:修改nginx配置文件 /usr/local/nginx/conf/nginx.conf``[root@localhost ~]``# vim /usr/local/nginx/conf/nginx.conf    #将以下配置放到nginx.conf的http{ ... }区域中` `#修改配置为``gzip` `on;           ``#开启gzip压缩功能``gzip_min_length 10k;     ``#设置允许压缩的页面最小字节数; 这里表示如果文件小于10个字节,就不用压缩,因为没有意义,本来就很小. ``gzip_buffers 416k;     ``#设置压缩缓冲区大小,此处设置为416K内存作为压缩结果流缓存``gzip_http_version 1.1;    ``#压缩版本``gzip_comp_level 2;      ``#设置压缩比率,最小为1,处理速度快,传输速度慢;9为最大压缩比,处理速度慢,传输速度快; 这里表示压缩级别,可以是09中的任一个,级别越高,压缩就越小,节省了带宽资源,但同时也消耗CPU资源,所以一般折中为6``gzip` `types text``/css` `text``/xml` `application``/javascript``;   ``#制定压缩的类型,线上配置时尽可能配置多的压缩类型!``gzip_disable ``"MSIE [1-6]\."``;    ``#配置禁用gzip条件,支持正则。此处表示ie6及以下不启用gzip(因为ie低版本不支持)``gzip` `vary on;  ``#选择支持vary header;改选项可以让前端的缓存服务器缓存经过gzip压缩的页面; 这个可以不写,表示在传送数据时,给客户端说明我使用了gzip压缩`

如下是线上常使用的


Gzip压缩配置


`[root@external-lb02 ~]``# cat /data/nginx/conf/nginx.conf``........``http {``.......``  ``gzip` `on;``  ``gzip_min_length 1k;``  ``gzip_buffers   4 16k;``  ``gzip_http_version 1.1;``  ``gzip_comp_level 9;``  ``gzip_types    text``/plain` `application``/x-javascript` `text``/css` `application``/xml` `text``/javascript` `application``/x-httpd-php` `application``/javascript` `application``/json``;``  ``gzip_disable ``"MSIE [1-6]\."``;``  ``gzip_vary on;` `}`


如果不开启Gzip压缩功能(即注释掉Gzip的相关配置), 查看某个图片大小

`[root@external-lb02 ~]``# ll -h /data/web//www/test.bmp ``-rw-r--r-- 1 root root 453K 3月 14 18:43 ``/data/web//www/test``.bmp`

如下可知, 文件没有被压缩,文件传输大小还是400多K


23.JPG


如果开启Nginx的Gzip压缩功能(即打开Gzip的相关配置), 然后再次访问test.bmp图片, 发现压缩后的该图片文件传输大小只有200多K !


24.JPG

通过上面测试对比, 发现Nginx开启Gzip压缩功能后, 定义的gzip type的文件在传输时的大小明显变小, 这样这会大大提高nginx访问性能.


直接用curl测试命令:



`[root@fvtlb02 ~]``# curl -I -H "Accept-Encoding: gzip, deflate" "http://fvtvfc-web.kevin.com/service-worker.js"``HTTP``/1``.1 200 OK``Server: nginx``/1``.12.2``Date: Mon, 26 Nov 2018 02:19:16 GMT``Content-Type: application``/javascript``; charset=utf-8``Connection: keep-alive``Vary: Accept-Encoding``Last-Modified: Sun, 25 Nov 2018 22:28:15 GMT``Vary: Accept-Encoding``ETag: W/``"5bfb21ff-40be"``Content-Encoding: ``gzip``如上,response header头信息中出现``"Conten_Encoding: gzip"``, 就说明Nginx已开启了压缩 (在浏览器访问, 通过F12看请求的响应头部 也是一样)`


Nginx的Gzip压缩功能虽然好用,但是下面两类文件资源不太建议启用此压缩功能。


1) 图片类型资源 (还有视频文件)


原因:图片如jpg、png文件本身就会有压缩,所以就算开启gzip后,压缩前和压缩后大小没有多大区别,所以开启了反而会白白的浪费资源。(可以试试将一张jpg图片压缩为zip,观察大小并没有多大的变化。虽然zip和gzip算法不一样,但是可以看出压缩图片的价值并不大)


2) 大文件资源


原因:会消耗大量的cpu资源,且不一定有明显的效果。

相关文章
|
1月前
|
缓存 应用服务中间件 网络安全
Nginx中配置HTTP2协议的方法
Nginx中配置HTTP2协议的方法
79 7
|
2月前
|
应用服务中间件 BI nginx
Nginx的location配置详解
【10月更文挑战第16天】Nginx的location配置详解
|
2月前
|
缓存 负载均衡 安全
Nginx常用基本配置总结:从入门到实战的全方位指南
Nginx常用基本配置总结:从入门到实战的全方位指南
325 0
|
3天前
|
存储 应用服务中间件 nginx
nginx反向代理bucket目录配置
该配置实现通过Nginx代理访问阿里云OSS存储桶中的图片资源。当用户访问代理域名下的图片URL(如 `http://代理域名/123.png`)时,Nginx会将请求转发到指定的OSS存储桶地址,并重写路径为 `/prod/files/2024/12/12/123.png`。
30 5
|
27天前
|
缓存 负载均衡 算法
如何配置Nginx反向代理以实现负载均衡?
如何配置Nginx反向代理以实现负载均衡?
|
1月前
|
存储 负载均衡 中间件
Nginx反向代理配置详解,图文全面总结,建议收藏
Nginx 是大型架构必备中间件,也是大厂喜欢考察的内容,必知必会。本篇全面详解 Nginx 反向代理及配置,建议收藏。
Nginx反向代理配置详解,图文全面总结,建议收藏
|
18天前
|
负载均衡 前端开发 应用服务中间件
负载均衡指南:Nginx与HAProxy的配置与优化
负载均衡指南:Nginx与HAProxy的配置与优化
39 3
|
1月前
|
应用服务中间件 API nginx
nginx配置反向代理404问题
【10月更文挑战第18天】本文介绍了使用Nginx进行反向代理的配置方法,解决了404错误、跨域问题和302重定向问题。关键配置包括代理路径、请求头设置、跨域头添加以及端口转发设置。通过调整`proxy_set_header`和添加必要的HTTP头,实现了稳定的服务代理和跨域访问。
241 1
nginx配置反向代理404问题
|
27天前
|
负载均衡 监控 应用服务中间件
配置Nginx反向代理时如何指定后端服务器的权重?
配置Nginx反向代理时如何指定后端服务器的权重?
49 4
|
27天前
|
安全 应用服务中间件 网络安全
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
如何测试Nginx反向代理实现SSL加密访问的配置是否正确?
52 3