Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务。
安装
Docker 安全
# 下载容器docker pull nginx:1.19.3# 运行容器docker run -d --name "nginx" -p 80:80 -p 443:443 nginx:1.19.3
Linux 安装
# Centosyum install nginx# Debianapt install nginx
配置
目录说明
默认安装目录 /etc/nginx

mime.typs 文件后缀的映射 nginx.conf 配置文件的入口 conf.d 是http 子配置文件夹

注释基础配置
# root@k8s-m:/etc/nginx# cat nginx.conf# 系统用户名user nginx;# 工作进程worker_processes 1;# 日志存放路径error_log /var/log/nginx/error.log warn;pid /var/run/nginx.pid;# 默认events {worker_connections 1024;}# http 的监听http {# 头文件include /etc/nginx/mime.types;# 默认的响应typedefault_type application/octet-stream;# 转发的headrlog_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';# 请求日志access_log /var/log/nginx/access.log main;# sendfile实际上是 Linux2.0+以后的推出的一个系统调用# sendfile是个比 read 和 write 更高性能的系统接口sendfile on;# 第一次握手之后的超时时间;# 在此期间内后续的http请求可以复用已建立的TCP连接,从而节省新建TCP连接握手的时间与资源。keepalive_timeout 65;# 指定其他子目录的配置include /etc/nginx/conf.d/*.conf;}
前端资源配置 (Vue 虚拟路由)
# root@k8s-m:/etc/nginx/conf.d# cat xinsj-admin.confserver {# 端口listen 80;# 域名, 空格分隔多个域名 xinsj-admin1.yuemia.com xinsj-admin2.yuemia.comserver_name xinsj-admin.yuemia.com;# root 整个配置只能出现一次, 指定的跟目录, 其他目录可以用 aliasroot /html/xinsj-admin;# 默认页面index index.html index.htm;# 配置Vue 的虚拟路由try_files $uri $uri/ /index.html;# 启用压缩gzip on;# 资源大于1K才会压缩gzip_min_length 1k;# 设置gzip申请内存的大小,其作用是按块大小的倍数申请内存空间,param2:int(k) 后面单位是k。这里设置以16k为单位,按照原始数据大小以16k为单位的4倍申请内存gzip_buffers 4 16k;# 等级1-9 9最小的压缩,传输最快 但是消耗cpugzip_comp_level 6;# 压缩的资源类型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;# 启用应答头"Vary: Accept-Encoding", GZIP 压缩标记gzip_vary off;# IE6对Gzip不怎么友好,不给它Gzip了gzip_disable "MSIE [1-6]\.";}
后端反向代理
# root@k8s-m:/etc/nginx/conf.d# cat xinsj.confserver {listen 80;server_name xinsj.yuemia.com;root /html/ypxsj;gzip on;gzip_min_length 1k;gzip_buffers 4 16k;gzip_comp_level 6;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;gzip_vary off;gzip_disable "MSIE [1-6]\.";# 请求Body 大小client_max_body_size 200m;# 请求head 超时client_header_timeout 30m;# 请求与Body的超时client_body_timeout 30m;# 连接超时proxy_connect_timeout 360s;# 读取超时以及发送超时proxy_read_timeout 30m;proxy_send_timeout 30m;location /mobile/ {alias /html/xinsj/mobile/;index index.html index.htm;try_files $uri $uri/ /mobile/index.html;}location /WW_verify_hXpspD3AQMjrL6vY.txt {return 200 'hXpspD3AQMjrL6vY';}# 代理的路径location /api/ {# 代理地址, 如果这里加了 / ; 就是基于 /开始, 否则就是 /api 开始proxy_pass http://10.96.177.145:8033/;# 添加头部proxy_set_header Host $http_host;# 添加头部, 服务器IPproxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Scheme $scheme;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;# Web Socket 支持proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "upgrade";proxy_http_version 1.1;# 连接超时的时间proxy_connect_timeout 4s;# 读取超时的时间proxy_read_timeout 900s;# 发送超时的时间proxy_send_timeout 12s;}}
