Articles of nginx

VPS上NGINX反向代理的硬件select和带宽限制?

下午好朋友。 目前,我们正在增加SaaS应用程序的基础架构,并需要2个应用程序专用服务器,每个服务器运行一个nodejs应用程序的多个实例。 我们托pipe服务器的公司确实提供了“现货供应”的IP负载均衡器,但是现在显然无法处理HTTPS,所以我们需要自己构build负载均衡器(反向代理)。 他们build议使用廉价的VPS,并configuration一个带反向代理和SSLterminal的NGINX。 我对这个还是比较陌生的,并且一直在进行大量的阅读,但是仍然有一些问题: VPS处理反向代理会有什么好的“规模”? SSL更多的内存,CPU或I / O任务的解密/encryption任务? 我应该优先考虑哪个? 实际的应用服务器有一个很好的512Mbps带宽和1Gbps突发,但是做所有客户端通信的VPS实际上只有100Mbps。 这是一个问题吗? 也许服务器可以configuration为直接回复客户端,而不是返回到VPS? 这是甚至可能的或可取的? 所以,我的问题实际上是我为了“现成的”解决scheme而跳槽,现在我需要手动configuration一切,我有点担心我需要的实际需求以及如何configuration它们。 任何有关如何处理基本SSL负载平衡的build议,将不胜感激。 如果我采取的方法是完全错误的,我愿意接受所有的build议。 在此先感谢,最好的问候, 拉法·波利特

nginx和site.erb:标记为两个不同域和两组不同IP的内部用户

我有一个nginx服务器和一个site.erb文件和两个不同的域(域1和域2)。 目前,当某人从特定的一组远程IP地址( set $analytics "'userType': 'internal'" )访问网站时,会设置一个标签(用于Google跟踪代码pipe理器),并将此信息发送给Google Analytics: # Set userType variable for Google Tag Manager (default is external) set $analytics "'userType': 'external'"; # LAN traffic is internal therefore, if ($remote_addr = zzz.zzz.zzz.zzz) { set $analytics "'userType': 'internal'"; } # The Wifi traffic is internal therefore, if ($remote_addr = yyy.yyy.yyy.yyy) { set $analytics "'userType': 'internal'"; […]

无法在FreeNAS监狱的nginx上启用TLSv1.2

我对FreeBSD环境相当陌生,我很习惯Linux。 我已经在FreeNAS 9.3中创build了一个监狱,并且在几个在线资源(例如“freebsd jail nginx ssl”或者类似的东西)上安装了带有SSL支持的nginx,并且允许encryption证书。 我知道有一个基于FreeBSD 10的新版FreeNAS版本,但是我现在还不能升级。 一切正常,但我的SSLLabs评级是C,因为The server supports only older protocols, but not the current best TLS 1.2. Grade capped to C. The server supports only older protocols, but not the current best TLS 1.2. Grade capped to C. 在我的nginxconfiguration文件中,启用了TLSv1.2,并且服务器重新加载没有发生错误: […] server { listen 443 ssl; #SSL ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ssl_ciphers […]

对于域和path,nginx SSL客户端证书握手非常慢

我有一个服务器与一些子域公开访问,而在一个子域上的客户端证书是必需的。 不仅如此,该子域上的path指向不同的应用程序。 也就是说,这个子域可以保护不同的networking应用程序免受公共可访问性的影响。 每个域都有自己的nginxconfiguration。 这里是我的nginxconfiguration文件的客户端证书保护的应用程序。 map $http_upgrade $connection_upgrade { default upgrade; '' close; } server { listen 80; server_name private.domain.com; location / { rewrite ^(.*) https://private.domain.com$1 permanent; } } server { listen 443; ssl on; server_name private.domain.com ### Disable ssl v.3 ### ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_session_cache shared:SSL:10m; ### SSL cert files ### ssl_certificate /srv/ssl/wildcard.domain.com.crt.combined; […]

Nginx字符集不工作

我使用简单的引擎作为我的服务器,即nginx和默认设置,但是当我转到我的网站的文本/ HTML的内容types不显示字符集 它显示了其他的一切,这是从一段时间和我seo球员需要帮助 该网站build立在index.html的标题angularjs上 cache-control:max-age = 0,no-cache 内容编码:gzip 内容types:text / html的 date:2016年4月8日星期五10:26:05 GMT 服务器:nginx 状态:200 严格的运输安全:最大年龄= 31536000; includeSubdomains;预紧 有所不同:接受编码 X-内容types选项:nosniff X框选项:SAMEORIGIN X-XSS-保护:1; 模式=块 为同一台服务器的JavaScript 访问控制允许来源:* caching控制:最大年龄= 315360000 内容编码:gzip 内容types:application / JavaScript的; 字符集= utf-8的 date:2016年4月8日星期五10:25:56 GMT ETAG:W / “5706f1f9-a651d” 到期日:2037年12月31日星期四23:55:55 GMT 上次修改时间:四月07,2016 23:49:13 GMT 服务器:nginx 状态:200 有所不同:接受编码 我已经尝试了一切谷歌已经build议和searchserverfault / stackoverflow 问候,瓦茨拉夫Dsilva

将Apache2的RewriteCond%{QUERY_STRING}移植到nginx

我做了一个大的基于PHP的网站的静态镜像,使用以下Apache2重写节获取查询string到文件系统path正确地提供静态文件。 旧的dynamicurl foo/?bar映射到静态文件foo/image.php?bar , foo/image.php?bar映射到foo/image.php@bar – 所有使用/由%2Freplace,无论它出现在bar中在原始网站中最多5次)。 举个例子,我有像example.com/foo/?bar=baz/quux这样的URL,我需要映射到像foo/index.html@bar=baz%2Fquux这样的文件。 # turn off php php_admin_value engine off # enable rewrites RewriteEngine on # rewrite …/?… to …/index.html@… with s|/|%2F|g RewriteCond %{QUERY_STRING} ^([^/]+)$ RewriteRule ^(.*)/$ %{DOCUMENT_ROOT}/$1/index.html@%1 [L,T=text/html] RewriteCond %{QUERY_STRING} ^([^/]+)/([^/]+)$ RewriteRule ^(.*)/$ %{DOCUMENT_ROOT}/$1/index.html@%1\%2F%2 [L,T=text/html] RewriteCond %{QUERY_STRING} ^([^/]+)/([^/]+)/([^/]+)$ RewriteRule ^(.*)/$ %{DOCUMENT_ROOT}/$1/index.html@%1\%2F%2\%2F%3 [L,T=text/html] RewriteCond %{QUERY_STRING} ^([^/]+)/([^/]+)/([^/]+)/([^/]+)$ RewriteRule ^(.*)/$ %{DOCUMENT_ROOT}/$1/index.html@%1\%2F%2\%2F%3\%2F%4 [L,T=text/html] […]

Ghost与Nginx只能在80端口上运行

自昨天以来,我一直在努力修复这个问题。 我已经做了很多尝试和解决它,仍然没有任何接缝工作。 我试图用Ghost安装NodeJS,并使用NGINX作为我的每一个应用程序(在这种情况下为Ghost)的反向代理,但是我不希望它在端口80上运行。但是,它只能在端口80上运行。只要将configuration文件中的listen选项更改为80以外的值,就会停止工作。 所以这是我的设置 运行Ubuntu 14.04.04 x64 VPS configuration文件位于站点中,可通过符号链接启用站点 在sites-enabled中没有默认文件,在/etc/nginx/conf.d中没有文件 我没有改变/etc/nginx/nginx.conf中的任何内容 防火墙被禁用,文件在/www/domain.com文件夹中,拥有root权限777:root(当我得到它的时候我会调整权限) Ghost运行在9020端口,主机是0.0.0.0(都在config.js里面) 所以我的站点内的configuration文件可用是:(工作正常,除非我更改listen 80 default_server来listen 9000 default_server或任何其他端口。 server { listen 80 default_server; server_name x.net www.x.net; root /www/x.net; index index.html index.htm; location / { proxy_pass http://localhost:9020; proxy_set_header Host $host; } } 当我在控制台inputnetstat -peanut时候听到端口9000,这是我的结果; netstat -peanut build议为什么它不工作?

Nginx作为IBM Websphere上游的反向代理

我有一个IBM WebSphere服务多个域: XXXX:8080 / APP1 XXXX:9090 / APP 2 …我需要configurationNginx作为反向代理来服务: app1.example.com app2.example.com 这是我的configuration,但它不工作: server { listen 443 ssl; server_name www.app1.example.com app1.example.com; ssl on; ssl_certificate example.com.crt; ssl_certificate_key example.com.key; ssl_trusted_certificate example.comCA.crt; ssl_session_cache shared:SSL:10m; ssl_session_timeout 10m; ssl_prefer_server_ciphers on; ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDH+AESGCM:DH+AESGCM:ECDH+AES256:DH+AES256:ECDH+AES128:DH+AES:ECDH+3DES:DH+3DES:RSA+AESGCM:RSA+AES:RSA+3DES:!aNULL:!MD5:!DSS; keepalive_timeout 70; location / { access_log app1-access.log; error_log app1-error.log; include /etc/nginx/mime.types; proxy_pass http://xxxx:8080/app1/; […]

“双反向代理”从apache 2.4到nginx到最终目的地ssl secure rocket.chat

我有两个Web服务器在一个防火墙后面的服务器。 所以只有一个可以获得80和443的端口。 第二个,没有得到港口natted,我安装了rocket.chat。 目前唯一能通过ssl来确保安全的方法是通过反向代理。 由于我不希望数据在内部networking中不安全地发送,我试图使用两个反向代理。 一个从webserver1到webserver2,另一个从webserver2到rocket.chat本身。 在webserver1上运行apache 2.4,在webserver2上运行nginx 1.6。 redirect似乎两个工作,但我没有得到显示的网页。 如果我直接通过443联系webserver2,则显示网页。 甚至有可能使用两个反向代理? 如果没有,还有没有其他机会来encryption内部stream量呢? 我的apache conf: <VirtualHost *:443> ServerName rocket-chat.blablabla.bla SSLProxyEngine On SSLProxyVerify none SSLProxyCheckPeerCN off SSLProxyCheckPeerName off SSLProxyCheckPeerExpire off ProxyPass / https://192.168.0.8 ProxyPassReverse / https://192.168.0.8 SSLEngine on SSLCertificateFile /etc/ssl/certs/xyz.crt SSLCertificateKeyFile /etc/ssl/private/xyz.key </VirtualHost> 我的nginx conf: server { listen 443 ssl; server_name 192.168.0.8; ssl_certificate /etc/nginx/ssl/nginx.crt; ssl_certificate_key /etc/nginx/ssl/nginx.key; […]

redirect到子域URL,同时保留原始URL和从子域URL中提供文件

我想要访问www.example.com并将其redirect到subdomain.example.com/homepage,而不必从www.example.com更改url。 比我的CSS和JS的捕获是在subdomain.example.com托pipe。 我正在为最后一部分苦苦挣扎。 到目前为止,我有这样的: http { upstream meteor_server { ip_hash; server 192.168.0.24:88; } server { server_name www.example.com; location / { proxy_pass http://meteor_server/homepage/; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } } server { server_name subdomain.example.com; location / { proxy_pass http://meteor_server/; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_http_version 1.1; […]