我们都知道如何在 Linux 上使用 apache 启用网站。我很确定我们都同意使用 a2ensite 命令。
不幸的是,Nginx 没有默认的等效命令,但确实发生了我在 ubuntu 上安装了一些允许我启用/禁用站点并列出它们的包。
问题是我不记得这个包的名字。
有人知道我在说什么吗?
请告诉我这个包的名称和命令名称。
我使用 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)
我面临短暂的停机时间。我怎样才能避免这种情况?
我有一些使用 linux 的经验,但没有使用 nginx 的经验。我的任务是研究应用服务器的负载平衡选项。
我已经使用 apt-get 安装了 nginx,一切看起来都很好。
我有一些问题。
sites-available 文件夹和 conf.d 文件夹有什么区别。这两个文件夹都包含在 nginx 的默认配置设置中。教程使用两者。它们的用途是什么,最佳实践是什么?
启用站点的文件夹有什么用?我如何使用它?
默认配置引用一个 www-data 用户?我必须创建那个用户吗?如何为该用户提供运行 nginx 的最佳权限?
我最近听说 Nginx 为其反向代理功能添加了缓存。我环顾四周,但找不到太多关于它的信息。
我想将 Nginx 设置为 Apache/Django 前面的缓存反向代理:将一些(但不是全部)动态页面的 Nginx 代理请求发送到 Apache,然后缓存生成的页面并从缓存中为这些页面提供后续请求。
理想情况下,我想以两种方式使缓存无效:
是否可以设置 Nginx 来做到这一点?如何?
我在 上有一个正在运行的 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作为根路径监听吗?或者是否有指令允许我重写传递给上游的路径?
我用主机名运行了几个 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: 标头中传递上游服务器的名称而不是上游服务器组的名称?
我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) 我用一个Linux Azure VM创建了一个Nginx,是否可以让nginx监听不同的端口,这样当我更改端口号时,内容会有所不同。我发现如果我在 VM 上创建了两个或多个与 HTTP 相关的端口,就会发生冲突。任何人都可以帮助我吗?
我正在使用 nginx 来为我的静态内容提供服务,有没有办法为每个满足特定规则的文件设置过期标头?例如,我可以为所有扩展名为“.css”的文件设置 expires 标头吗?