Articles of nginx

NGINX将除letsencrypt以外的所有内容redirect到https

我有一个简单的configuration,除了letsencrypt请求redirect到https,然后让我的虚拟主机只在https .. 目前我所有的请求都被redirect到了https,然后是一个404的letsencrypt: 这是我的configuration… server { listen 80 default_server; listen [::]:80 default_server; server_name _; location ^~ /.well-known/acme-challenge/ { allow all; default_type text/plain; return 200 "$1.abcd-efgh"; } location / { return 301 https://$host$request_uri; } } server { listen 443 ssl; server_name plex.my_domain.com; ssl_session_timeout 30m; ssl_protocols TLSv1.2 TLSv1.1 TLSv1; ssl_certificate /root/.acme.sh/plex.my_domain.com/fullchain.cer; ssl_certificate_key /root/.acme.sh/plex.my_domain.com/plex.my_domain.com.key; ssl_session_cache shared:SSL:10m; add_header X-Xss-Protection […]

仅在nginx中,在单个上游服务器上使用ip_hash

我们使用nginx进行负载平衡。 在推出之前,我们只是推出了一个新的服务器,并对我们的平台进行了大规模的升级testing。 我们希望确保它能正常工作,所以我们有权设置为将大约10%的stream量发送到该服务器。 问题是,我们需要确保如果用户是服务器的服务器,他们将永远得到该服务器为未来的会议。 这很容易用ip_hash完成,但我们真正想要的是其他服务使用循环策略,而只有一台服务器使用ip_hash。 有这样的可能吗? 这是我们的upstream.conf upstream apps { ip_hash; server 10.134.13.38:80 weight=3; # app-00 server 10.134.13.46:80 weight=3; # app-01 server 10.134.24.30:80 weight=3; # app-02 server 10.134.8.153:80 weight=1; # app-new-test }

我应该使用什么DNS服务器来接收我的nginxparsing器的AWS内部地址?

我正在使用AWS Elasticache服务器example.foo.euw1.cache.amazonaws.com ,我希望nginx能够在位置指令中使用(这只是一个简单的例子): location /cached { set $memcached_key $uri; memcached_pass example.foo.euw1.cache.amazonaws.com:11211; try_files $uri =404; } 由于Elasticache节点IP地址可以更改,因此我不想使用example.foo.euw1.cache.amazonaws.com的当前IP地址。 我应该使用什么resolver IP来获取AWS内部IP地址(10.x)而不是面向公众的版本(79.x)? 在nginx运行的机器上,我可以用这些host调用来模拟这个: $ host example.foo.euw1.cache.amazonaws.com $ 10.120.40.80 $ # ^^^ that's the correct internal address I want to use $ $ host example.foo.euw1.cache.amazonaws.com 8.8.4.4 $ 79.125.100.150 $ # ^^^ that's the public IP that I don't want to […]

我可以使用/etc/nginx/conf.d添加位置吗?

我有一些nginxconfiguration片段,它添加位置,即发送请求到特定的path到fastcgi服务器。 对于一个干净的部署,我想使用/etc/nginx/conf.d文件夹将它们添加到那里。 问题是, location /something属于服务器块,默认服务器已经在/etc/nginx/sites-enabled/default 。 而当我想部署更多不同的位置时,他们不应该为每个包含需要一个自己的虚拟主机。 可能甚至一个网站sites-enabled将是有用的,但它应该仍然是可组合的。 在不知道是否安装了其他代码片段的情况下,可以在同一个configuration中包含不同的片段。 有没有一种干净的方式来包含configuration片段的位置块,而无需修改默认configuration?

Nginx:/用于静态内容和代理应用程序

http://example.com :我的网站 http://example.net :代理后端 我正在尝试将nginx服务器块设置为静态内容服务器和反向代理。 Nginx应该首先检查静态文件,然后在没有文件存在的情况下redirect到代理应用程序。 它是这样configuration的: location @backend { proxy_pass http://example.net; } location / { try_files $uri $uri/ @backend; } 但是,使用这种访​​问http://example.com的configuration会返回一个403 Forbidden :似乎nginx试图提供一个静态文件夹,没有find一个index.html并且没有代理example.net失败了。 然后我必须明确地添加一个路由为/ location = / { proxy_pass http://example.net; } 这样http://example.com/被正确代理到http://example.net 。 但是这样的configuration感觉很奇怪:还有更好的代理方式吗?

在Ubuntu,nginx服务器上configurationTTL从1800秒到86400秒

我部署了一个应用程序到Digital Ocean Ubuntu服务器。 该应用程序正在NGINX上运行。 我的域名注册服务机构给我发送了“TTL不能less于86400秒”的信息。默认情况下,数字海洋现在是1800秒。 有人能告诉我如何configuration从1800秒到86400秒的TTL设置。 必须有一些方法通过terminal访问设置? 我对这一切都很陌生,所以任何build议或指导将不胜感激

在Apache,LightTPD和Nginx Web服务器上为PHP 5.x应用服务的当前状态?

在过去一年半的时间里,被困在一个MS堆栈架构/开发职位中,阻止了我站在基于开源堆栈的Web服务器最近的演进世界的顶端,超过了我的愿望。 不过,我现在正在构build一个基于开放源代码的应用程序/系统体系结构,可惜我没有时间给每个上面提到的Web服务器进行彻底的testing。 所以我想我会得到来自最知名的系统体系结构的input。 这是一个网站,是一个特定的域名和目标受众的信息资源的资源,以帮助用户不仅可以find信息,而且由于各种原因以各种方式彼此交互。 我select了开源的堆栈,以及比MS堆栈更好的产品(比如WordPress和BlogEngine.NET)。 我觉得Java在这方面比较多,但我并不排除在某些与实际Web应用程序本身无关的领域(如后台进程)使用它的可能性。 我已经得出了在CentOS上使用PHP(使用CodeIgniter框架和APC),MySQL(InnoDB)和Memcached的结论。 我绝对在Nginx上提供静态内容。 然而,上述3款服务器对于性能方面的dynamic内容最适合。 看来LightTPD仍然存在泄漏问题,如果它确实存在的话,Nginx似乎还不够成熟,当然Apache会尽力为每个人做好准备。 我仍然会编译一个select尽可能多的性能调整,如静态链接等。 我相信我可以通过这个过程让Apache匹配另外两个服务dynamic内容,而不是静态服务。 然而在我的研究中,似乎其他人仍然值得考虑。 所以考虑到所有的事情,我很想听听这里的每个人都在这个问题上说什么。 谢谢!

在没有DNS的情况下使用内部虚拟主机

我需要在同一台机器上为大量网站提供服务。 我需要能够dynamic地添加和删除网站。 在内部,Web服务器需要认为请求是从虚拟主机到达的。 是否可以在前面使用nginx来处理以下格式的请求:example.com/vhost1/some/path并将其重写为:vhost1.example.com/some/path 我可以做到这一点,而无需为vhost1.example.comconfigurationDNS? 我是否需要将vhost1.example.com添加到机器上的主机名称? 谢谢

在Mac OS X上使用Nginx / Passenger的502错误网关错误(10.6.1)

经过几个小时的与这个exception作斗争,我终于承认失败。 如果有人在这里可以帮助我,我将不胜感激! 快速总结: 我在我的Nginx错误日志中有这个错误: 2009/11/09 02:49:59 [error] 90#0: *7 connect() to unix:/tmp/passenger.54/master/helper_server.sock failed (61: Connection refused) while connecting to upstream, client: 127.0.0.1, server: test.local, request: "GET / HTTP/1.1", upstream: "passenger://unix:/tmp/passenger.54/master/helper_server.sock:", host: "test.local" 全部细节如下。 我在本地机器上安装了Nginx和Passenger,以便在本地开发中使用它。 我正在运行Apache和Passenger,但我得到了一些错误,所以我决定切换。 我没有任何麻烦地将Passenger Nginx扩展安装到/ usr / local / nginx中 并在/usr/local/nginx/conf/nginx.conf中configuration了Nginx 为了完整,这里是nginx.conf的内容: worker_processes 2; pid logs/nginx.pid; events { worker_connections 1024; } http { […]

Apache / nginx正在运行,但浏览器显示连接失败

我刚刚安装nginx和Apache的专用服务器上的红帽,如何当我去http://65.111.167.39我得到一个连接失败。 我试图改变nginx端口configurationconf,但它也没有工作。 这两个服务正在运行: /etc/init.d/httpd状态httpd(pid 22498)正在运行… /etc/init.d/nginx状态nginx(pid 22534)正在运行… 一些build议? 顺便说一下,我没有任何经验,所以任何事情都可能会丢失。