Articles of nginx

从源代码安装和维护Nginx + php-fpm:最佳实践

所以我终于有了Nginx + php-fpm运行以及所有的conf文件和日志工作。 全部都是从yum完成的。 但考虑到我用这种方法得到的限制 – 旧的Nginx,旧的PHP – 我想从源代码安装。 我想问一下,是否有一种方法可以同时安装Nginx和PHP-FPM,同时保留每个旧的conf文件,而不是将其作为一个广泛的开放式最佳实践问题。 核心文件可能会更改并更新,但conf应该保留。 感谢您的任何想法或指针。

nginx从web根目录redirect到404,然后尝试b

我试图修改我的nginxconfigurationredirect从web根(“/”)到/ dir-a ,然后如果这将返回404redirect到/ dir-b 。 我不完全确定如何或如果这是可能的,但。 这是我迄今为止… location = / { rewrite "/" /dir-a permanent; } 但是,这返回404页,所以我不知道从哪里去。 我需要它来代替dir-b。

nginx重写中断django?

我有Django运行在Nginx之后。 其中一个域提供图像文件,如果存在这样的文件,则从本地文件系统上的caching中提取;如果不存在,则用django脚本提供。 要从机器人隐藏真实的文件名我有时想洗牌文件中的字符。 在这种情况下,url有一个“/ x /”前缀。 这是我在nginxconfiguration的尝试: server { listen 80; server_name mydomain.com; client_max_body_size 5M; access_log /var/log/nginx/mydomain.access.log; location /robots.txt { root /srv/www/mydomain.com; } rewrite ^/x/(.)(.)(.)(.)(.)(.)(.*)$ $5$2$6$3$1$4.jpg last; location ~* ^.+\.(jpeg|gif|png|jpg|webp) { root /srv/imagecache; try_files /$uri @aws; } location @aws { fastcgi_pass unix:/srv/django/myapp/myapp.sock; fastcgi_param SERVER_NAME $server_name; fastcgi_param SERVER_PORT $server_port; fastcgi_param SERVER_PROTOCOL $server_protocol; fastcgi_param PATH_INFO $fastcgi_script_name; fastcgi_param […]

启用logwatch以logging成功的请求

我有一个非常低的HTTP服务器(Nginx),只有less数用户使用它,否则从黑客接收一些探测。 对于这个安装,我希望logwatch输出也包括成功的http请求(即200-299),我试图调整http模块的configuration,但不能包括那些,也在互联网上search不会产生任何有用的信息。 我试图调整一些configuration值,但不能得到任何效果。 我在Ubuntu上,并尝试将http.conf复制到/ etc / logwatch / conf / services /,然后再调整它。 那么有没有办法在http / nginx的logwatch-output中包含所有访问?

如何configurationnginx的服务子文件夹?

我有一个文件夹index.html文件,并在该文件夹中,我有另一个与自己的index.html 我正在使用这个configuration events { worker_connections 2048; } http { server { listen 6666; server_name 0.0.0.0; root /static; index index.html; charset utf-8; location / { include /etc/nginx/mime.types; types {font/truetype ttf;} types {application/font-woff2 woff2;} } location /test { alias /static/test; } } } Nginx运行在docker容器下 有我的docker – 撰写 version: '2' services: serve_site: container_name: server build: context: . dockerfile: […]

Nginx的字节范围caching问题与Safari

我在使用MP4字节范围caching和Apple浏览器时遇到了一些问题。 我有一个caching节点,抓取后端节点的内容,并将其caching,然后将其提供给用户。 这是通过使用nginx proxy_pass和nginxcaching来完成的。 我发现许多浏览器会首先请求整个video(字节范围0-无限),然后请求块。 这是一个问题,因为它会导致caching节点立即从后端下载整个video。 为了解决这个问题,无论请求的字节范围有多大,我们都要求caching节点将请求分成10M块。 这几乎适用于所有的浏览器,除了Safari浏览器。 对于桌面以及Safari浏览器,Safari都会立即抛出媒体损坏错误。 发送请求时将错误抛出,字节范围设置为完整文件。 如果我们不重写请求,它在Safari上工作正常,但是导致caching节点端口几乎全部被饱和,因为当有人开始stream式传输文件时,整个文件被下载到caching节点,饱和港口。 任何build议,我怎样才能解决这个将不胜感激。

如何运行10进程和montring它

我有大约10-15 FFmpegstream程的stream媒体服务器是这样的: ffmpeg -i "http://ip/play/a03i" -vcodec copy -acodec copy -f flv "rtmp://ip:80/APP/Name" 我使用Nginx的rtmp模块运行它使用exec_static指令,但我不能监视每个通道或进程,不能停止开始重新启动编辑任何stream不停止所有通道 有什么想法吗? 最好,

我可以强制Linux内核更积极地保留免费的RAM

有没有办法告诉内核保留一定数量的可用内存,而不是将其用于caching? 我听到你在想:“为什么你会想要这个?!当有人想要的时候,caching的RAM是可用的RAM!” 这是一个特例。 看起来,一个ip位置服务的nginx插件检查重装前的免费ram的数量,它拒绝重新启动/重新加载,如果没有足够的严格可用的RAM来做到这一点。 在这种情况下,我有一些服务器…所有的内存caching和一个拒绝重启自己的nginx。 所以我必须手动(或“cronly”)做一个drop_caches有足够严格的可用RAM的nginx重新启动。 我想有一个方法来指定一个最大数量的cachingram或一个最低严格的免费RAM,以保持可用摆脱hacky drop_caches方法

为多个域提供dynamic网站

我已经创build了一个小小的pipe理面板,让业主改变网站的属性(原色,背景图片,一些内容等)的网站。 他们的变化存储在数据库中。 我想要的是有多个域指向这个站点,并为网站呈现正确的属性(样式和内容)的请求主机头。 我的想法是创build一个反向代理前端服务器使用NGINX与多个服务器块指向相同的应用程序服务器(托pipe在heroku上)。 应用程序服务器再次向数据库服务器发出请求。 然后,我会添加一个中间件到我的应用程序,检查请求主机头,并根据请求来自哪里查找数据库中的内容。 我的问题是: 这是一个“正常”的方式来解决我的问题? 我正在学习服务器设置和pipe理的过程中,所以我不知道这是一个好/稳定/可扩展的设置。 或者如果它能工作的话。 如果不是,我该怎么解决呢? 一个NGINX实例可以处理的服务器块的限制是多less? 非常感谢。

在Docker环境中,Spring API资源URI错误

我的Spring Boot API有问题,我将它与Docker和Nginx一起用作反向代理。 目前,我正在与一个REST web服务一起build立一个网站。 Web服务器和REST Web服务(Spring Boot)在两个不同的Docker容器中运行。 为了提供HTTPS(encryption),我使用NGINX作为反向代理(也作为Docker-Container运行)。 现在我在我的nginx.conf使用以下设置来启用外部访问我的Spring API。 upstream spring-backend { server spring:8081; } # … some other configuration stuff server { listen 7332; ssl on; # … ssl-config # all other traffic location / { # Specify the fields added/redefined to the request header passed to the proxied server. proxy_set_header Upgrade […]