nginx

Mr.Jia 2025-3-22 192 3/22

下载安装:docker pull nginx

构建容器:docker run --name nginx -p 80:80 -d nginx

添加值网络:docker network connect my_network nginx

进入容器:docker exec -it nginx  /bin/bash

编辑配置文件:vi /etc/nginx/nginx.conf——————》 "遇到command not found"---》liunx---yum install vi   手动分割 dockers ---apt-get update更新      apt-get install vim   安装

server {
  listen 80;
  server_name your_domain.com;  # 替换为您的域名或 IP 地址

  location / {
    root /var/www/html;  # 替换为前端应用的路径
    index index.html;
  }
}

按下 Esc 键      输入 :wq

重启nginx -s reload

 

宏观构造:

Nginx配置文件的结构,包括全局块、events块、http块,以及http块内部的server块和location块

以下几个层级模块(按优先级从高到低):

  1. 全局块:配置影响整个 Nginx 进程的全局参数(如用户、工作进程数)。
  2. events 块:配置网络连接处理模型(如最大连接数)。
  3. http 块:所有 HTTP 相关的配置(包括反向代理、缓存、日志等)。
  4. server 块:定义虚拟主机(如域名、端口)。
  5. location 块:处理特定请求路径的规则(如 /api 或 /websocket)。
# 全局块
user nginx;
worker_processes auto;

# events 块
events {
    worker_connections 1024;
}

# http 块
http {
    # 全局 HTTP 配置(如日志格式、MIME 类型)
    include /etc/nginx/mime.types;
    access_log /var/log/nginx/access.log;

    # server 块(虚拟主机)
    server {
        listen 80;
        server_name example.com;

        # location 块(普通 HTTP 请求)
        location / {
            proxy_pass http://backend:8080;
        }

        # location 块(WebSocket 请求)
        location /websocket/ {
            proxy_pass http://backend:8080/;
            # WebSocket 专属配置
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection "upgrade";
        }
    }
}

HTTP 与 WebSocket 的配置区别

  • 典型场景:代理 REST API、静态文件等。
location / {
    proxy_pass http://backend:8080;  # 后端服务地址
    proxy_set_header Host $host;      # 传递域名
    proxy_set_header X-Real-IP $remote_addr;  # 传递客户端 IP
}
  • 核心需求:支持协议升级(从 HTTP 到 WebSocket)。
  • Upgrade 和 Connection 头:触发 WebSocket 协议升级。
  • proxy_http_version 1.1:WebSocket 需要 HTTP/1.1 支持。
location /websocket/ {
    proxy_pass http://backend:8080/;
    proxy_http_version 1.1;  # 必须使用 HTTP/1.1
    proxy_set_header Upgrade $http_upgrade;  # 协议升级头
    proxy_set_header Connection "upgrade";  # 保持长连接
    proxy_set_header Host $host;
    proxy_read_timeout 3600s;  # 长连接超时时间
}

 

 

- THE END -

Mr.Jia

3月22日10:28

最后修改:2025年3月22日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论