Fastadmin新测可用的nginx配置

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Fastadmin新测可用的nginx配置相关的知识,希望对你有一定的参考价值。

参考技术A Fastadmin新测可用的nginx配置

nginx Windows:设置站点可用配置

【中文标题】nginx Windows:设置站点可用配置【英文标题】:nginx Windows: setting up sites-available configs 【发布时间】:2012-10-15 18:40:36 【问题描述】:

我正在尝试在我的 Windows 开发环境中设置 Nginx。我找不到如何在 Linux 上创建类似于"sites-enabled" 的东西,Nginx 会在其中寻找(链接到)活动虚拟主机配置。

有没有办法对具有实际配置文件快捷方式的目录和 Nginx 扫描该目录的目录执行类似的操作?或者除了将主机配置复制到nginx.conf之外,还有其他方法可以连接虚拟主机配置吗?

【问题讨论】:

【参考方案1】:

在 Windows 中,您必须提供配置文件所在目录的完整路径。有两个文件需要更新:nginx.conf 告诉 nginx 在哪里可以找到网站,localhost.conf 是网站的配置。

假设nginx安装在C:\nginx。如果安装目录位于另一个路径,则必须相应地更新该路径,无论它出现在以下两个配置文件中的任何位置。

nginx.conf

位置:C:\nginx\conf

worker_processes  1;
events 
    worker_connections  1024;

http 
    include       mime.types;
    default_type  application/octet-stream;
    #to read external configuration.
    include "C:/nginx/conf/sites-enabled/*.conf";

localhost.conf

位置:C:\nginx\conf\sites-enabled

server 
        listen       80;
        server_name  localhost;
        location / 
            root   html;
            index  index.html index.htm;
        
        error_page   500 502 503 504  /50x.html;
        location = /50x.html 
            root   html;
        

【讨论】:

【参考方案2】:

一些 nginx 的 Linux 软件包使用的“启用站点”方法利用了 include 指令,它可以理解 shell 通配符,请参阅 http://nginx.org/r/include。您也可以在自己的配置中使用它,例如

http 
    ...
    include /path/to/sites/*.conf;

请注意,尽管这种方法可能会非常令人困惑(特别是,除非您明确使用 default_server,否则很难判断哪个服务器是默认服务器)。

【讨论】:

这些都不适合我:include f:\code\mysite\dev-ops\nginx\dev\mysite.conf;include "f:\code\mysite\dev-ops\nginx\dev\mysite.conf";include f:/code/mysite/dev-ops/nginx/dev/mysite.conf; @Ryan 避开你的反斜杠。 @Greg 感谢您的提示! 我正在尝试包含一个自定义配置,例如:include "C:\\nginx-1.19.6\\conf\\conf.d\*.conf";但它不起作用【参考方案3】:

以下内容对我有用,但仅在我将主要 nginx exe 文件夹从 c:/Program Files (x86)/nginx-1.7.0 移动到 c:/nginx-1.7.0 之后(因为我认为它不能很好地处理文件路径中的空格):

http 
    ...
    include "f:/code/mysite/dev-ops/nginx/dev/mysite.conf";

【讨论】:

【参考方案4】:

在撰写此答案之前(2022 年 1 月 7 日),没有其他答案完全回答了这个问题。 通配符 (include a/*.b) 仅包含无法禁用/启用的虚拟主机列表。 sites-enabledsites-available 是关于能够在不删除相应配置文件的情况下禁用虚拟主机。 Nginx 只有一个配置文件(nginx.conf),其中又包含其他文件。包含文件的能力导致了启用/可用设计。 所以目录结构如下:

conf // or whatever
  nginx.conf
  sites-enabled
    default // symlink to sites-available/default.conf
  sites-available
    default.conf // You can omit the extension but I just like it
    whatever.conf
    some vhost.conf
    another vhost.conf
    disabled vhost.conf
    other config files ...
# nginx.conf
http 
  # ...
  include path/to/sites-enabled/* # include the enabled ones

在 windows (cmd) 中你可以这样做:

mklink Link Target
# for example
mklink default X:/path/to/nginx/conf/sites-available/default.conf

很多人认为 windows 没有符号链接,它确实有 :-)

我使用稍微复杂的配置目录结构,用于开发:

conf/
  nginx.conf
  sites-enabled/
    some-site // sites-available/some-site/env where env is either dev or prod
  sites-available/
    some-site/
      prod.conf
      dev.conf
      dev/
        www.conf // vhost (server ) for the www subdomain (e.g. www.example.com), has 2 server directives, one for http and the other for https, respectively including `snippets/http.conf` and `snippets/https.conf`. You only need to set `server_name` and include http.conf in order to make http redirect to https properly. You may do `proxy_pass` in https but not in http.
        api.conf // same as above but for the api subdomain
        root.conf // vhost for the root domain with (e.g example.com without any subdomain prefix)
      prod/
        www.conf // Same as dev/ but mostly without `proxy_pass` since you're mostly delivering static files
        api.conf
        root.conf
      snippets/
        http.conf  // listen on ipv4 80/ipv6 80 and redirect http to https
        https.conf // listen on ipv4 443 ssl/ipv6 443 ssl and `include`s ssl.conf
        ssl.conf  // ssl config, pay attention to permission

【讨论】:

【参考方案5】:

您可以在 nginx.config 中包含带有相对路径的配置(相对路径只是配置文件本身的路径,与日志路径相反):

http 
  include       mime.types;
  default_type  application/octet-stream;
  include       ../sites-enabled/*.conf;
  ...

【讨论】:

以上是关于Fastadmin新测可用的nginx配置的主要内容,如果未能解决你的问题,请参考以下文章

Ngins 配置常用八大实例

ngin配置301重定向设置方法和nginx子目录301重定向

ngin隐藏版本号

nginx服务器配置

Nginx+Keepalived高可用负载均衡

haproxy+keepalived实现高可用