Articles of nginx

caching控制no-cache,但不在Nginx的子文件夹中

我在Nginx中使用这个规则 location ~ /app/(?<code>…)/acme/?(?<uri>.*) { add_header Cache-Control "max-age=0, no-cache, no-store, must-revalidate"; proxy_pass http://int-srv/$code/acme/dev/$uri; } 这增加了我上面在调用中写的Cache-control头 /app/abc/acme /app/abc/acme/assets /app/abc/acme/assets/js /app/abc/acme/assets/css /app/abc/acme/anything 我只希望caching控制头被应用到/ app / abc / acme,因为当调用这个端点时,响应是我们的index.html的内容。 我不想caching它,它目前的工作很好。 如果你正在考虑使用index.html制定规则,不幸的是,它不会工作,因为我没有看到我们直接打电话给文件(/app/abc/acme/index.html) Chromedebugging器工具 所以基本上这是我想要的 /app/abc/acme – apply cache-control no-cache,etc header to this location only /app/abc/acme/assets – don't want cache-control header /app/abc/acme/assets/js – don't want cache-control header /app/abc/acme/assets/css – don't […]

是否有可能从PHP-FPM提供静态HTML?

我已经dockerised一个wordpress应用程序,现在我是一个纯粹主义者,不希望在docker容器中包含nginx ,并不想在nginx容器和php-fpm容器之间共享任何状态。 我想运行php-fpm作为一个独立的web服务器(如ruby中的独angular兽或python中的gunicorn),为WordPress的网站提供所有内容(html,css和图像)。 并在前面运行一个nginx反向代理(caching静态内容)。 这样我可以保持关注的分离,我没有nginx转发stream量和nginx服务器。 php-fpm的默认configuration只允许处理php文件。 php-fpm可以改变吗? 怎么样? 这是个好主意吗?

Nginx:括号语法的意义?

在FreeBSD上使用Nginx,想知道有什么区别 events { worker_connections 200; } 而只是worker_connections 200; 通过它自己? 要么 server { listen 80; location / { return 301 https://$host$request_uri; } } VS server { listen 80; return 301 https://$host$request_uri; location /two { return 301 https://something else?; } } 我看过两个例子。 它们是可以互换的,只在范围上有所不同? 我可以省略http父块吗,只有server块,例如? 谢谢! 哦,我正在编辑的特定文件是/usr/local/etc/nginx/nginx.conf

如何更改错误日志中的时间戳记格式?

我想在我的Nginx错误日志中的时间戳和我的访问日志中一样。 错误时间格式为Y/m/d H:i:s而访问日志则允许我: d/M/Y:H:i:s O ($ time_local)或 Ymd\TH:i:sO SO($ time_iso8601) 有什么办法可以设置我的访问日志使用错误日志格式,反之亦然? 我在CentOS 7上运行Nginx 1.10.1。 更新: 由于我的问题已经被压低了,我会尽量清楚 – access_log指令允许我定义访问日志中使用的时间戳,尽pipe看起来我只有两种格式select。 例如: log_format foo '[$time_local] "$request" $status ..'; log_format bar '[$time_iso8601] "$request" $status ..'; 然后我可以应用这些格式来访问这样的日志: access_log foo.log foo; access_log bar.log bar; 拖尾所有日志显示不同的时间格式,例如 ==> foo.log <== [29/Sep/2016:10:20:48 +0100] "GET /fail HTTP/1.1" 404 .. ==> bar.log <== [2016-09-29T10:20:48+01:00] "GET /fail […]

使用nginx proxy_pass将请求/响应标题列入白名单

我正在使用proxy_pass在nginx中configuration一个反向代理。 然后,我使用proxy_set_header来覆盖某些请求头和proxy_hide_header以删除某些响应头。 这有效地创build了一个我不想通过我的代理传递的黑名单。 理想情况下,我想要定义一个允许通过的头的白名单。 例如,我可能希望隐藏除Content-Type和Content-Length (以及其他几个)之外的所有标题。 是否有任何机制在nginx实现这种头白名单,而代理? 我似乎无法在此nginx文档或通过Googlesearchfind这个。 谢谢!

将HTTPS / HSTS域移动到新服务器时,如何最大限度地减less停机时间?

我正在转向新的服务器,寻找最大限度减less停机时间的最佳方法。 在我目前的服务器上,我只使用nginx,HTTPS 在我的nginxconfiguration中,我有: Strict-Transport-Security "max-age=31536000" 上次我移动服务器时,HSTS设置给许多用户带来了问题。 我能做什么来弥补呢?

rsyslog现在。 磁盘辅助队列omkafka

我有以下pipe道: nginx -> unix_socket -> rsyslog -> omkafka module -> kafka 对于omkafka我使用以下configuration: module( load="impstats" interval="10" # how often to generate stats resetCounters="on" # to get deltas (eg # of messages submitted in the last 10 seconds) log.file="/var/log/impstats" # file to write those stats to log.syslog="off" # don't send stats through the normal processing pipeline. More […]

将caching控制添加到Nginx的图像,CSS,JS和字体

我试图让caching控制在我的服务器上的资产Nginx的工作,并没有按预期。 这里是我的服务器configurationNginx。 一切,但高速caching控制正在工作。 服务器块 server { listen 80; server_name www.example.com; rewrite ^ https://$server_name$request_uri? permanent; } server { listen 80; server_name example.com; rewrite ^ https://www.$server_name$request_uri? permanent; } server { listen 443 ssl; server_name default; root /app/public; ssl_certificate /etc/nginx/ssl/default/crt/server.crt; ssl_certificate_key /etc/nginx/ssl/default/crt/server.key; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; index index.html index.htm index.php; charset utf-8; add_header "X-UA-Compatible" "IE=Edge,chrome=1"; location ~* \.(ico|css|js|gif|jpeg|jpg|png|woff|ttf|otf|svg|woff2|eot)$ […]

带有单入口点和PATH_INFO的Nginx PHP-FPM

我正在尝试使用php-fpmconfigurationnginx,所以大多数请求都被传递给一个单独的php脚本。 目录布局如下: assets/… index.php 我希望这些url的工作方式如下: / -> index.php /foo -> index.php /bar/baz?spam=ham -> index.php /assets -> assets folder index.php应该将PATH_INFO设置为'/' , '/foo'和'/bar/baz' 。 我已经想出了最接近的configuration如下: location / { try_files $uri /index.php/$uri$is_args$args; } location /assets { try_files $uri =404; } location /index.php { include snippets/fastcgi-php.conf; include fastcgi_params; fastcgi_pass unix:/var/run/php5-fpm.sock; } 但是, PATH_INFO总是有一个额外的/ (例如在第一种情况下的'//' )。 更改为/index.php$url$is_args$args适用于除/之外的所有情况,这会导致404。 我当然可以修改脚本来处理额外的/但它感觉有点肮脏。 我一直在努力寻找和阅读手册,但我不能弄明白,任何指针?

NGINX服务器说没有find文件

我试图通过使用stream明和docker来构build服务来学习微服务架构。 我有这样的文件夹结构 ./ ./base_service ./base_service/base.docker ./user_service ./user_service/user.docker ./auth_service ./auth_service/auth.docker ./gateway.docker ./vhost.conf ./docker-compose.yml 每个服务目录是一个stream明应用程序这是什么是我的docker-compose.yml文件看起来像 version: '2' services: gateway: build: context: ./ dockerfile: web.docker volumes: – ./:/var/www ports: – "8080:80" links: – base_service – auth_service – user_service base_service: build: context: ./base_service dockerfile: base.docker volumes: – ./:/var/www links: – broker auth_service: build: context: ./auth_service dockerfile: auth.docker volumes: – […]