我的 Nginx 配置有问题。我升级到 nginx 1.9.6 来测试 http/2 但它在我的服务器上不起作用。
我使用了 ubuntu 14.04.2 LTS
这是 nginx -V 输出:
nginx version: nginx/1.9.6
built with OpenSSL 1.0.2d 9 Jul 2015
TLS SNI support enabled
configure arguments: --prefix=/etc/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-client-body-temp-path=/var/lib/nginx/body --http-fastcgi-temp-path=/var/lib/nginx/fastcgi --http-log-path=/var/log/nginx/access.log --http-proxy-temp-path=/var/lib/nginx/proxy --http-scgi-temp-path=/var/lib/nginx/scgi --http-uwsgi-temp-path=/var/lib/nginx/uwsgi --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-pcre-jit --with-debug --with-http_addition_module --with-http_auth_request_module --with-http_dav_module --with-http_geoip_module --with-http_gzip_static_module --with-http_image_filter_module --with-http_realip_module --with-http_stub_status_module --with-http_ssl_module --with-http_sub_module --with-http_xslt_module --with-http_v2_module --with-stream --with-ipv6 --with-mail --with-mail_ssl_module --with-openssl=/build/nginx-GFP362/nginx-1.9.6/debian/openssl-1.0.2d --add-module=/build/nginx-GFP362/nginx-1.9.6/debian/modules/nginx-auth-pam --add-module=/build/nginx-GFP362/nginx-1.9.6/debian/modules/nginx-echo --add-module=/build/nginx-GFP362/nginx-1.9.6/debian/modules/nginx-upstream-fair --add-module=/build/nginx-GFP362/nginx-1.9.6/debian/modules/nginx-dav-ext-module --add-module=/build/nginx-GFP362/nginx-1.9.6/debian/modules/nginx-cache-purge
Run Code Online (Sandbox Code Playgroud)
这是我的虚拟主机配置:
server {
listen 80;
server_name localhost;
return 301 https://$server_name$request_uri;
}
server { …Run Code Online (Sandbox Code Playgroud) 我在能够执行 HTTP/2.0 的后端网络服务器前使用 nginx 作为反向 ssl 代理。
我注意到 nginx 通过 HTTP/1.1 而不是 HTTP/2.0 代理对后端服务器的请求。是否可以告诉 nginx 使用未加密的 HTTP/2.0 连接?这会提高性能吗?
像 rambler 这样的网站如何如此快速地提供动态内容?甚至比雅虎(它在我的国家 - 东南亚有一个服务器;漫步者没有)还要快。
这纯粹是 Nginx 的能力吗?我应该去哪里了解这些功能?
这里几乎是一个新手,我相信如果从 Nginx 提供 serverfault.com 将比 IIS 7 快得多(假设这两种情况下的数据库访问时间相同)。这是一个公平的假设吗?
编辑:
我可以使用limit_req速率限制对我的服务器的所有请求。
但是,我想取消对某些 IP 地址(即白名单)的速率限制,并对某些其他地址(即我希望低至 1r/s 的某些 IP)使用不同的速率限制。
我尝试使用条件(例如if ( $remote_addr = "1.2.3.4" ) {}),但这似乎只适用于重写规则,不适用于速率限制规则。
我经营着一个相当大的图片库,有 5 位访问者每天使用网络复印机下载整个网站,从而创造了巨大的流量。这些访问者似乎拥有静态 IP。我想要实现的是,这 5 个 IP 在访问该站点时立即被重定向到某个页面(这解释了为什么它们的行为有问题)。所有其他访问者都应该能够正常浏览网站。
服务器运行 CentOS (5.8) 和 nginx (1.0.15) 作为网络服务器。有没有办法通过您知道的 nginx.conf 中的条目来实现这一点?
非常感谢您的提示和支持!
亲切的问候-亚历克斯
我有一个 nginx Web 服务器充当反向代理,将请求转发到 Apache 进行额外处理(我求你不要问为什么)。我有一个请求,我试图附加一个自定义标头,我希望 nginx 将该自定义标头转发给 Apache,以便我可以在应用程序中使用它做一些事情。
我已经翻阅了HttpProxyModule文档,但即使我在正确的地方,它们也不是很具有描述性(很可能我不是)。
如何让 nginx 转发X-CUSTOM-REFERRER标头?此外,如果可能的话,我希望它沿着进入的任何自定义标题转发。如果后者要求太多,前者就足以满足我目前的需要。
如您所见,我对 nginx 非常陌生,因此补救版本会有所帮助。
谢谢。
更新
我现有配置中的相关片段:
location / {
proxy_pass http://preview;
proxy_redirect off;
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-Custom-Referrer $x_custom_referrer;
}
Run Code Online (Sandbox Code Playgroud) 我正在使用 Nginx 提供静态文件,以使用此问题中概述的技术响应 CORS 请求。但是,当文件不存在时,404 响应不包含Access-Control-Allow-Origin: *标头,因此会被浏览器阻止。
如何发送Access-Control-Allow-Origin: *404 响应?
有很多关于如何编写 Nginx 重写规则来模仿 Apache 的 .htaccess 文件的教程,但我不能自信地说我知道这个所谓的 Nginx 配置文件的名称或位置实际上是什么。我特别在寻找允许您编写服务器路径和 PHP 指令的 Nginx 配置文件。我使用 Ubuntu 12 linux 和 Codeigniter 作为我的 PHP 框架。
以下是我目前所知道的:
/etc/nginx/nginx.conf尽管它的名字很吸引人,但它显然不是服务器指令的地方。/etc/nginx/sites-available/default似乎是我需要的(我能够生成特定于我的应用程序的 php 错误),但我无法使 Codeigniter 特定的路径路由正确。首先,这是每个人所说的“配置”文件/.htaccess 等价物吗?在过去的几个月里,我一直在 Windows 上使用 nginx 没有任何问题。今天,当我尝试启动它时,出现此错误:
nginx: [emerg] bind() to 0.0.0.0:80 failed (10013: 尝试以访问权限禁止的方式访问套接字)
为什么会突然开始发生这种情况?我没有改变任何配置或任何东西。
我在 Ubuntu 14.04 上的 Nginx 下运行 php5-fpm。我想增加最大上传大小。
我已经编辑了我/etc/php5/fpm/php.ini的以下几行定义如下:
upload_max_filesize = 20M
post_max_size = 25M
我重新启动了 php5-fpm 和 nginx,但phpinfo()仍然分别显示了 8M 和 2M 的发布和上传限制。
我在这里错过了什么吗?
nginx ×10
apache-2.2 ×2
.htaccess ×1
codeigniter ×1
cross-domain ×1
http2 ×1
ip ×1
openssl ×1
php ×1
php-fpm ×1
php.ini ×1
redirect ×1
web-server ×1
windows ×1