nginx服务器的安装和配置[运维教程]

nginx服务器的安装和配置

nginx服务器的安装和配置[运维教程]

nginx 能做什么 ?

像之前部署前端静态资源一般都选择 apache,现在选择 nginx,那 nginx 都能做什么呢?

  • 静态路由
  • 反向代理
  • 负载均衡

安装

访问 nginx 官网

nginx

选择 nginx 版本

这里选择的是 nginx-1.17.9

查看下面的 Pre-Built Packages 部分

点击 stable and mainline

选择 centos 版本,复制对应的 yum 配置

  1. vim /etc/yum.repos.d/nginx.repo
  2. [nginx-stable]
  3. name=nginx stable repo
  4. baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
  5. gpgcheck=1
  6. enabled=1
  7. gpgkey=https://nginx.org/keys/nginx_signing.key
  8. module_hotfixes=true
  1. 安装
  1. yum install nginx

配置

说明

  • nginx 的主配置文件一般是不需要动的,我们只需要在 /etc/nginx/conf.d 目录下新建自己的配置文件即可,因为在主配置文件 /etc/nginx/nginx.conf 文件的最后有这么一句 include /etc/nginx/conf.d/*.conf;,会自动将 conf.d 目录下的配置文件引入
  • 如果 nginx 出现 403 提示权限不够的情况,一般是主配置文件的 user 信息有问题(和静态资源文件的所有者不一致)
  • 做完配置以后,可以执行 nginx -t验证配置内容是否有误
  • 执行 service nginx start 启动 nginx
  • nginx -s reload 可实现 nginx 的重新载入

新建自己的应用配置文件

  1. # vi /etc/nginx/conf.d/my.conf
  2. server {
  3. # 应用的端口
  4. listen 8081;
  5. #server_name myApp.test.com;
  6. # 静态路由
  7. location / {
  8. root /front-end/myApp;
  9. index index.html index.htm;
  10. }
  11. location ~ .(gif|jpg|png)$ {
  12. root /front-end/myApp;
  13. }
  14. # 反向代理
  15. location /api {
  16. proxy_pass http://localhost:3000;
  17. proxy_redirect off;
  18. proxy_set_header Host $host;
  19. proxy_set_header X-Real-IP $remote_addr;
  20. proxy_set_header X-Forwarded-Fox $proxy_add_x_forwarded_for;
  21. }
  22. location /socket.io {
  23. proxy_pass http://localhost:3000;
  24. proxy_http_version 1.1;
  25. proxy_set_header Upgrade $http_upgrade;
  26. }
  27. }

拷贝你打包后的静态资源到 /front-end/myApp 目录下,即你打包的资源目录就是 myApp,启动 nginx,在浏览器访问 http://ip:8081,如果前面都没错,则可以看到你的应用

配置 GZip 压缩

  1. # vim /etc/nginx/nginx.conf
  2. ...
  3. http {
  4. ...
  5. # 启用 nginx 的动态压缩功能,每次收到请求,都需要对涉及到的资源进行压缩处理
  6. # gzip on;
  7. # 启动 nginx 的静态压缩功能,如果收到的请求支持 gzip 压缩,则返回以 .gz 结尾的资源文件代替普通文件,如果请求不支持 gzip,则返回普通文件,好处是不同服务器每次动态压缩,降低服务器的负荷
  8. gzip_static on;
  9. # 启用gzip压缩的最小文件;小于设置值的文件将不会被压缩
  10. gzip_min_length 1k;
  11. # gzip 压缩级别 1-10
  12. gzip_comp_level 2;
  13. # 进行压缩的文件类型,一般配合动态压缩使用,静态压缩设置 gzip_types 没用
  14. # gzip_types text/plain application/javascript application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
  15. # 是否在http header中添加Vary: Accept-Encoding,建议开启
  16. gzip_vary on;
  17. ...
  18. }
  19. ...

配置缓存

说明

缓存可分为 强缓存 和 弱缓存 两种
基于上面的配置,我们打开浏览器的控制台,一通分析之后,发现 nginx 默认为静态资源都配置了弱缓存,
nginx服务器的安装和配置[运维教程]-度崩网-几度崩溃

而我们通用的方案一般是只需要 html 是弱缓存即可,其它像各种图片、js、css文件等,都可以设置为强缓存,因为若缓存还是会像服务器发送一次验证请求,验证资源是否过期,挺费时的

设置强缓存

  1. # vim /etc/nginx/conf.d/my.conf
  2. server {
  3. ...
  4. location ~ .(gif|jpe?g|png)$ {
  5. # 图片设置强缓存
  6. root /front-end/myApp;
  7. add_header Cache-Control max-age=360000;
  8. }
  9. location ~ .(js|css)$ {
  10. # js、css设置强缓存
  11. root /front-end/myApp;
  12. add_header Cache-Control max-age=360000;
  13. }
  14. ...
  15. }

效果
nginx服务器的安装和配置[运维教程]-度崩网-几度崩溃

负载均衡 和 容灾

使用场景

  • 负载均衡

    当用户量比较大时,服务器的负载就会比较高,单台服务器可能就有点搞不定了,这时候我们就需要进行横向扩展,多增加几台 nginx 服务器,即配置负载均衡,通过配置权重的方式,将这些用户请求分发到不同的服务器上,可以避免单台服务器出现高负载崩溃的情况

  • 容灾

    其实配置了负载均衡,也就有了容灾的能力。容灾是指如果有某个服务器挂掉了,其它服务器可以继续顶上,不会出现服务不可用的情况,配了负载均衡,如果有某个服务器挂了,会将请求分发到其它可用的服务器上。

实践

我们准备三台 nginx 服务器,分别命名 slb(负载均衡服务器)、server1、server2

    • slb
  1. # vim /etc/nginx/conf.d/slb.conf
  2. upstream roundrobin {
  3. # 配置 nginx 服务器的访问规则,即权重
  4. server server1:80 weight=2; # server1
  5. server server2:80 weight=1; # server2
  6. }
  7. server {
  8. listen 80;
  9. location / {
  10. # 设置反向代理,将流量都代理到其它服务器
  11. proxy_pass http://roundrobin;
  12. }
  13. }

server1

  1. # 内容就是就是普通的 nginx 服务器的配置

server2

  1. # 内容就是就是普通的 nginx 服务器的配置

 

运维教程

宝塔面板定时任务将网站或数据库打包备份到阿里云OSS对象存储空间[运维教程]

2020-5-9 16:15:32

运维教程

Nginx目录和配置语法[运维教程]

2020-5-15 16:10:42

本站所发布的一切源码、模板、应用等文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权。本站内容适用于DMCA政策。若您的权利被侵害,请与我们联系处理,站长 QQ: 84087680 或 点击右侧 私信:盾给网 反馈,我们将尽快处理。
⚠️
本站所发布的一切源码、模板、应用等文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权。本站内容适用于DMCA政策
若您的权利被侵害,请与我们联系处理,站长 QQ: 84087680 或 点击右侧 私信:盾给网 反馈,我们将尽快处理。
0 条回复 A文章作者 M管理员
欢迎您,新朋友,感谢参与互动!
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
私信列表
搜索