Articles of nginx

ngx_pagespeedpipe理统计信息不加载

我遵循官方安装指南 ,用最新稳定的pagespeed模块构buildnginx。 它在某些方面工作,所以我想用pipe理工具进一步debugging。 它们在nginx中启用如下: http { pagespeed FileCachePath "/mnt/ramdisk/ngx_pagespeed_cache"; pagespeed StatisticsPath /ngx_pagespeed_statistics; pagespeed GlobalStatisticsPath /ngx_pagespeed_global_statistics; pagespeed MessagesPath /ngx_pagespeed_message; pagespeed ConsolePath /pagespeed_console; pagespeed AdminPath /pagespeed_admin; pagespeed GlobalAdminPath /pagespeed_global_admin; } server { location /ngx_pagespeed_statistics { allow 12.34.56.78; deny all; } location /ngx_pagespeed_global_statistics { allow 12.34.56.78; deny all; } location /ngx_pagespeed_message { allow 12.34.56.78; deny all; } location […]

如何用sedreplace整个NGINX块?

我开始学习bash脚本,需要编写脚本在NGINX上安装fastcgi_cache 。 我需要使用fastcgi_cache设置replacePHP的默认位置。 要清楚,我需要取代这个: location ~ \.php$ { fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } 有了这个: location ~ .php$ { fastcgi_pass unix:/var/run/php5-fpm.sock ; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; access_log /var/log/nginx/$SITE_URL.cache.log cache; fastcgi_cache_key "$mobile$scheme$request_method$host$request_uri"; fastcgi_cache_bypass $skip_cache; fastcgi_no_cache $skip_cache; fastcgi_cache WORDPRESS; add_header X-Cache-Status $upstream_cache_status ; } 我相信这可以用sed来完成,但我找不到办法。 我设法通过一种解决方法来工作,如下所示: if [ -f "/etc/nginx/sites-enabled/$SITE_URL" ] then sed -i.bak […]

Ubuntu 16.04:nginx:零大小共享内存区“one”

我想在本地build立项目。 当我尝试使用php-fpm这一行fastcgi_pass unix:/run/php/php7.0-fpm.sock; 那么nginx不会重新加载,它退出的错误: nginx: [emerg] zero size shared memory zone "one" 。 我怎样才能决定这个问题? 我应该设置nginx_uploadprogress_module吗? 我的configuration文件: server { listen 80; server_name demi-le.work; # DDoS protection – allow up to 20 r/s peaks limit_req zone=one burst=20; root /home/demi/projects/demi-le.work/web; #root /opt/sites/underconstruction; index index.htm index.html index.php app-ind.php; client_max_body_size 30m; charset utf-8; # Deliver static content location /public { […]

用于ws://协议的NGINX代理设置

我正在尝试设置NGINX代理networking套接字stream量。 我正在NGINX(端口80)上运行一个网页,该端口具有来自8080端口的MJPEG馈送,并且还通过端口8090接收networking套接字stream量。我可以代理MJPEGstream,但不能代理networking套接字。 在我的网页,客户端JavaScript连接正常,没有代理使用这一行: var conn = new WebSocket('ws://192.168.0.14:8989 / ws'); 代理这个我试着设置下面的NGINXconfiguration: #Proxy the Web Socket Traffic #———————————————- location /sock/ { proxy_pass ws://localhost:8989/ws; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } #Proxy the MJPEG Streamer feed #———————————————- location /mjpeg/ { proxy_pass http://localhost:8080/; } 然后将客户端JavaScript更改为以下内容: var conn = new WebSocket(' http://192.168.0.14/sock/ '); 但是当我重启NGINX的结果是: 作业nginx.service失败。 有关详细信息,请参阅“systemctl status […]

通过子域的通配符SSL协商

我想尽快build立一个网站,作为其中的一部分,将使用多个子域来实质上增加浏览器中并发连接的数量。 我的问题是:我怎样才能避免必须为每个子域进行SSL协商? 如果我使用通配符证书(或SAN),则可以/将与主www.build立SSL会话www. 域重用于子域以避免重新协商SSL连接的延迟时间? 整个网站将落后于SSL,并将有2-3个额外的子领域,如media. , static. 等使用NGINX。

如何更改NGinx中的站点可用configuration

我是Linux新手。 我想在Ubuntu 16.04 LTS虚拟机上部署我的asp.net核心应用程序。 我在Ubuntu上安装了asp.net核心,并设法在Ubuntu上运行一个简单的asp.net核心Web应用程序。 另外,我想将Nginx Web服务器设置为我的应用程序的反向代理。 我遵循这篇文章为了安装Nginx。 尽pipeNginx的服务器安装成功,但我不能修改Nginx的默认文件下面的configuration – 上面的文章解释了可用的部分,因为整个目录是只读的。 server { listen 80; location / { proxy_pass http://localhost:5000; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection keep-alive; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } } 我做错了什么,请告诉我如何编辑这个文件。

Nginx透明IP – 通过负载均衡器路由服务器响应,而不是直接到客户端

我已经被赋予了在Nginx上设置透明IP的任务,以便将客户端地址和端口传递给上游服务器。 设置看起来像这样: Client –> Nginx (listens for udp on 90009) –> Service (listens on localhost:59153) Nginx和Service是在同一台主机上build立的。 基本设置工作没有任何问题 – 请求被nginx捕获,被路由到服务,服务响应到nginx,并返回到客户端。 预期的行为是通过请求源IP服务,所以我设置nginx像这样: stream { upstream upstream_servers { server 127.0.0.1:59153; } server { listen 90009 udp; proxy_bind $remote_addr:$remote_port transparent; proxy_pass upstream_servers; } } proxy_bind $remote_addr:$remote_port transparent; 正确地执行它的工作ip/port被传递给nginx后面的服务。 然而,服务(不奇怪)是试图直接响应给定的ip/port 。 与外部世界的通信只允许在端口90009上进行,所以不会传递响应。 我试图做的是将基于IP透明和直接服务器返回的响应作为透明代理路由到NGINX和NGINX Plus 。 所以我做了以下几点: iptables -t mangle -N […]

如何更改nginx收到的redirect的端口?

我在我的服务器上build立了一个nginx。 它接收所有请求并将它们传递给它后面的IIS服务器。 我的问题是,因为我的网站运行在端口2000有时它发送redirect到包含端口2000的nginx,之后,redirect用户将不会通过nginx。 我想在我的nginx中重写一个规则来获取所有redirect,并将端口设置为80,以便用户不直接进入IIS。 我也可以通过更改c#代码来解决这个问题,但我不想更改代码。

在nginx服务器上使用magento的500内部服务器错误

我一直在尝试使用nginx在本地开发服务器上设置magento站点。 我已经设法让他们部分工作。 由于某种原因,网页将加载正常,但只要我点击任何链接,我得到“ 500内部服务器错误 ”。 nginx错误日志显示: 555 rewrite or internal redirection cycle while processing "/index.php", client: 127.0.0.1, server: mage1.dev, request: "GET /htdocs/admin HTTP/1.1", host: "gb-posters.mage1.dev" 这是我的conf文件: server { listen 80; autoindex on; # Add index.php to the list if you are using PHP index index.html index.php; server_name *.mage1.dev; root /var/www/projects/$http_host/; include include.d/mage1.conf; } 这是mage1.conf文件: location […]

如何防止用户在php-fpm和nginx中访问另一个用户文件,如suphp所做的那样

我使用Nginx和PHP-FPM,并有许多用户,每个用户有他自己的用户名和组,但我看到,每个PHP execeutes作为id,uid,gid nobody运行,我也知道php-fpm.conf有用户和组configuration为nobody 我尝试使用游泳池,但没有运气 [website.com] user = user1 group = user1 listen = /var/run/php5-fpm-user1.sock listen.owner = user1 listen.group = user1 ;listen.mode = 0666 pm = ondemand pm.max_children = 5 pm.start_servers = 2 pm.min_spare_servers = 1 pm.max_spare_servers = 3 但也evey php运行nobody 从显示的PHP shell(甚至从user1) uid=99(nobody) gid=99(nobody) groups=99(nobody) ps -aux | grep nginx root 11736 0.0 0.0 964508 […]