Articles of nginx

nginx不发送日志到rsyslog

我想通过nginx发送日志到rsyslog,但似乎没有被发送。 这里是nginx conf,我定义了一个自定义的日志格式, log_format rsyslog '$remote_addr – $remote_user [$time_iso8601] "$request "' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/api_access.log rsyslog; access_log syslog:server=localhost:514 rsyslog; error_log /var/log/nginx/api_error.log debug; 我也将这些日志存储在文件中,并发送到rsyslog也。 alphauser@AlphaServer:/etc/rsyslog.d$ sudo netstat -nulp | grep 514 udp 0 0 0.0.0.0:514 0.0.0.0:* 41335/rsyslogd udp6 0 0 :::514 :::* 41335/rsyslogd rsyslog udp端口514已打开。 这里是rsyslogconfiguration, template(name="all-json-nginx" type="list"){ constant(value="{ ") constant(value="\"level\":\"") property(name="syslogseverity-text") […]

在`Nginx < – > PHP < – > Postgres`的基础结构中检测瓶颈

我们已经build立了一个基础设施作为我们正在build设的移动应用程序的后端,包括以下几个部分: 一台NGINX服务器作为负载均衡器(512MB RAM – 1个核心CPU) 2个PHP-NGINX服务器主机脚本(2GB内存 – 2个核心CPI,8GB内存 – 4个核心CPU) 1个PostgreSql服务器作为主数据库(8GB RAM – 4个核心CPU) 现在我正试图在压力下testing这个环境的性能。 我正在使用loader.io来达到这个目的。 初步testing(每分钟1000个客户端)表明我有近40%的错误率。 现在我需要检测这个env的哪个部分导致了这么多失败? 我已经检查了PHP,NGINX和Postgres的日志,但不能拿出任何有用的信息。 这是池configuration文件: [arioo] user = arioo group = arioo listen = /run/php/php7.0-fpm-arioo.sock listen.owner = www-data listen.group = www-data listen.mode = 0666 pm = dynamic pm.max_children = 10 pm.start_servers = 10 pm.min_spare_servers = 5 pm.max_spare_servers = 10 pm.max_requests […]

nginx安全链接总是回复200

我正在尝试使用nginx安全链接模块,我有一个使用此nginxconfiguration的Amazon EC2服务器: location ~ /([1-9]+(0)*)/(image|music)/s-([0-9a-zA-Z]+)/source { secure_link $arg_token,$arg_expires; secure_link_md5 "$uri $arg_expires secret"; add_header 'Access-Control-Allow-Origin' "$http_origin"; add_header 'Access-Control-Allow-Credentials' 'true'; add_header 'Cache-Control' 'no-cache, no-store, max-age=0'; if ($secure_link = "") { return 403; } if ($arg_download != "") { add_header 'Content-Type' "application/octet-stream"; add_header 'Content-Disposition' "attachment"; } if ($secure_link = "0") { return 200; } #?token=_e4Nc3iduzkWRm01TBBNYw&expires=2147483647 } location ~* […]

运行nginx作为mongodb的代理,并运行在tomcat中的web服务的代理

我想运行nginx将请求redirect到mongodb和webservice。 我试图使用服务器和stream指令,但我无法得到正确的。 什么应该是我可以使用的configuration文件,以便当我联系27017端口上的nginx服务器时,我可以访问mongodb,当我在另一个web服务器端口上访问它,我应该被redirect到运行在tomcat上的web服务。

Debian stretch的Nginx试图安装nginx-common 1.10而不是1.13

我已经在我的Debian 9上为nginx设置了正式的主线存储库 安装apt-get install nginx导致安装1.13版本,这很好。 但是当我尝试安装nginx-common和nginx-full它会尝试nginx-full安装1.10 ,从而导致错误。 Preconfiguring packages … (Reading database … 37853 files and directories currently installed.) Preparing to unpack …/nginx-common_1.10.3-1_all.deb … Unpacking nginx-common (1.10.3-1) … dpkg: error processing archive /var/cache/apt/archives/nginx-common_1.10.3-1_all.deb (–unpack): trying to overwrite '/etc/default/nginx', which is also in package nginx 1.13.2-1~stretch dpkg-deb: error: subprocess paste was killed by signal (Broken pipe) […]

在之前的条件之前,try_files服务会退回

忍受我,因为我是新来的。 我已经把一个nginx服务器configuration放在一起工作,直到我注意到在适用时没有抛出404错误。 所以我添加到我的try_files条件= 404回落。 但现在它不符合@rewrite的条件,并显示所有的页面,但主页为404。 这是configuration的适用部分 server { error_page 404 /404.html; location / { index index.php; try_files $uri $uri/ @rewrite; } location @rewrite { #rewrites rewrite ^/listings/(\d+)/(.*)$ /index.php?op=default&_a=listing&id=$1 last; rewrite ^/subcategories/(\d+)/(.*)$ /index.php?op=default&_a=subcategory&id=$1 last; rewrite ^/categories/(\d+)/(.*)$ /index.php?op=default&_a=category&id=$1 last; rewrite ^/companies/(\d+)/(.*)/(.*)$ /index.php?op=default&_a=vendor&id=$1&_b=$3 last; rewrite ^/companies/(\d+)/(.*)$ /index.php?op=default&_a=vendor&id=$1 last; rewrite ^/classifieds/(.*)/(.*)$ /index.php?op=default&_a=classified&cf_type=$1&url=$2 last; rewrite ^/classifieds/(.*)$ /index.php?op=default&_a=classified&cf_type=$1 last; rewrite ^/classifieds$ […]

如何从一个域到另一个域的掩码不受直接控制

假设我有这个域名: https://bananaschool.shop.acme.com 我想做一个别名,所以它指向: https://bananaschool.shop.com 要么 https://bananachool.com/shop 我拥有acme.com和* .shop.com域名,但不拥有bananachool.com 这可能吗? 我是否需要访问bananaschool.com的Zone文件才能生成域掩码/别名? 谢谢

Nginx反向代理与GitLab作为Oauth2提供商和NextCloud

我想要做的总结如下。 我有一个NGinx服务器,承载了三种不同的东西:GitLab,NextCloud和一个专有服务。 GitLab充当Oauth供应商,用户必须通过authentication才能访问我们托pipe的任何网站。 因此,我在Nginx中使用了一个反向代理。 我成功地能够authentication并访问我们的GitLab和我们专有的软件。 但NextCloud和Oauth不想一起工作。 我还应该提到,现在我们正在混淆我们服务的url。 例如,我正在尝试在https://oursite.com/test-test/提供NextCloud,但是当您第一次访问该网站时,您应该将其redirect到GitLab,然后再跳回到NextCloud。 我还应该提到,我正在使用oauth处理程序侦听端口4180和4181的oauth2_proxy应用程序。 这里是使用的configuration: Base Nginxconfiguration server { listen 80; server_name oursite.com; client_max_body_size 10m; location /api/ { proxy_pass http://127.0.0.1:4180/api/; proxy_set_header Host $host; proxy_set_header X-Forwarded-Ssl on; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Port 443; } location /obfuscated-url-1/ { proxy_pass http://127.0.0.1:4180; proxy_set_header Host $host; proxy_set_header X-Forwarded-Ssl on; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Port 443; […]

Nginx – 用文件名中的空格来提供静态html内容

我使用这个设置来提供静态html文件: server { root /var/www/static_html; index index.html index.htm; location / { try_files $uri $uri/index.html $uri.html =404; autoindex on; } } 现在,如果一个文件名包含空格"spam spam.html"则回应是“404 Not Found” 在access.log中: "GET /spam%20spam.html HTTP/1.1" 404 可以提供这些文件吗?

apachetesting页面显示在非apache服务器上

我手上有一个很奇怪的错误。 我正在Ubuntu 16.04上运行带有Nginx和Gunicorn的Django服务器。 我没有在我的服务器上安装Apache ANYWHERE。 但是,如果我加载网站,在CentOS上运行Apache的服务器的testing页面就会出现,而且我也没有在服务器上安装CentOS或Apache。 我的服务器正在发生什么事,如何让testing页消失? 附件是网站上出现的Apachetesting页面的屏幕截图 。 更新:看来Apache 是安装在我的本地机器上。 会清除它的伎俩?