Articles of nginx

如何在不重启nginx的情况下进行修改?

Apache有一个graceful选项,可以在不重启Apache的情况下扫描http.conf修改。 那么nginx呢?

Nginxconfiguration无需停机即可重新加载

我使用nginx作为反向代理。 每当我更新它的configuration使用 sudo "cp -r #{nginx_config_path}* /etc/nginx/sites-enabled/" sudo "kill -s HUP `cat /var/run/nginx.pid`" 我面临一个短暂的停机时间。 我怎样才能避免呢?

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

我正在使用nginx来服务我的静态内容,有没有一种方法可以为符合特定规则的每个文件设置expires头文件? 例如,我可以为扩展名为“.css”的所有文件设置expires头文件吗?

Nginx反向代理+ URL重写

Nginx正在80端口上运行,我用这个方法将path /foo代理URL反向转换为3200端口: location /foo { proxy_pass http://localhost:3200; proxy_redirect off; proxy_set_header Host $host; } 这工作正常,但我有一个应用程序在端口3200 ,我不希望最初/foo发送到。 那就是 – 当我访问http://localhost/foo/bar ,我只希望/bar成为应用程序接收的path。 所以我试着把这一行添加到上面的位置块: rewrite ^(.*)foo(.*)$ http://localhost:3200/$2 permanent; 这导致302redirect(更改URL),但我想301.我该怎么办?

Nginx启用站点命令

我们都知道如何启用一个网站在Linux上使用Apache。 我很确定我们都同意使用a2ensite命令。 不幸的是,Nginx没有默认的等效命令,但是确实发生了,我在Ubuntu上安装了一些允许启用/禁用站点并列出它们的软件包。 问题是我不记得这个包的名字。 有人知道我在说什么吗? 请告诉我这个包的名字和命令名。

使用Nginx提供静态文件时禁用caching(用于开发)

我们正在使用Nginx在开发平台上提供静态文件。 由于这是一个开发平台,我们希望禁用caching,以便将每个更改传播到服务器。 VHost的configuration非常简单: server { server_name static.server.local; root /var/www/static; ## Default location location / { access_log off; expires 0; add_header Cache-Control private; } } 当我们访问一个HTML文件( http://static.server.local/test.html )时,我们没有问题:只要文件没有改变,服务器返回代码304 Not Modified ,并且200 OK响应文件更改时的修改文件。 但是,它似乎与Javascript或CSS文件的行为不同。 一旦文件被改变,我们得到一个200 OK的响应,如预期的,但与旧的文字。 Nginx中是否有一个内部caching机制可以解释这种行为? 或者我们应该添加一些configuration? 作为一个附注,这里是Nginx在文件被修改时返回的头文件(看起来是正确的): Accept-Ranges:bytes Cache-Control:max-age=0 private Connection:keep-alive Content-Length:309 Content-Type:text/css Date:Fri, 13 May 2011 14:13:13 GMT Expires:Fri, 13 May 2011 14:13:13 GMT […]

我如何在Nginx.conf中使用环境variables

[交叉发布和编辑下来从https://stackoverflow.com/questions/21933955,因为它被认为太sysadmin像StackOverflow。] 我有一个运行Nginx的docker容器,链接到另一个docker容器。 第二个容器的主机名和IP地址在启动时作为环境variables加载到Nginx容器中,但在此之前不知道(它是dynamic的)。 我想我的nginx.conf使用这些值 – 例如 upstream gunicorn { server $APP_HOST_NAME:$APP_HOST_PORT; } 如何在启动时将环境variables放入Nginxconfiguration中? 编辑1 这是在下面的build议答案后的整个文件: env APP_WEB_1_PORT_5000_TCP_ADDR; # Nginx host configuration for django_app # Django app is served by Gunicorn, running under port 5000 (via Foreman) upstream gunicorn { server $ENV{"APP_WEB_1_PORT_5000_TCP_ADDR"}:5000; } server { listen 80; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location /static/ { alias /app/static/; […]

如何在NGINX中添加Access-Control-Allow-Origin?

如何设置Access-Control-Allow-Origin标题,以便我可以在我的主域名上使用我的子域中的Web字体? 笔记: 您将在HTML5BP服务器configuration项目https://github.com/h5bp/server-configs中find针对大多数HTTP服务器的此标头和其他标头的示例

你如何重新启动php-fpm?

我需要重新加载我的php.ini,帮助对话框中没有关于重新启动它。

如何将Nginx设置为caching逆向代理?

我最近听说Nginx已经将caching添加到其反向代理function。 我环顾四周,但找不到有关它的很多信息。 我想将Nginx设置为Apache / Django之前的caching逆向代理:将一些(但不是全部)dynamic页面的Nginx代理请求发送给Apache,然后caching生成的页面并为来自caching的后续请求提供服务。 理想情况下,我想要以两种方式使caching无效: 在caching的项目上设置到期date 显式使caching项无效。 例如,如果我的Django后端更新了某些数据,我想告诉Nginx使受影响页面的caching无效 是否可以设置Nginx来做到这一点? 怎么样?