域名已经处理 不增加 http 块,可以正常访问,证书正常,增加了 http 块就报证书错误,请教一下。全部都 docker 启动 我的 nginx 配置 如下
worker_processes auto; # 自动设置为 CPU 核心数
worker_rlimit_nofile 100000; # 增加每个 worker 进程可以打开的文件数
events {
  worker_connections 4096; # 增加每个 worker 进程的最大连接数
  multi_accept on; # 允许每个 worker 进程同时接受多个连接
}
http {
  include /etc/nginx/mime.types;
  default_type application/octet-stream;
  sendfile on;
  keepalive_timeout 65;
  gzip on;
  server {
    listen 80;
    server_name es.x.com.cn;
    return 301 https://$server_name$request_uri;
  }
  server {
    listen 443 ssl;
    server_name es.x.com.cn;
    # SSL 证书和密钥配置
    ssl_certificate /usr/share/nginx/html/ssl-qianduan/es.x.com.cn_bundle.pem;
    ssl_certificate_key /usr/share/nginx/html/ssl-qianduan/es.x.com.cn.key;
    # SSL 优化配置
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256';
    ssl_prefer_server_ciphers on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    ssl_stapling on;
    ssl_stapling_verify on;
    location / {
      root /usr/share/nginx/html; # 路径改成自己的 dist 路径
      index index.html index.htm;
      try_files $uri $uri/ /index.html; #解决刷新页面变成 404 问题的代码
    }
    location /prod-api/ {
      proxy_set_header Host $http_host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header REMOTE-HOST $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_pass http://172.16.238.13:8089/;
    }
  }
  server {
    listen 80;
    server_name esb.x.com.cn;
    return 301 https://$server_name$request_uri;
  }
  server {
    listen 443 ssl;
    server_name esb.x.com.cn;
    # SSL 证书和密钥配置
    ssl_certificate /usr/share/nginx/html/ssl-houduan/esb.x.com.cn_bundle.pem;
    ssl_certificate_key /usr/share/nginx/html/ssl-houduan/esb.x.com.cn.key;
    location / {
      proxy_set_header Host $http_host;
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header REMOTE-HOST $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_pass http://172.16.238.13:8089/;
    }
  }
  # 阻止通过 IP 地址或未知的域名访问
  server {
    listen 80 default_server;
    listen 443 default_server ssl;
    # SSL 证书和密钥配置
    ssl_certificate /usr/share/nginx/html/ssl-houduan/esb.x.com.cn_bundle.pem;
    ssl_certificate_key /usr/share/nginx/html/ssl-houduan/esb.x.com.cn.key;
    server_name es.x.com.cn;
    return 444; # 返回一个非标准的状态码,通常用于阻止客户端的访问
  }
}
|      1Dragonish3600      2024-08-19 17:04:18 +08:00 via iPhone 你好歹把具体的错误信息发出来啊…… | 
|  |      3xinzi OP 把 ``` worker_processes auto; # 自动设置为 CPU 核心数 worker_rlimit_nofile 100000; # 增加每个 worker 进程可以打开的文件数 events { worker_connections 4096; # 增加每个 worker 进程的最大连接数 multi_accept on; # 允许每个 worker 进程同时接受多个连接 } http { include /etc/nginx/mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; gzip on; ``` 去掉就可以正常访问,加上就报错 没有证书 | 
|  |      5Alucns      2024-08-19 17:10:43 +08:00 nginx -t 把错误报告发上来吧。 | 
|  |      6xinzi OP @Aluhao #5  /docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh 10-listen-on-ipv6-by-default.sh: info: /etc/nginx/conf.d/default.conf is not a file or does not exist /docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh /docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh /docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh /docker-entrypoint.sh: Configuration complete; ready for start up 2024/08/19 17:26:52 [emerg] 1#1: "worker_processes" directive is not allowed here in /etc/nginx/conf.d/nginx.conf:1 nginx: [emerg] "worker_processes" directive is not allowed here in /etc/nginx/conf.d/nginx.conf:1 证书没问题 | 
|  |      7YaD2x      2024-08-19 17:38:22 +08:00 /etc/nginx/conf.d/default.conf is not a file or does not exist | 
|      8f1ush      2024-08-19 17:55:06 +08:00 @xinzi  nginx.conf 文件写重复了吧,默认 nginx.conf 路径是 /etc/nginx/nginx.conf ,看你的报错是 /etc/nginx/conf.d/nginx.conf 路径下面又有一个了 | 
|  |      9darkengine      2024-08-19 18:14:29 +08:00 [emerg] 1#1: "worker_processes" directive is not allowed here in /etc/nginx/conf.d/nginx.conf:1 不是提了第一行有问题? default.conf 那个只是 info ,不用管。 | 
|  |      10darkengine      2024-08-19 18:18:39 +08:00 | 
|  |      11xinzi OP @ladypxy @Aluhao @darkengine @YaD2x @f1ush  感谢各位 找到问题了 nginx 有 2 哥配置文件 一个是 /etc/nginx/nginx.conf 一个是 /etc/nginx/conf.d/nginx.conf 因此 worker_processes auto; # 自动设置为 CPU 核心数 worker_rlimit_nofile 100000; # 增加每个 worker 进程可以打开的文件数 参数需要配置在 /etc/nginx/nginx.conf 而不是 /etc/nginx/conf.d/nginx.conf 这 2 个参数是全局参数 |