我有两个不同的数据后端,我想testing我的UI代码,所以我想configurationNginx允许我们之间切换基于URL。 因此,例如,本地URL https://ui.local.otherserver:80将尝试我的本地文件,然后代理其他任何东西到https://otherserver:80 。 我试图避免有两个server块,因为下面的configuration简化,重复是一个痛苦。 我看到的行为是后端之一工作正常,另一个给我一个502(坏网关)错误,但如果我硬编码proxy_pass线路中的服务器的名称,它按预期工作,即成功代理到特定的服务器。 任何想法我做错了什么? ssl on; ssl_certificate /usr/local/etc/nginx/conf.d/cert.ui.crt; ssl_certificate_key /usr/local/etc/nginx/conf.d/cert.ui.key; server { listen 443; listen 80; server_name ~^ui\.local\.(?<backend>.+)$; expires -1; access_log /var/log/nginx/ui.access.log; error_log /var/log/nginx/ui.error.log; root /Users/richard/Projects/ui/trunk/; location ~ ^(.*)$ { try_files $1 @platform; } location @platform { proxy_pass https://$backend:$port; } }
我正在使用PHP-FPM的nginx(已安装APC)。 我需要PHP的flush()来工作。 这可能吗? 到目前为止我尝试过的东西: 禁用php.ini所有输出缓冲以及输出压缩。 禁用nginxconfiguration中的gzip 。 将nginx的fastcgi_*缓冲设置和fastcgi_max_temp_file_size设置为零。 我相信我一定会错过一些东西,因为我在这里和其他地方跑过很多post,人们声称他们已经有所作为,但是我看起来没有运气。
我正在使用nginx和php5-fpm一起使用以下fastcgi_params文件: fastcgi_param CONTENT_LENGTH $content_length; fastcgi_param CONTENT_TYPE $content_type; fastcgi_param DOCUMENT_ROOT $document_root; fastcgi_param DOCUMENT_URI $document_uri; fastcgi_param GATEWAY_INTERFACE CGI/1.1; fastcgi_param HTTPS $https; fastcgi_param PATH_INFO $fastcgi_path_info; fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info; fastcgi_param QUERY_STRING $query_string; fastcgi_param REDIRECT_STATUS 200; fastcgi_param REMOTE_ADDR $remote_addr; fastcgi_param REMOTE_PORT $remote_port; fastcgi_param REQUEST_METHOD $request_method; fastcgi_param REQUEST_URI $request_uri; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param SCRIPT_NAME $fastcgi_script_name; fastcgi_param SERVER_ADDR $server_addr; fastcgi_param SERVER_NAME $server_name; […]
我有* .example.com的通配符SSL证书。 我正在使用nginx,并将http的所有stream量redirect到https,还重写了不带尾随www的URL(如果有的话)。 所以呢, http://subdomain.example.com —> https://subdomain.example.com http://www.subdomain.example.com —> https://subdomain.example.com https://www.subdomain.example.com —> https://subdomain.example.com https://subdomain.example.com —> https://subdomain.example.com 但是,由于我的证书是* .example.com,案件3在chrome('这可能不是您正在查找的网站!')中获取SSL错误,但是如果您点击它,则会被redirect,一切都很好。 我明白了为什么,因为最初的连接是用于https的www(2级子域),它与通配符证书上的内容不匹配。 我认为解决scheme是获得*.*.example.com的附加证书来覆盖www.*.example.com 。 但似乎是行不通的。 我和来自namecheap和comodo的代理交谈过,并且都说*.*.example.com是不可能的。 我也遇到了这篇文章 有针对这个的解决方法吗? 为了能够覆盖www.*.example.com ?
也许这是一个愚蠢的问题。 太愚蠢了,我无法在教程或文档中find答案。 我想用Tornado Web Server做一些testing。 就我所能看到的例子而言,Tornado可以在例如8000端口启动,这个设置是在应用程序根目录下用python代码进行的。 不过,我已经看到人们似乎正在使用它与Nginx,我不明白他们的动机。 我知道在前面有一个Nginx可以用于生产目的,但是对于debugging而言,仅仅使用应用程序启动脚本是不够的: python app.py 为什么有必要让Nginx甚至用于testing目的? 非常感谢。
我试图在我的CentOS 6供电的VPS上安装php-ssh2。 我使用Nginx作为Web服务器。 我想告诉你们,我已经使用REMI的回购安装了php-fpm。 我不是VPS专家。 在build立我的新VPS时,我安装了两个回购站。 一个是REMI,另一个是EPEL的存储库。 第一次configuration我的VPS我已经安装了上述两个存储库使用 sudo rpm -Uvh http://download.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm sudo rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm 我一直在尝试使用下面的命令安装php-ssh2。 sudo yum install php-pecl-ssh2 每当我从命令行运行这个命令,它就会显示一个错误,并且在安装其他一些软件包时也发生了这个错误! 我不知道发生了什么事。 我得到的错误是写在下面: Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: mirror.san.fastserv.com * epel: mirrors.kernel.org * extras: mirror.pac-12.org * updates: mirrors.easynews.com Setting up Install Process Resolving Dependencies –> Running transaction check […]
这里是我的Nginxconfiguration,简而言之: … server { listen 80; server_name whatever; root /var/www/; location /api/1.0 { … `proxy_pass http://localhost:8000/; } location /api/2.0 { … proxy_pass http://localhost:8080/; } location / { root /var/www/static/; default_type text/html; try_files $uri $uri/index.html index.html; } } 如果我现在去localhost ,并追加一个随机的名称,不符合我的静态文件中的任何东西,或任何两个应用程序(例如http://localhost/whatever )中的http://localhost/whatever ,我在我的一个奇怪的错误日志: 打开()“/var/wwwindex.html”失败(2:没有这样的文件或目录),客户端:127.0.0.1,服务器:ec2 -54-234-175-21.compute-1.amazonaws.com,请求:“GET / whatever HTTP / 1.1”,主机:“localhost” 我认为这必须反映出我的理解力不足,因为我真的不知道为什么nginx试图访问“/var/wwwindex.html”。 请注意,我不希望这个请求成功,我只是希望它以我明白的方式失败。 究竟发生了什么? 感谢赞赏,在此先感谢!
我试图在当前的Nginxconfiguration上启用SSL,这很好。 不过,我想知道是否有可能做到这一点与HTTP,所以我不需要另一个服务器部分,这将只是http部分的复制。 我认为下面的工作,但是我得到下面的时候访问http:// 400 Bad Request The plain HTTP request was sent to HTTPS port Nginxconfiguration: ssl_certificate /etc/nginx/ssl/domains.pem; ssl_certificate_key /etc/nginx/ssl/server.key; server { listen 80; listen 443; //other configuration }
我目前正在研究高stream量高可用性网站的架构。 我们正在使用AWS。 目前,我们有: 路线53 – > ELB – >多个EC2实例 – > RDS多AZ。 每个EC2实例运行Varnish + Nginx和PHP FCGI。 会话和其他一些共享数据通过ElastiCache存储。 我们计划在每个EC2实例上运行Varnish和Nginx,因为这样可以减less故障点,并在负载增加时运行额外的实例。 但是,我们必须添加iptables(fail2ban)。 当然,我们获得ELB的IP而不是真正的客户端IP … 我们想到了以下解决scheme: 1)在Route 53和ELB之间添加一个EC2实例,运行iptables / firewalls(也可能是varnish?)并将所有内容转发到ELB。 2)用运行HAProxy + iptables的自定义EC2replaceELB。 3)使用mod_security并构build一些自定义的东西来dynamic地将IP列入黑名单 4)坚持目前的架构,并从我们的待办事项列表中删除iptables。 什么是一个好方法? 谢谢
我决定给我的网站IPv6,但我有问题让我的服务器通过IPv6响应请求。 我已经创build了一个AAAAlogging,并且已经很好地configurationNGINX来响应请求。 我的服务器在CentOS 6.4上运行NGINX。 以下是我的configuration的顶部部分: listen 443 ssl; listen [::]:443 ssl; server_name *.mydomain.net; access_log off; ssl on; ssl_certificate /etc/nginx/conf/ssl-unified.crt; ssl_certificate_key /etc/nginx/conf/ssl.key; 当我运行'netstat -nlp | grep nginx'我得到以下结果,就好像它实际上在监听: tcp 0 0 :::443 :::* LISTEN 14463/nginx 我已经尝试了很多testingIPv6连接的站点,比如这个和这个 ,但是他们都报告能够ping通这个地址,但是没有得到服务器响应。 所有的帮助,高度赞赏,谢谢!