Articles of nginx

nginx设置cookie代理错误

我有一个在tomcat应用程序服务器前面的nginx。 在某些情况下,该应用程序会发送一个HTTP 403响应,以及一个Set-Cookie头,以删除客户端上的无效Cookie。 我也定了 http { proxy_intercept_errors on; } 因为我不希望任何上游错误显示给客户端。 我仍然希望发送这些Set-Cookie头文件。 每403响应发送一次头add_header问题,但是add_header不适用于HTTP状态。 我如何需要改变configuration来实现呢?

我的第三级域名通过作为反向代理的nginx不能正常工作

我的网站“staging.my_website.com”的nginxconfiguration的一部分Nginx是在这种情况下的反向代理: server { listen 80 default_server; listen [::]:80 default_server; server_name staging.my_website.com; return 301 https://$server_name$request_uri; } server { listen 443 ssl; listen [::]:443 ssl; server_name localhost www.staging.my_website.com; return 301 https://staging.my_website.com$request_uri; } server { listen 443 ssl default_server; listen [::]:443 ssl default_server; server_name staging.my_website.com; location / { # …………… proxy_pass http://localhost:1234; proxy_redirect http://localhost:1234 https://staging.my_website.com; 它不工作: staging.my_website.com show […]

CI和WordPress使用Nginx + PHP 7.1 + MariaDB缓慢查询数据库

问题 我使用Nginx 1.10.2 + PHP 7.1.10(php-fpm)+ MariaDB 10.1.28运行CentOS 7机器。 使用这台机器我服务于以下应用程序: 4x Laravel 5.x 10x MODx Revo 2.5.8 1x WordPress 4.8.3 2x CI 3.1.6 虽然我的Laravel和MODx Revo应用程序运行速度超快,没有任何问题,但我的状态监视器,缓慢的日志(PHP-FPM和MariaDB Slowlog)以及手动testing都certificate, 10请求我的Wordpress和CI应用程序3请求。 是非常缓慢(最慢5-7秒),而其他7个要求。 如预期般快速。 debugging/解决步骤 激活的php-fpm和mariadb的缓慢日志(> = 3秒):结果证实,只有我的CI和Wordpress应用程序在慢速日志中引起了条目。 在分析条目后,我可以将它们分为两类: cron / curl脚本 数据库交易 所以起初我禁用了所有的cron / curl脚本。 但状态监视器和手动testing对于这些应用程序仍然显示约5-7秒的缓慢请求。 这将其分解为数据库事务。 这里是例子: WordPress的 www-slow.log(PHP-FPM) [13-Nov-2017 09:44:09] [pool www] pid 24000 script_filename = /usr/share/nginx/www/wordpress/index.php […]

Nginx将urlredirect到html文件并追加空参数

我需要将请求的urlredirect到文件系统上的html文件。 我已经知道这个答案了: location /this/is/some/url { index file.html; alias /path/to/the/; } file.html在文件系统上的位置是/path/to/the/file.html 。 不过,我还需要在url /this/is/some/url的末尾追加一个空参数。 所以它应该看起来像这个/this/is/some/url?_escaped_fragment_= 。 我尝试了重写的各种示例,但没有帮助,因为我没有正确使用。

如何在nginx日志中从Azure应用程序网关获取客户端IP

我已经安装了一个Azure应用程序网关。 但我没有收到我的Nginx日志中clinet的实际IP地址在Nginx日志中,我得到了Application Gateway的私有IP地址。 我如何从我的Nginx日志中的Azure应用程序网关获取客户端IP地址

Nginx不能正确处理多个应用程序

我被困在非常奇怪的Nginx的行为。 我有2个RoR网站,与Puma.First网站(app1.com)工作就像应该,但是当我尝试访问app2.com,我只是得到app1.com页面,但与域名app2。 COM。 最感兴趣的是,如果在nginx.conf中我replace了/ etc / nginx / sites-enabled / ; *以直接链接到站点(即sites-enabled / app2; sites-enabled / app1;)我可以得到来自app2的正确响应,但是app1会更改app1的位置。 我错过了什么? 所以这是我的Nginxconfiguration: upstream puma { server unix:///home/dev/www/apps/app1/shared/tmp/sockets/puma_app1.sock; } server { listen 80; server_name app1.com root /home/dev/www/apps/app1/current/public; access_log /home/dev/www/apps/app1/shared/log/nginx.access.log; error_log /home/dev/www/apps/app1/shared/log/nginx.error.log info; try_files $uri/index.html $uri @puma; location @puma { proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $host; proxy_redirect off; proxy_pass http://puma; […]

nginx,ssl_trusted_certificate和多个证书

根据文档,从nginx 1.11.0开始,您可以多次指定ssl_certificate和ssl_certificate_key来提供RSA和ECDSA证书。 但是,我无法find与OCSP装订所需的ssl_trusted_certificate相关的任何内容。 如果来自ssl_certificate的证书由相同的CA签名,我不会看到任何问题,但是如果证书来自不同的CA,该怎么办? 是否允许多次使用ssl_trusted_certificate ,或者在提供多个证书时如何指定多个根CA?

如何创build基于整数的NGinx限速区域?

我们需要通过cookie的价值限制,这是一个整数(远低于65000)。 尽pipe以十进制forms传输,并且因此可能占用多达5个字节,但是该值可以以两个字节( uint16_t )存储。 目前,我们正在使用 limit_req_zone $cookie_FOO zone=foo_ratelimit:1m rate=37r/s; 我怀疑它存储了整个值的十进制表示。 我可以使用像int($cookie_FOO)这样的密钥来代替 – 将其强制为uint32_t或uint16_t , NGinx手册推荐使用$binary_remote_addr不是$remote_addr ?

由于内部redirect,nginx $ request_method在POST之前从POST更改为GET

NGINX版本:1.10.3在Debain 9.1操作系统上使用Jessie-Backports nginx.conf : user www-data; pid /var/run/nginx.pid; worker_processes 1; error_log /var/log/nginx/error.log; events { worker_connections 1024; } http { log_format main 'request_method:$request_method request:$request'; server { listen 80; error_page 405 =200 $uri; access_log /var/log/nginx/access.log main; location / { default_type text/html; root /usr/share/nginx/html/; include mime.types; index index.html index.htm index.asp index.aspx index.php default.html default.htm default.asp default.aspx default.php; } […]

将NGINX HTTPS域redirect到新的HTTPS域

花了几个小时使用duckduckgo,这是我到达的最好的答案,它仍然无法将当前的HTTPS域redirect到一个新的HTTPS域。 server { listen 80; listen 443 ssl; server_name www.olddomain.com olddomain.com; rewrite 301 https://newdomain.com$request_uri; } 浏览器给出不安全的连接错误。 我也尝试过这样的事情 server { listen 443 ssl; server_name olddomain.com; ssl on; ssl_certificate /etc/ssl/certs/OLD.crt; ssl_certificate_key /etc/ssl/private/OLD.key; #enables all versions of TLS, but not SSLv2 or 3 which are weak and now deprecated. ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "ALLLLLLTTHHISSSS"; ssl_prefer_server_ciphers on; rewrite […]