营销型网站建设的指导原则不包括,泰州网站建设服务好,重庆电商网站,中石化网站是哪个公司做的在平常的开发工作中#xff0c;我们经常需要访问静态资源#xff08;图片、HTML页面等#xff09;、访问文件目录、部署项目时进行负载均衡等。那么我们就会使用到Nginx#xff0c;nginx.conf 的配置至关重要。那么今天主要结合访问静态资源、负载均衡等总结下 nginx.conf … 在平常的开发工作中我们经常需要访问静态资源图片、HTML页面等、访问文件目录、部署项目时进行负载均衡等。那么我们就会使用到Nginxnginx.conf 的配置至关重要。那么今天主要结合访问静态资源、负载均衡等总结下 nginx.conf 的配置要点及注意事项。 1概述 Nginx 是高性能、轻量级的 web 服务器和反向代理服务器。Nginx 可以作为静态内容服务如访问HTML页面、图片等。Nginx 可以作为作为反向代理服务器隐藏服务器真实IP用户只知道 Nginx 的地址这样可以提高服务安全性。Nginx 可以将动态内容请求转发给后端应用服务器。Nginx 可以将客户端请求分发给后端服务器通过配置实现负载均衡提高系统的可用性。 2访问静态资源 1静态资源在同一个目录 (1)挂载目录配置 # 页面目录 前面的为宿主机目录 后面的为容器目录如果容器中的目录不存在则会自动创建- /docker/nginx/html:/usr/share/nginx/html (2)nginx.conf 配置文件 路径 root 配置适合 location 路径与文件路径一致的情况路径是拼接的。如 location 为 /wx/root 配置为 /usr/share/html则访问的完整目录 为 /usr/share/html/wx/会把 location 路径拼接在 root 路径后面。
user nginx;
worker_processes auto;http {include /etc/nginx/mime.types;default_type application/octet-stream;server {listen 80;server_name localhost;charset utf-8;location / {root /usr/share/nginx/html; #路径为容器内的路径通过挂载目录实际访问到宿主机目录}}
}路径 alias 配置适合 location 路径与文件路径不一致的情况路径是替换的。如 location 配置为 testalias 配置的文件目录为 /usr/share/html/wx/则访问的目录即为 /usr/share/html/wx/会把 location 的路径替换为 alias 配置的路径。所以建议 alias 后面的路径配置的尽可能就是静态资源所在的目录这样访问起来更加方便。
user nginx;
worker_processes auto;http {include /etc/nginx/mime.types;default_type application/octet-stream;server {listen 80;server_name localhost;charset utf-8;location /test/ {alias /usr/share/nginx/wx/;}}
}(3) 访问测试http:ip:端口/文件路径/test.jpg 2静态资源在多个目录 (1)挂载目录配置需要配置多个挂载目录
# 页面目录
- /docker/nginx/html/images:/usr/share/nginx/html
- /docker/nginx/html/photo:/usr/share/nginx/wx (2)nginx.conf 配置文件
user nginx;
worker_processes auto;http {include /etc/nginx/mime.types;default_type application/octet-stream;server {listen 9016;server_name localhost;charset utf-8;# 路径 root 方式配置# 通过 /html/ 访问即文件路径为 /usr/share/nginx/html/ 目录location /html/ {root /usr/share/nginx;}# 通过 /wx/访问即文件夹路径为 /usr/share/nginx/wx/ 目录location /wx/ {root /usr/share/nginx;}# 路径 alias 方式配置# 通过 /html/ 访问即文件路径为 /usr/share/nginx/html/ 目录location /html/ {alias /usr/share/nginx/html/; # 配置后面带 /}# 通过 /wx/访问即文件夹路径为 /usr/share/nginx/wx/ 目录location /wx/ {alias /usr/share/nginx/wx/; # 配置后面带 /}}
}(3)访问图片 (4) 总结root 和 alias 都用于指定路径在 docker 容器中指向的都是容器中的路径即需要配置挂载目录将宿主机的目录挂载到容器指定的目录。root 中路径配置特别注意最后面没有 / 根据路径访问时会将 location 的路径拼接到 root 指定的路径后面root 配置路径方式是进行路径拼接。alias 配置路径特别注意后面有 / alias 路径配置方式访问时匹配对应的 location会将内容替换为 alias 中配置的完整路径。简而言之root 是路径拼接alias 是路径替换。 3访问共享目录 我们经常需要将常用的软件、文件等归纳整理放在服务器的某个文件夹下为了使用更加的方便这个时候就需要访问服务器上的某个目录。 (1) nginx.conf 配置
user nginx;
worker_processes auto;error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;events {worker_connections 1024;
}http {include /etc/nginx/mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 65;server {listen 80;server_name localhost;charset utf-8;location /test/ {alias /usr/share/nginx/wx/;autoindex on; # 开启自动索引如果不需要可以去掉autoindex_exact_size off; # 显示文件大小autoindex_localtime on; # 显示文件时间 }}
}上面配置中一定要注意如果不添加 autoindex onon 开启自动索引那么访问文件夹时会报 403 forbidden。autoindex on 用于启用目录列表功能当访问没有默认索引文件的目录时Nginx会自动生成包含该目录及子目录的 HTML 页面并返回给客户端。 (2)测试如下 4负载均衡配置 (1)如果服务是单节点则不涉及负载均衡配置
user nginx;
worker_processes auto;pid /var/run/nginx.pid;events {worker_connections 1024;
}http {include /etc/nginx/mime.types;default_type application/octet-stream;sendfile on;keepalive_timeout 60;server {listen 80;server_name localhost;charset utf-8;location / {proxy_pass http://localhost:8008;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}
} (2)服务多节点负载均衡配置 负载均衡将请求分发到不同的后端服务节点这样可以减轻服务压力提高服务可用性。负载均衡可以更加合理的利用服务器的资源有的服务器配置高有的服务器剩余资源少那么权重轮询可以更加合理的使用服务器的资源。 负载均衡部署方式可以是同一个机器多个节点也可以是多机器多节点。单机器多节点的有点在于资源利用率高、不存在跨节点通信的问题。通常用于开发环境、小型应用、或者非关键服务。单机器多节点存在单点故障的问题多节点共享资源存在性能问题。多机器多节点性能高、方便拓展、不存在单点故障的问题缺点是成本高、如果跨机通信维护和配置复杂。多机器多节点适用于中大型应用对性能要求高的服务。
user nginx;
worker_processes auto;error_log /var/log/nginx/error.log notice;
pid /var/run/nginx.pid;events {worker_connections 1024;
}http {include /etc/nginx/mime.types;default_type application/octet-stream;access_log /var/log/nginx/access.log main;sendfile on;#tcp_nopush on;keepalive_timeout 65;#gzip on;# 负载均衡两个节点的ip和端口配置ip和端口即可不需配置http头信息# upstream 定义一组后端服务器# 默认负载均衡方式将请求依次发送给后端服务节点upstream backend {server 11.22.xx.xx:8001;server 11.22.xx.xx:8002;}# 加权轮询权重越大的节点处理的请求越多upstream backend {server 11.22.xx.xx:8001 weight8;server 11.22.xx.xx:8002 weight2;}# ip 哈希轮询 根据客户端的 IP 地址进行哈希计算确保同一个客户端的请求总是分配给同一台后端服务器。upstream backend {ip_hash; # 启用 IP 哈希server 11.22.xx.xx:8001;server 11.22.xx.xx:8002;}server {listen 80;server_name localhost;charset utf-8;location / {proxy_pass http://backend; # 将请求转发到 upstream 组proxy_pass 将请求转发给指定的目标服务器proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;}}
} nginx 常用轮询方式 默认轮询默认轮询方式会将请求依次转发给后端服务器 加权轮询配置不同的权重权重越大的服务器处理的请求越多。主要常用于不同服务器的配置、性能有差距或者剩余服务器资源的合理利用。 IP 哈希轮询根据客户端的 IP 地址进行哈希计算确保同一个客户端的请求总是分配给同一台后端服务器。根据客户端 IP 分配请求适合会话保持。 以上为 Nginx 主要内容在平常的开发工作中可以进行静态资源的访问。如有小程序静态资源、pc端静态资源则将不同的静态资源放在不同的目录下配置不同的挂载目录。root 类型配置的 location 路径会拼接到 root 配置的路径后面。alias 类型配置的 location 路径主要是访问使用实际是将其替换为 alias 后面配置的路径。所以 root 适用于访问路径和静态资源路径一致的场景alias 适用于访问路径和静态资源路径不一致的场景。使用负载均衡配置配置可以更加合理的使用服务器的资源提高服务可用性。