标签: nginx

Nginx 启用站点命令

我们都知道如何在 Linux 上使用 apache 启用网站。我很确定我们都同意使用 a2ensite 命令。

不幸的是,Nginx 没有默认的等效命令,但确实发生了我在 ubuntu 上安装了一些允许我启用/禁用站点并列出它们的包。

问题是我不记得这个包的名字。

有人知道我在说什么吗?

请告诉我这个包的名称和命令名称。

website nginx command-line-interface command

170
推荐指数
4
解决办法
37万
查看次数

无需停机即可重新加载 Nginx 配置

我使用 nginx 作为反向代理。每当我使用它更新配置时

sudo "cp -r #{nginx_config_path}* /etc/nginx/sites-enabled/"
sudo "kill -s HUP `cat /var/run/nginx.pid`"
Run Code Online (Sandbox Code Playgroud)

我面临短暂的停机时间。我怎样才能避免这种情况?

nginx

168
推荐指数
5
解决办法
29万
查看次数

站点可用与站点启用与 conf.d 目录(Nginx)的区别?

我有一些使用 linux 的经验,但没有使用 nginx 的经验。我的任务是研究应用服务器的负载平衡选项。

我已经使用 apt-get 安装了 nginx,一切看起来都很好。

我有一些问题。

sites-available 文件夹和 conf.d 文件夹有什么区别。这两个文件夹都包含在 nginx 的默认配置设置中。教程使用两者。它们的用途是什么,最佳实践是什么?

启用站点的文件夹有什么用?我如何使用它?

默认配置引用一个 www-data 用户?我必须创建那个用户吗?如何为该用户提供运行 nginx 的最佳权限?

linux ubuntu configuration nginx web-server

157
推荐指数
4
解决办法
12万
查看次数

如何将 Nginx 设置为缓存反向代理?

我最近听说 Nginx 为其反向代理功能添加了缓存。我环顾四周,但找不到太多关于它的信息。

我想将 Nginx 设置为 Apache/Django 前面的缓存反向代理:将一些(但不是全部)动态页面的 Nginx 代理请求发送到 Apache,然后缓存生成的页面并从缓存中为这些页面提供后续请求。

理想情况下,我想以两种方式使缓存无效:

  1. 设置缓存项目的过期日期
  2. 显式地使缓存项无效。例如,如果我的 Django 后端更新了某些数据,我想告诉 Nginx 使受影响页面的缓存无效

是否可以设置 Nginx 来做到这一点?如何?

nginx proxy varnish reverse-proxy

149
推荐指数
6
解决办法
17万
查看次数

如何使用 nginx proxy_pass 删除路径

我在 上有一个正在运行的 Web 应用程序http://example.com/,并且想在http://example.com/en. 上游服务器proxy_pass似乎可以工作,但有一个问题:

upstream luscious {
 server lixxxx.members.linode.com:9001;
}

server {
  root /var/www/example.com/current/public/;
  server_name example.com;

  location /en {
    proxy_pass http://luscious;
  }
}
Run Code Online (Sandbox Code Playgroud)

打开时example.com/en,我的上游应用程序返回404 not found /en。这是有道理的,因为上游没有 path /en

proxy_path正确的解决方案吗?我应该重写“上游”以便它/en作为根路径监听吗?或者是否有指令允许我重写传递给上游的路径?

nginx path proxypass

128
推荐指数
4
解决办法
20万
查看次数

如何在nginx日志中输出变量进行调试

我正在测试 nginx 并希望将变量输出到日志文件。我该怎么做以及它会去哪个日志文件(访问或错误)。

nginx

123
推荐指数
5
解决办法
19万
查看次数

反向代理时让 nginx 传递上游的主机名

我用主机名运行了几个 docker 容器:

web1.local web2.local web3.local

由 nginx 根据主机名路由到这些。我在此设置(在连接到互联网的不同机器上)前面有一个代理,我将上游定义为:

    upstream main {
      server web1.local:80;
      server web2.local:80;
      server web3.local:80;
    }
Run Code Online (Sandbox Code Playgroud)

和实际的虚拟主机描述:

    server {
      listen 80;
      server_name example.com;
      location / {
        proxy_pass http://main;
      }
    }
Run Code Online (Sandbox Code Playgroud)

现在,因为容器接收主机名“main”而不是“web1.local”,它们不能正确响应请求。

问题:如何在代理请求时告诉 nginx 在 Host: 标头中传递上游服务器的名称而不是上游服务器组的名称?

nginx reverse-proxy

122
推荐指数
4
解决办法
29万
查看次数

连接到上游时 connect() 失败(111:连接被拒绝)

502 Gateway在访问目录 ( http://example.com/dev/index.php) 中的 PHP 文件时遇到错误。日志只是这样说:

2011/09/30 23:47:54 [error] 31160#0: *35 connect() failed (111: Connection refused) while connecting to upstream, client: xx.xx.xx.xx, server: domain.com, request: "GET /dev/ HTTP/1.1", upstream: "fastcgi://127.0.0.1:9000", host: "domain.com"
Run Code Online (Sandbox Code Playgroud)

我以前从未经历过这种情况。此类502 Gateway错误的解决方案是什么?

这是nginx.conf

user www-data;
worker_processes 4;
pid /var/run/nginx.pid;

events {
    worker_connections 768;
    # multi_accept on;
}

http {

    ##
    # Basic Settings
    ##

    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    keepalive_timeout 65;
    types_hash_max_size 2048;
    # server_tokens off;

    # server_names_hash_bucket_size 64; …
Run Code Online (Sandbox Code Playgroud)

nginx 502-error

117
推荐指数
4
解决办法
50万
查看次数

是否可以让 Nginx 监听不同的端口?

我用一个Linux Azure VM创建了一个Nginx,是否可以让nginx监听不同的端口,这样当我更改端口号时,内容会有所不同。我发现如果我在 VM 上创建了两个或多个与 HTTP 相关的端口,就会发生冲突。任何人都可以帮助我吗?

linux nginx virtual-machines azure

115
推荐指数
2
解决办法
20万
查看次数

为从 nginx 提供的静态内容设置过期标头

我正在使用 nginx 来为我的静态内容提供服务,有没有办法为每个满足特定规则的文件设置过期标头?例如,我可以为所有扩展名为“.css”的文件设置 expires 标头吗?

nginx cache

112
推荐指数
5
解决办法
17万
查看次数