Articles of nginx

尽pipe端口443已打开,但无法访问https

这是我第一次build立一个服务器,我刚刚安装了一个SSL证书。 我也对iptable进行了一些更改,以允许访问443.下面是iptables -L的输出 target prot opt source destination ACCEPT all — anywhere anywhere state RELATED,ESTABLISHED ACCEPT tcp — anywhere anywhere state NEW tcp dpt:http ACCEPT icmp — anywhere anywhere ACCEPT all — anywhere anywhere ACCEPT tcp — anywhere anywhere state NEW tcp dpt:ssh ACCEPT tcp — anywhere anywhere state NEW tcp dpt:smtp ACCEPT udp — […]

nginx可以在端口80上侦听,但在443上使用SSL发送上行到后端?

对于PCI合规性,我的应用程序被迫使用反向代理服务器和后端应用程序服务器之间的安全/encryption连接,而进入反向代理的连接在端口80上,即反向代理需要充当http-to -https转换器。 一个简单的图表: IIS7 <—端口443 — nginx <—-端口80 —- Internet 我正在评估使用nginx鱿鱼为这,这是我在我的nginx.conf到目前为止: worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; upstream backend { server mybackendserver:443; } server { server_name www.mysite.com listen 80; ssl on; ssl_certificate /etc/nginx/server.crt; ssl_certificate_key /etc/nginx/server.key; ssl_verify_client off; location = / { proxy_pass https://backend; proxy_set_header […]

nginx反向SSL代理与多个子域名

我试图find一个高级configuration的例子,为我目前的情况。 我们为多个内部IIS服务器上的多个子域拥有通配符SSL证书。 site1.example.com (XXX194) -> IISServer01:8081 site2.example.com (XXX194) -> IISServer01:8082 site3.example.com (XXX194) -> IISServer02:8083 我期待通过一个服务器条目来处理传入的SSLstream量,然后将特定的域传递给内部IIS应用程序。 看来我有两个select: 编码每个子域的位置部分(从我发现的例子看起来很乱) 将未encryption的stream量转发回为每个子域名主机名configuration不同服务器条目的nginx服务器。 (至less这似乎是一个选项)。 我的最终目标是巩固我们的大部分SSLstream量以通过nginx,所以我们可以使用HAProxy来负载均衡服务器。 如果我正确设置了proxy_set_header条目,是否会在nginx中使用#2方法? 我在我的最终configuration文件(使用方法#2)中设想了一些东西: server { listen YYY174:443; #Internally routed IP address server_name *.example.com; proxy_pass http://YYY174:8081; } server { listen YYY174:8081; server_name site1.example.com; — NORMAL CONFIG ENTRIES — proxy_pass http://IISServer01:8081; } server { listen YYY174:8081; server_name site2.example.com; […]

无法在ubuntu 14.04中添加nginx最新版本的应用程序库

Ubuntu默认安装nginx 1.4.6。 我试图安装最新的稳定版本的nginx(1.6.2)。 所以这里说: 您需要添加Ubuntu PPA存储库以获取系统上最新的Nginx稳定版本。 使用下面的命令来做到这一点。 # Add repository to your system # magesh@magesh-desktop:~$ add-apt-repository ppa:nginx/$nginx 但是当我尝试这个命令时,会抛出错误: Cannot add PPA: 'ppa:nginx/'. Please check that the PPA name or format is correct. 我该如何解决? 谢谢

沉重的静态内容服务有多less内存?

我想为我的静态内容制作一个服务器。 我需要提供3-10 MB的文件 – 很多。 (我也会把这个服务器的一些.js和.css以及来自我的网站的图片)。 我想到了nginx和G-WAN( http://trustleap.com/ )。 我不知道服务静态内容需要哪些资源? 每个文件传输使用多less内存? 如果我将使用一个256 MB(或512 MB)的VPS,它具有良好的端口和巨大的带宽,我可以提供多less点击/秒(3-10 MB文件)? (我知道“这取决于” – 但请给我一个基于经验或理论的粗略估计)。 有没有很多的文件,只是经常下载 – 我应该考虑caching,或这只会使用我的记忆需要服务点击?

nginx + django提供静态文件

我已经遵循了从django wiki( https://code.djangoproject.com/wiki/DjangoAndNginx )用nginx设置django的指令,并按如下所示进行了nginx设置(几个名称更改以适应我的设置)。 user nginx nginx; worker_processes 2; error_log /var/log/nginx/error_log info; events { worker_connections 1024; use epoll; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr – $remote_user [$time_local] ' '"$request" $status $bytes_sent ' '"$http_referer" "$http_user_agent" ' '"$gzip_ratio"'; client_header_timeout 10m; client_body_timeout 10m; send_timeout 10m; connection_pool_size 256; client_header_buffer_size 1k; large_client_header_buffers 4 2k; request_pool_size 4k; […]

Nginx的phpmyadminredirect到/而不是/ phpmyadmin的login

我有我的nginx安装我的phpmyadmin问题。 当我input<ServerIP>/phpmyadmin并login时,我被redirect到<ServerIP>/index.php?<tokenstuff>而不是<ServerIP>/phpmyadmin/index.php?<tokenstuff> Nginxconfiguration文件: user nginx; worker_processes 5; error_log /var/log/nginx/error.log warn; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main '$remote_addr – $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 2; #gzip on; include /etc/nginx/conf.d/*.conf; } Default.conf: server { listen […]

Nginx代理到SSL客户端证书authentication的后端

我有两台服务器,都有nginx。 服务器A正在侦听443,并configuration为使用客户端SSL证书进行身份validation。 服务器B有一个内部进程需要通过nginx与服务器A进行通信。 我想在服务器B上configurationNginx,它将侦听8080(不encryption,因为它是全部本地通信),并且proxy_pass到ServerA:443。 问题是如何注入客户证书? 我没有find任何proxy_xxxx函数。 我知道如何使用与socat相当的,但我的要求是使用nginx。

如何使源程序保持最新?

我正在devise一个新的托pipe多个网站的服务器设置。 (在SliceHost为我的客户共享主机)。我最近已经从传统的LAMP设置中移除了,select了Ubuntu, Nginx , php-fpm和mysql。 我喜欢它,然后我的旧的Apache, suphp ,mysql安装程序。 它工作的很好,提供了网站之间的封装,并使用大量的内存。 不过,我有一个主要的维修问题。 为了获得Nginx的最新版本,并且为了使用php-fpm我必须从源代码编译这些程序。 我认为这是一个问题的原因是跟踪更新,并build立configuration将成为大量的工作。 对于两个程序(和一个补丁),我可以处理它,但似乎这个设置不会扩展许多包和服务器。 有没有好的方法来处理这种情况? 我确信人们总是这样做。

Firefox和Chrome持续使用nginx / Passenger在Rails应用上强制HTTPS

我有一个非常奇怪的问题,每次我尝试在非SSL模式下浏览我的Rails应用程序时,Chrome(v16)和Firefox(v7)会不断强制我的网站以HTTPS的forms提供服务。 我的Rails应用程序部署在使用Capistrano,nginx,Passenger和通配符SSL证书的Ubuntu VPS上。 我在nginx.conf中为端口80设置了这些参数: passenger_set_cgi_param HTTP_X_FORWARDED_PROTO http; passenger_set_cgi_param HTTPS off; 我的nginx.conf的长版本可以在这里find: https : //gist.github.com/2eab42666c609b015bff ssl-redirect.include文件包含: rewrite ^/sign_up https://$host$request_uri? permanent ; rewrite ^/login https://$host$request_uri? permanent ; rewrite ^/settings/password https://$host$request_uri? permanent ; 当来自非SSL请求时,确保这三个页面使用HTTPS。 我的production.rb文件包含这一行: # Enable HTTP and HTTPS in parallel config.middleware.insert_before Rack::Lock, Rack::SSL, :exclude => proc { |env| env['HTTPS'] != 'on' } 我已经尝试通过nginx重写redirect到HTTP,Ruby on Railsredirect,也使用Rails视图使用HTTP协议的URL。 我的application.rb文件包含在before_filter钩子中使用的这个方法: […]