首页 > 系统相关 >Windows 下 Nginx 配置 多个conf 文件的过程与注意事项

Windows 下 Nginx 配置 多个conf 文件的过程与注意事项

时间:2024-01-27 21:11:28浏览次数:33  
标签:set http nginx Windows server Nginx proxy conf

Windows 下配置 Nginx 使用多个conf 文件的Include 路径与Linux 有所不同。

 

如上:

Windows : include ../conf.d/*.conf

Linux:  include  /etc/nginx/conf.d/*.conf;

 

分别来看单个配置文件的内容:

总配置文件

nginx.conf

 
#############################################################
#
#           fengsh998 
#           nginx 反向代理设置,统一集管处,机器不够的话开集群。
#         包括:
#             SSL,限流,跨域,集群,黑名单,白名单,负载均衡
#
#         $PWD = /opt/nginx
#         docker run -p 443:443 -p 80:80 -p 18883:1883 -p 33060:3306 -p 38066:8066 --name nginx
#         -v $PWD/www:/www
#         -v $PWD/conf/nginx.conf:/etc/nginx/nginx.conf
#         -v $PWD/conf/modules:/usr/share/nginx
#         -v $PWD/logs:/wwwlogs
#         -v $PWD/cert:/opt/nginx/cert
#         -d nginx
#############################################################
 
user nginx;
 
#指定进程数
worker_processes auto;
 
#错误日志
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
 
#动态加载外部配置文件【inclue 路径 + *.conf 】
include /usr/share/nginx/modules/*.conf;
 
#每个进程的最大连接数 
events {
    worker_connections 1024;
}
 
http {
    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;
    access_log  /wwwlogs/httpproxy.log  main;
 
    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;
 
    include             /etc/nginx/mime.types;
    default_type        application/octet-stream;
 
    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    # 加载配置
    include /etc/nginx/conf.d/*.conf;
    #加载upstream模块
    include /usr/share/nginx/ups_modules_http.conf;
    #加载http server 模块
    include /usr/share/nginx/http_servers/*.conf;    
 
}
 
stream {
    log_format proxy '$remote_addr [$time_local] '
                 '$protocol $status $bytes_sent $bytes_received '
                 '$session_time "$upstream_addr" '
                 '"$upstream_bytes_sent" "$upstream_bytes_received" "$upstream_connect_time"';
 
    access_log /wwwlogs/tcp-access.log proxy;
    open_log_file_cache off;
 
    #挂载盘opt/nginx/conf/modules
    include /usr/share/nginx/stream_servers/*.conf;
}

 

ups_modules_http.conf

    ################################################ 
    #   可以设多个server进行负载均衡
    #   IP绑定 ip_hash每个请求按访问ip的hash结果分配,这样
    #   每个访客固定访问一个后端服务器,可以解决session的问题。
    #
    ################################################# 
    upstream jira_server {
       server 172.xx.206.109:8080;
    }
 
    upstream wiki_server {
       server 172.xx.206.109:8090;
    }
 
    upstream git_server {
       server 172.xx.206.109:8999;
    }
 
    upstream hostapi_arm2_server {
       server 172.xx.206.111:32000;
    }
 
    upstream kibana_server {
       #server 172.xx.188.21:5601;
       #server 172.xx.206.112:5601;
       server 172.xx.218.227:5601;
    }
 
    #测试用
    upstream eureka_server {
       #server 172.xx.188.23:8761;
       server 172.xx.188.28:8001;
    }
 
    upstream nexus_admin { server 47.xxx.xx.126:18888 ; }
    upstream nexus_registry { server 47.xxx.xx.126:18888 ; }

 

mysql.conf

 
    upstream mysql_server {
        server 172.xx.xxx.228:33060;
        server 172.xx.xxx.229:33060;
    }
 
    server {
        listen     3306;
        proxy_connect_timeout 10s;
        proxy_timeout 525600m;
        proxy_pass mysql_server;  
    }
 

 

match.conf 当一个顶级通配域名时,可以通过规则进行匹配处理。

 
    #将所有来自http的都自动跳转为https;
    server { 
       listen 80;
       server_name .company.com;       #使用通配的方式
       rewrite ^(.*)$ https://$http_host$request_uri? permanent;
    }
 
    server {
        listen       443 ssl;
        listen       [::]:443 ssl;
 
        #访问的域名
        server_name  .company.com;
   
        #ssl 证书配置
        ssl_certificate "/opt/nginx/cert/company.com.pem";
        ssl_certificate_key "/opt/nginx/cert/company.com.key";
 
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
 
        # 泛域名开始配置 subdomain.domain.com的格式
        if ( $host ~* (.*)\.(.*)\.(.*) ) {
            set $domain_pix $1; #获取当前的域名前缀 eg wiki.company.com则domain被设置为wiki
        }
 
        if ( $host ~* (.*)\.(.*)\.(.*)\.(.*) ) {
           set $subdomain_pix $1;
        }
 
        if ($subdomain_pix = eureka) {
          set $goserver eureka_server;
        }
 
        #jira
        if ($domain_pix = jira) {
            set $goserver jira_server;
           # set $goserver kibana_server; 
        }
 
        if ($domain_pix = wiki2) {
            set $goserver wiki_server;
        }
 
        if ($domain_pix = arm2api) {
            set $goserver hostapi_arm2_server;
        }
 
        #gitlab 映射
        if ($domain_pix = gitlab) {
            set $goserver git_server;
        }
 
        #kibana
        #if ($domain_pix = kibana) {
        #   set $goserver kibana_server;
        #}
 
        #代理配置
        location / {
 
                #开启代理错误拦截功能
                proxy_intercept_errors on;
  
                proxy_pass  http://$goserver;
                proxy_set_header Host $host;
                #缓存key规则,自动清除缓存
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header X-Forwarded-Server $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Forward-Proto https;
 
                proxy_buffering off;
                proxy_request_buffering off;
 
                client_max_body_size 1G;
                proxy_connect_timeout 3000;
                proxy_send_timeout 3000;
                proxy_read_timeout 3000;
 
                tcp_nodelay        on;  
                
        }
 
        location /localwebsite {
            root  /www/mobile;
        }
 
        location /kibana/ {
           auth_basic "请输入用户密码"; #这里是验证时的提示信息
           auth_basic_user_file /opt/nginx/cert/passwd/fkibana;
 
           proxy_pass http://kibana_server/;
           rewrite ^/kibabna/(.*)$ /$1 break;
           proxy_set_header X-Real-IP $remote_addr;
           proxy_set_header Host $host:$server_port;
           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
           proxy_http_version 1.1;
        }
 
        #屏蔽wiki直接输入访问,所以做了个重定向
        location /browsepeople.action {
            rewrite ^(.*)$ https://wiki.company.com permanent;
        }
        
        error_page 404 /404.html;
        location = /40x.html {
 
        }
 
        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }   ###end server ssl

 

dashbroad.conf

 
    server {
 
           listen 80;
          
           server_name  dashboard.company.com;
 
           location / {
                root      /www/dashboard;
                index   index.html  index.htm;
           }
 
           location ^~ /visitor/ {
                root /www/;
                try_files $uri $uri/ /index.html last;
                index   index.html  index.htm;
           }
 
#           location / {
 #                 proxy_set_header Host $host;
  #              proxy_set_header  X-Real-IP        $remote_addr;
   #             proxy_set_header  X-Forwarded-For  $proxy_add_x_forwarded_for;
    #            proxy_set_header X-NginX-Proxy true;
     #            proxy_pass http://172.xx.xxx.112:18900;
#       }
 
           error_page  404 403 500 502 503 504 /404.html;
           location = /404.html {
                root  /www;
           }
 
    }

 

标签:set,http,nginx,Windows,server,Nginx,proxy,conf
From: https://www.cnblogs.com/Fooo/p/17991949

相关文章

  • 又学了一招:微软科普Windows 11电脑自动清理释放硬盘
    你是不是每次都等到电脑内存被占满,磁盘“红”成一片,才想起来去清理那些没用的程序or文件?今天微软官方科普了一个小技巧:既然都用上了Windows11,为什么不让电脑帮你自动清理呢?开启存储感知功能,再不用自己动手,电脑就能通过清理回收站文件和临时文件,帮你的内存空间“自动瘦身”。......
  • 使用 certbot 通过 Let's Encrypt 申请免费证书,部署到 nginx 中,开启 https
    使用certbot可以很方便、快捷的通过Let’sEncrypt申请免费的证书,并部署到nginx中,开启https在Linux通过命令安装安装Nginxsudoaptinstallnginx安装certbot先安装snapsudoaptinstallsnap再通过snap安装certbotsudosnapinstall--classiccertb......
  • start cmd or shell from current directory in windows file explorer
    startwindowscmdincurrentdirectoryMypreferanceofstartingcmdinacertaincertaindirectoryissimplynavigatingtothedirectroy;pressingctrl+Ltofocustheaddressbar;typingcmd+enter.Bythisway,anewconsolewindowwillstartandit......
  • Git必知必会基础(12):远程冲突(conflicts)解决--merge
     演示场景虽然每次合并代码前会先把分支更新到最新,但是在你pull后到push前这段时间,可能其它小伙伴又push了,那么你的分支就不是最新的了在push的时候就会失败,比如遇到这种提示信息:Togitee.com:qzcsbj/pytest_apiautotest.git![rejected]master->master(fetchfirst)error:......
  • PowerShell编写Windows服务器的DDNS-ipv6客户端
    这个代码保存成ddnsv6.fm20.cn.ps1就能正常运行了functionGet-GUID(){#指定注册表路径$path="HKLM:\Software\Firadio\ddnsv6.fm20.cn"#如果注册表路径不存在则创建if(-not(Test-Path$path)){New-Item-Force-Path$path>$null}......
  • Burp Suite Professional 2024.1.1 (macOS, Linux, Windows) - Web 应用安全、测试和
    BurpSuiteProfessional2024.1.1(macOS,Linux,Windows)-Web应用安全、测试和扫描BurpSuiteProfessional,Test,find,andexploitvulnerabilities.请访问原文链接:https://sysin.org/blog/burp-suite-pro/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgB......
  • Burp Suite Professional 2024.1.1 for Windows x64 (sysin) - 世界排名第一的网络渗
    BurpSuiteProfessional2024.1.1forWindowsx64(sysin)-世界排名第一的网络渗透测试工具包请访问原文链接:https://sysin.org/blog/burp-suite-pro-win/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgBurpSuiteProfessionalTheworld’s#1webpenetration......
  • Windows内核开发-[4]、内核编程基础(1)
    在前面的文章中,介绍了如何配置开发环境以及如何进行调试。接下来的几篇文章,将会重点介绍内核编程中所需要了解的一些理论基础。我写这个系列文章的主要目的是方便以后自己查阅,同时也给正在学习内核开发的小伙伴一些参考,所以我会尽可能地以最简单的方式进行描述。如果在阅读过程......
  • 在 Python 的 `glob` 模块中,文件名的大小写敏感性取决于你的操作系统。在 Unix 和 Lin
    在Python的`glob`模块中,文件名的大小写敏感性取决于你的操作系统。在Unix和Linux系统中,`glob`是区分大小写的。然而,在Windows和MacOS中,`glob`是不区分大小写的。例如,如果你在Unix或Linux系统中运行以下代码:```pythonimportglobfiles=glob.glob('*.xlsx')......
  • windows下java启动失败
    windows下java启动失败一、问题现象微服务原来在linux下部署,现在有客户环境为windowsserver,把linux的包拷到windowsserver下,使用java-jar命令无法启动。同样的包在linux可以启动,就是在windows启动不了。问题提示:现象一:2023-10-2713:40:05.682ERROR11736---[main]o.......