Articles of nginx

php5.6-fpm高CPU使用率

我目前正在使用php-fpm和nginx运行一个Wordpress网站,并使用非常高的CPU速度。 这是我的www.conf文件: [www] user = www-data group = www-data listen = 127.0.0.1:9000 listen.owner = www-data listen.group = www-data pm = ondemand pm.max_children = 10 pm.start_servers = 20 pm.min_spare_servers = 10 pm.max_spare_servers = 30 pm.process_idle_timeout = 10s ping.path = /ping pm.status_path = /status pm.max_requests = 30 request_terminate_timeout = 20 我正在使用wp总caching和fastcgi。 你知道的任何文件,我可以find我可以显示。 我的网站每天获得大约800个视图,并且每天添加大约5-6次的内容。

UWSGI的Nginxcaching不同大小的HTTP响应

我需要为nginx上的python(django)应用程序configurationcaching。 一切工作正常,但不时从caching中获得空白页面。 我没有看到nginx和uwsgi日志中的任何错误。 在正常情况下,我得到的HTTP/1.1 200 resposne 24615 bytes从nginx的HTTP/1.1 200 resposne 24615 bytes长,但有时它是20字节长。 HTTP/1.1 200 0.08 secs: 24615 bytes ==> / HTTP/1.1 200 0.07 secs: 24615 bytes ==> / HTTP/1.1 200 7.71 secs: 24615 bytes ==> / HTTP/1.1 200 0.06 secs: 20 bytes ==> / HTTP/1.1 200 0.06 secs: 20 bytes ==> / HTTP/1.1 200 0.07 […]

使用nginx重写从url中删除ID或号码

我有一个运行在自定义CSM上的网站。 然而,随着它越来越大,我们不得不把它移到wordpress。 在旧CMS上,我们使用了与以下类似的文章的url结构: https://example.com/parent-category/child-category/7564-title-of-the-article https://example.com/parent-category https://example.com/parent-category/child-category 我们希望将所有请求redirect到这个结构的旧文章 https://example.com/title-of-the-article https://example.com/category/parent-category https://example.com/category/parent-category/child-category 这里的分类是wordpress slug 我在nginx中尝试了一些redirect规则,然而事实certificate我对于正则expression式并不擅长。 我无言以对 请帮我做。 我不知道该去哪里。 这将不胜感激。 更新:编辑原始的链接结构,以消除有关“类别”是一个静态的slu conf混乱。 不是这样。 有多个类别和子类别: https://example.com/review/app/734-title-of-the-post https://example.com/news/546-title-of-the-post https://example.com/blog/opinion/456-title-of-the-post

当使用Varnishcaching和代理传递时,保持客户端请求的主机名传递到远程后端

我在configurationVarnish时遇到了一些麻烦,在线文档不是很清楚(至less对我来说)。 我目前有一个Ubuntu服务器上的清漆caching设置。 我在同一台服务器上testing了本地Nginx的清漆,并且工作正常。 我想要做的就是使用Varnish作为configuration了Nginx的远程Web服务器的caching和反向代理。 我需要保留客户端请求的主机名,并将其传递给远程的Nginx Web服务器。 这可以在Nginx使用proxy_set_header主机和Apache通过使用ProxyPreserveHost在。 问题是我在我的远程Nginx上有许多不同的虚拟主机,服务器的DNS没有configuration其中的任何一个。 他们都是不同的,所以我需要确保从客户端请求的主机通过。 我很抱歉,如果这不清楚,但我是光油的全新,这是什么,就像我习惯与Apache或Nginx。 任何帮助将不胜感激。 这是我的default.vcl: vcl 4.0; # Default backend definition. Set this to point to your content server. backend default { .host = "dns.of.remote.nginx.server"; .port = "80"; .probe = { .url = "/"; .timeout = 30s; .threshold = 8; } } sub vcl_recv { # Happens before […]

proxy_pass到nginx后面的websocket

我有websocket服务器,有nginx的背后。 我需要configuration第二个nginx作为这个第一个nginx的代理。 但是,当我提出请求,有一个错误400或404(不同的configuration)。 这是我的nginx的configuration: map $http_upgrade $is_upgrade { default upgrade; '' ''; } upstream websocket { server [here_is_address]; } server { listen 80 default; location /ws/ { proxy_http_version 1.1; client_max_body_size 50m; proxy_read_timeout 60s; proxy_set_header Host $http_host; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $is_upgrade; proxy_pass http://websocket; } }

Ubuntu 17.4login后无法通过局域网访问

我在nginx上托pipe一个网站,通过局域网上传/下载zip文件。 我切换到Nginx和Ubuntu 17.4,工作太多,但只是一分钟,然后服务器变得无法访问局域网上的任何PC,反之亦然。 如果我通过局域网在任何一台电脑的浏览器上input本地IP地址 ,它将不起作用(加载时间过长,最终导致连接中断) 在那里托pipe的所有域名和网站以及公共IP完美地工作。 更新1 这是由Ubuntu 17.4的networking错误造成的https://askubuntu.com/questions/906103/lan-not-working-on-17-04 更新2 每次我在login屏幕重新启动操作系统,它的作品。 当我以用户或root身份login时,它不起作用。 临时修复:我必须去Nextwork连接删除当前的连接,并创build一个新的每一次我login

Sinatra / Nginx / ELBv2 API仅在Chrome 58或更高版本上生成ERR_SPDY_PROTOCOL_ERROR

我有一个与以下堆栈的API: Sinatra <=HTTPS/TLS=> Nginx <=HTTPS/TLS=> ALB(ELBv2) 这是一个基本的url缩短器,它会向浏览器发送301redirect到更长的URL。 这是一年或两年完美的工作,但自从Chrome 58,我现在从Chrome中的APIredirectERR_SPDY_PROTOCOL_ERROR。 普通页面返回正常,其他浏览器正常工作。 答案肯定是由ALB发送的,因为我看到了stream量,并且在CloudWatch或Nginx或Sinatra的日志中没有报告错误。 我已经与AWS Support打开了一张票,但是我没有从中得到太多的帮助。 有没有人看过类似的东西? 我什至不知道该怎么解决这个问题,因为我的nginx甚至没有configuration为使用SPDY或HTTP2。 编辑:这是ALB示例访问日志中断尝试和工作(通过curl): h2 2017-06-21T15:30:01.438546Z app/aws-example-net/019315b3036f76ac 184.75.37.61:59367 10.252.14.202:443 0.000 0.004 0.000 301 301 30 1170 "GET https://aws.example.net:443/short/-OpLPG8h HTTP/2.0" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.104 Safari/537.36" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 arn:aws:elasticloadbalancing:us-east-1:XXXXXXXXXXXX:targetgroup/ecs-prod-e-urlshortener/7c6cddcc83c91aeb "Root=1-594a90f9-41b321bf039f142a083cb587" h2 2017-06-21T15:30:06.928711Z app/aws-example-net/019315b3036f76ac 184.75.37.61:19376 10.252.14.202:443 0.000 0.004 […]

如何在Nginx服务器上将所有域(通用/每域)redirect到HTTPS?

我只是设置了我的VPS,并安装了所有的域名,让我们encryptionSSL证书。 但是,我所有的域仍然通过http://加载,而不是https://(除非手动input)。 现在,我希望所有域默认开始使用https://。 我怎么做? 为了logging,我有一个运行Nginx + php-fpm的Ubuntu 16.04 VPS,没有Apache。 老实说认为这很奇怪,在这个时代默认打开SSL是非常困难的,因为它几乎应该像食物,饮料和头顶上的屋顶一样标准。

NGINX – 在一个端口上提供create-react-app应用程序,在另一个端口上提供我的api

在我的应用程序中,我正在使用create-react-app并通过在节点pm2进程中使用“serve -s build”在端口5000上为我的站点的前端提供服务。 我可以通过使用这个configuration为我的nginx工作。 server { listen 443 ssl; server_name random.com www.random.net; ssl_certificate /etc/letsencrypt/live/random.net/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/random.net/privkey.pem; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_dhparam /etc/ssl/certs/dhparam.pem; ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-DSS-AES128-GCM-SHA256:kEDH+AESGCM:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA256:DHE-RSA-AES256-SHA256:DHE-DSS-AES256-SHA:DHE-RSA-AES256-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:AES:CAMELLIA:DES-CBC3-SHA:!aNULL:!eNULL:!EXPORT:!DES:!RC4:!MD5:!PSK:!aECDH:!EDH-DSS-DES-CBC3-SHA:!EDH-RSA-DES-CBC3-SHA:!KRB5-DES-CBC3-SHA'; ssl_session_timeout 1d; ssl_session_cache shared:SSL:50m; ssl_stapling on; ssl_stapling_verify on; add_header Strict-Transport-Security max-age=15768000; location / { proxy_set_header X-Forwarded-For $remote_addr; proxy_set_header Host $http_host; proxy_pass "http://127.0.0.1:5000"; } location ~ /.well-known { allow all; […]

如何将端口80上的非HTTP请求转发到另一个端口?

有一个监听80和443端口的nginx web服务器。 我想像往常一样处理所有的http请求,并将所有非http请求转发到另一个端口(比如1234)。 我的问题是非常相似的已经在stackoverflow上回答: 是否有可能转发NON-http连接请求到Nginx的其他端口? 。 也许,我误解了最广泛的答案,但是当我在nginx.conf中添加这样的内容时: stream { upstream backend { server example.com:1234; } server { listen 80; proxy_pass backend; } } 我得到(预期) bind() to 0.0.0.0:80 failed (98: Address already in use)错误。