Articles of nginx

使用WAN作为内部networking

假设我有一个用于服务客户端的小型Web基础架构,其中包含nginx作为前端服务器,几个后端(上游),一个消息传递系统,db等等。 这个东西位于两个专用服务器上。 服务器之间有局域网,每个服务器至less有一个公共IP地址。 而且所有的公网地址都在同一个广播网段(通过交换机连接或在VLAN中 – 无关紧要)。 这两个networking上的延迟是相同的。 我有两个select在系统的各个部分之间进行通信:在所有configuration中使用本地IP,或使用公有IP。 在第一种情况下,我会有一些更复杂的基础设施(由两个networking引起的)。 在第二种情况下,我的系统将更加透明,但是我担心networking通信的隐私。 它是否存在使用这种或那种方法的一些规则或最佳实践?

使用apt-get与源代码来安装nginx?

我使用apt-get在我的服务器上安装了nginx。 我现在需要添加一些function,比如pagespeed模块,并且已经阅读了唯一的方法,就是直接将模块编译到nginx源文件中。 这是否意味着我必须卸载nginx并从源代码重新安装? 使用apt-get和源代码之间还有什么其他区别?

Nginx将文件夹redirect到子域

我试图configurationNginx的redirect从一个文件夹到一个子域。 我已经尝试过Nginxredirect:文件夹到外部域和Nginx重写规则(子目录子域)和nginx:redirect子文件夹子域 。 没有任何工作 这个问题很简单。 我有一个configuration了这一行的Apache: RedirectPermanent / asd http://asd.domain.com/ 现在,我试图在Nginx上复制这个。 我试过的每一个configuration都有同样的问题: 如果我去http://www.domain.com/asd/ ,他们redirect到http://asd.domain.com/asd/ 。 如果我去http://www.domain.com/asd/index ,他们redirect到http://asd.domain.com/index 。 我需要在所有情况下删除子文件夹,对于我来说,第一个是不正确的。 如何在第一种情况下configurationnginx,请访问http://asd.domain.com/ ? 规则在根参数之后应用。 configuration是: server { listen — server_name — root — <> INSERT RULE HERE access_log — error_log — include – (A file with php configurations). } 尝试规则的一些例子: 重写^ / asd /(.*)http://asd.domain.com/ $ 1永久; 重写^ […]

Nginx上游从serverA故障转移到serverB,然后回到serverA,为什么?

背景 我有以下Nginxconfiguration,这是负载平衡2台不同服务器上运行的Tomcat服务器: ### http://nginx.org/en/docs/http/ngx_http_upstream_module.html#hash upstream backend_w_affinity { hash $request_uri consistent; server 192.168.110.11:8080; server 192.168.110.12:8080; } server { listen 80 default_server; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; location ~ ^/path/to/rest/endpoint$ { proxy_pass http://backend_w_affinity; } } 当我使用下面的curl命令来驱动Nginx的stream量时,它似乎很好。 $ watch "curl -iI http://10.128.13.153/path/to/rest/endpoint" HTTP/1.1 401 Unauthorized Server: nginx/1.8.0 Date: Tue, 09 Jun 2015 01:31:13 GMT […]

Nginx的HTTPSconfiguration问题非wws

我需要为我的Rails应用程序之一configurationnginx来通过SSL路由一些页面,但面临configuration问题。 我有一个SSL证书,通用名是example.com ,我的网站是从www.example.com路由到example.com 这是我的nginx.conf: upstream unicorn { server unix:/tmp/unicorn.sock fail_timeout=0; } server { listen 80; server_name www.example.com; return 301 $scheme://example.com$request_uri; } server { listen 443 ssl; server_name example.com; #return 301 $scheme://example.com$request_uri; ssl on; ssl_certificate /certificate path; ssl_certificate_key /key path; } server { listen 80 default_server; ssl_certificate /certificate path; ssl_certificate_key /key path; root /public directory; try_files […]

Nginx + ssl没有响应

我目前正在为leapfunderbuild立一个SSL服务器。 我创build了一个服务器(在AWS上的Ubuntu 14.04),指示notes.civocracy.org。 我在GoDaddy上购买了一个SSL证书,启动并configuration了一个Nginx服务器。 但是每当我去https://notes.civocracy.org/ ,我都没有回应。 我不明白为什么,因为Nginx正在运行和侦听,所以没有我知道的防火墙。 我的nginxconfiguration: server { listen 443 ssl; server_name notes.civocracy.org; root html; index index.html index.htm; ssl_certificate /etc/nginx/ssl/bundle.crt; ssl_certificate_key /etc/nginx/ssl/civocracy.key; ssl_session_timeout 5m; ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "HIGH:!aNULL:!MD5 or HIGH:!aNULL:!MD5:!3DES"; ssl_prefer_server_ciphers on; location / { try_files $uri $uri/ =404; } } 我在服务器上生成civocracy.key。 bundle.crt是GoDaddy给我的两个.crt文件的合并。 现在没有错误信息,所以从现在开始我不知道该怎么看。 有些人看起来像他们的路由器没有正确转发到443端口,但我在一个EC2实例,所以我不认为它适用

如果我在Git上使用GIT工作副本,这是一个安全问题吗?

如果我将一个工作副本签到我的网站的www根目录,那会是一个安全漏洞吗?

我如何使用Nginx来保护不安全的meteor?

我在AWS上运行一个不安全的Meteor。 对于那些不熟悉Meteor的人来说,这意味着我正在使用“不安全”的软件包,这个软件包用于快速原型开发。 我只需要我们的开发团队和利益相关者访问服务器。 过去,我通过在防火墙上列出每个人的IP地址来解决这个问题。 现在这个团队有点大,收集每个人的IP地址可能很难做到。 所以我想用Nginx来密码保护Meteor。 我知道如何密码保护的HTML; 但meteor使用Websockets,我完全不熟悉。 我如何密码保护websockets?

如何使nginx代理传递连接拒绝?

我有一个nginx代理指向外部服务器。 当外部服务器closures时,nginx代理返回一个502坏的网关。 相反,我想nginx也拒绝连接 – 我该怎么做?

我怎样才能使Apache和Nginx都在Varnish之后?

我有一个设置,我有端口8080上的Apache背后的端口80上的Varnish监听,而我打算在8081上使用Nginx。我的vps的控制面板只支持Apache,但是我想testing一个我在VPS上托pipe的网站上的Nginx ,因为Varnish已经在80了,所以我不能在同一个端口上有Nginx。 我不想完全摆脱Apache,因为我仍然需要它来访问我的vps的控制面板, Sentora准确地说,Apache位于8080上。在这里问的问题,OP想要有两个不同的域不同IP只是在Apache上,所以它并没有真正的帮助。 另外,我读了一些关于在我的vcl中使用server.port指令的地方,但我不知道如何去做。 以下是我的default.vcl的一部分: backend default { .host = "127.0.0.1"; .port = "8080"; } PS:我还没有安装Nginx。