Nginx(三): 项目实战之conf

发布于:2024-04-27 ⋅ 阅读:(20) ⋅ 点赞:(0)

conf文件详解

#user  nobody;
# 设置了Nginx的工作进程数。这里设置为1,表示只有一个工作进程。通常在多核CPU的服务器上,可以设置为与CPU核心数相等的值以提高性能
worker_processes  1;

# 设置了Nginx工作进程的最大文件打开数量限制。这里设置为65535,这有助于防止因文件描述符耗尽导致的性能问题
worker_rlimit_nofile 65535;

# 设置存储Nginx进程ID的文件路径。这有助于管理和控制Nginx进程
pid        logs/nginx.pid;

# 指令用于定义错误日志文件的路径和日志级别。这里设置为/var/log/nginx/error.log,并且日志级别为warn,表示只记录警告级别的错误信息
error_log  /var/log/nginx/error.log warn;

events {
    # 这个指令设置了每个工作进程能够同时打开的最大连接数。这里设置为1024
    worker_connections  1024;
}

# 与HTTP服务相关的配置
http {
    map $http_upgrade $connection_upgrade {
        default upgrade;
        ''      close;
    }

    include       mime.types;
    default_type  application/octet-stream;

    # 指令用于添加自定义的HTTP响应头,例如跨域资源共享(CORS)相关的头
    add_header 'Access-Control-Allow-Origin' '*';
    add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
    add_header 'Access-Control-Allow-Credentials' 'true';

    log_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技术,可以提高文件传输效率
    sendfile        on;
    #tcp_nopush     on;

    # 设置了长连接的超时时间
    #keepalive_timeout  0;
    keepalive_timeout  65;

    # upstream定义了服务器组,用于负载均衡
    upstream  10.225.225.99 {
        server 10.225.225.93:99000 weight=1;
        server 10.225.225.96:99001 weight=1;
        server 10.225.225.98:99002 weight=1;
        server 10.225.225.99:99003 weight=1;
        ip_hash;
    }

    upstream websocket{
        server 10.225.225.93:99060 weight=1;
        server 10.225.225.96:99061 weight=1;
        ip_hash;
    }

    # 定义了虚拟主机的配置
    server {
        listen       80;
        server_tokens off; # 移除 Server Header
   
        server_name  10.225.225.99;

        #charset koi8-r;
        #access_log  logs/host.access.log  main;

        location / {
            root   html;
            index  index default login index.html index.htm default.html default.htm;
            proxy_pass  http://10.225.225.99;

            #设置主机头和客户端真实地址,以便服务器获取客户端真实IP
            proxy_set_header X-Forwarded-Host $host;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Real-IP  $remote_addr;

            # wait api timeout, 30 mins
            proxy_read_timeout 1800;
            #  set request body size, for import and upload attachement
            client_max_body_size 990m;
            
            #  compression-webpack-plugin 配置
            gzip on;
            gzip_min_length 1k;
            gzip_comp_level 9;
            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 on;
            #  配置禁用 gzip 条件,支持正则,此处表示 ie6 及以下不启用 gzip(因为ie低版本不支持)
            gzip_disable "MSIE [1-6]\.";
        }     

        location /mqs-ws/ {
            proxy_pass  http://websocket;
            #  设置主机头和客户端真实地址,以便服务器获取客户端真实IP
            proxy_set_header X-Forwarded-Host $host;
            proxy_set_header X-Forwarded-Server $host;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header X-Real-IP  $remote_addr;
             
            # websocket:
            proxy_http_version 1.1;
            proxy_set_header Upgrade $http_upgrade;
            proxy_set_header Connection $connection_upgrade;                                       
        }

       # Nginx 代理公共靜態資源文件夾
       # ^~表示如果请求的URI以/static/开头,则使用这个location块的配置。这是用于处理对/static/目录下静态资源的请求
        location ^~ /static/ {
            # 对于/static/路径下的请求,Nginx将在html目录下寻找对应的文件
            root html;
        }
       # ~表示使用正则表达式匹配请求的URI。这里的正则表达式匹配以/help-sop/开头的请求。这个location块用于处理对/help-sop/目录下文件的请求
        location ~ /help-sop/ {
            # 对于/help-sop/路径下的请求,Nginx将在html目录下寻找对应的文件
            root html;
        }
                                                        
       # error_page  404              /404.html;
       # 定义了当服务器遇到990、992、993或994错误时,返回的页面是/99x.html
        error_page   990 992 993 994  /99x.html;
        location = /99x.html {
            # 对于请求/99x.html页面的请求,Nginx将在html目录下寻找这个文件
            root   html;
        }
    }
}

网站公告

今日签到

点亮在社区的每一天
去签到