我有一个非常简单的nginx设置与两个位置块 server { listen 80 default_server; server_name localhost; location / { root /usr/share/nginx/html; index index.html index.htm; try_files $uri $uri/ =404; } location /more { root /usr/share/nginx/more; index index.html index.htm; try_files $uri $uri/ =404; } } 它应该做的唯一的事情就是从/ usr / share / nginx / html提供第一个位置的文件,从/ usr / share / nginx / more提供第二个位置的文件。 第一个位置按预期工作,但第二个位置继续返回404。 这个问题太简单了,以至于无法在文档或其他问题中出现。 我应该先检查什么? logging:/ usr […]
我终于从一个权威机构获得了证书,并且正在努力工作。 我创build了合适的组合证书(个人+中间+根),nginx指向它。 我有一个弹性的IP,并将其连接到我的EC2实例。 我的DNSlogging指向该IP。 但是当我把浏览器指向主机名时,我得到了标准的“连接不可信”位,和ssl_error_bad_cert_domain。 端口443是开放的 – 我可以通过https访问该网站,如果我忽略警告。 奇怪的是,在技术细节下,它列出了我试图访问的域有效! 当我尝试用ssltesting网站进行诊断时,他们甚至没有检测到证书! 我在这里错过了什么? 域名是yanlj.coinculture.info。 注意我在家庭服务器上运行了一个没有专用IP地址的文件,同样的问题,但是一旦我想到这个问题,我会把它移动到同一个EC2实例上。 我以为弹性知识产权可以解决问题,但事实并非如此 Nginxconfiguration: server { listen 443; server_name localhost; ssl on; ssl_certificate /home/ubuntu/certs/startssl/ssl-unified.crt; ssl_certificate_key /home/ubuntu/certs/startssl/ssl.key; keepalive_timeout 70; #ssl_session_timeout 5m; ssl_protocols SSLv2 SSLv3 TLSv1; #ssl_ciphers HIGH:!aNULL:!MD5; #ssl_prefer_server_ciphers on; root /home/ubuntu/programming/YanlJ; index index.php index.html; location / { #try_files $uri $uri/ /index.php; # this line was […]
我正在build立一个标准的LEMP堆栈。 我目前的设置给了我以下错误: 502错误的网关 这是我的服务器上当前安装的内容: 这里是我创build/更新的configuration到目前为止,有人可以看看下面的内容,看看错误可能是哪里? 我已经检查了我的日志,里面没有任何内容( http://i.imgur.com/iRq3ksb.png )。 我在/var/log/php-fpm/error.log文件中看到了以下内容。 sidenote:nginx和php-fpm都已经被configuration为在一个名为www-data的本地帐户下运行,并且以下文件夹在服务器上退出 nginx.conf 全局nginxconfiguration user www-data; worker_processes 6; worker_rlimit_nofile 100000; error_log /var/log/nginx/error.log crit; pid /var/run/nginx.pid; events { worker_connections 2048; use epoll; multi_accept on; } http { include /etc/nginx/mime.types; default_type application/octet-stream; # cache informations about FDs, frequently accessed files can boost performance open_file_cache max=200000 inactive=20s; open_file_cache_valid 30s; open_file_cache_min_uses […]
好吧,我已经运行了一个运行Ubuntu的Amazon EC2服务器,然后按照下面的说明安装GitLab; http://doc.gitlab.com/ce/install/installation.html 我无法完成的唯一步骤是对状态进行以下检查; sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production 我得到以下错误; rake aborted! Errno::ENOMEM: Cannot allocate memory – whoami 我认为这是因为我的EC2只是运行一个免费的层级设置,所以不是那么好的spec'd。 无论如何,我一直试图通过我的浏览器访问。 我已经build立了弹性IP,并指出我的领域(为了这个目的,可以说它的git.mydom.co.uk)。 在这个领域做一个whois显示我指向正确的地方。 由于某种原因,我得到了“糟糕,Chrome无法连接到git.mydom.co.uk”。 现在 – 一段时间,我得到了Nginx的持有页面(告诉我,我仍然需要执行configuration)。 从/ etc / nginx / sites-enabled /中删除默认文件后,这个消息就消失了。 从那以后,我什么也没有,即使当我从/ sites-available链接文件。 我已经尝试改变的git.mydom.co.uk文件的所有者坐在里面/网站启用和/网站可用www数据, 这里build议,但我只能改变文件的权限在/网站 – 可用,而不是在/ site-enabled中的符号链接。 这个文件的内容如下: upstream gitlab { server unix:/home/git/gitlab/tmp/sockets/gitlab.socket; } server { listen *:80 […]
这是我第一次用nginx设置,我用它来代理nodejs。 HTTP在端口3000上,而HTTPS在端口3001上。 如果我去http://test.domain.com它加载常规的不安全页面。 如果我去https://test.domain.com它加载安全页面。 但我希望它从非httpsredirect到https。 我的configuration有什么问题? 这是我使用的整个domain.conf文件。 server { listen 80; server_name test.domain.com return 301 https://test.domain.com$request_uri; } server { listen 443 ssl; server_name test.domain.com; ssl_certificate /etc/nginx/ssl/domain.crt; ssl_certificate_key /etc/nginx/ssl/server.key; location / { proxy_set_header X-Real-IP $remote_addr; proxy_set_header HOST $http_host; proxy_set_header X-NginX-Proxy true; proxy_pass https://127.0.0.1:3001; proxy_redirect off; } } 我重新启动了nginx多次。 谢谢!
我在Windows 7上使用nginx-1.7.0。我正在尝试使用add_header来获取我驻留在/ data / TESTFOLDER中的json文件。 这是我的位置块看起来像: location /data/TESTFOLDER/ { add_header 'Content-Type' 'application/json'; autoindex on; } 当我运行我的网站,在我的JavaScript在哪里我有一个jQuery的Ajax请求从这个文件夹中获取JSON文件,萤火虫给我这个信息: ResponseHeaders Connection keep-alive Content-Type text/html Date Wed, 09 Jul 2014 14:01:29 GMT Server nginx/1.7.0 Transfer-Encoding chunked Request Headers Accept application/json Accept-Encoding gzip, deflate Accept-Language en-us,is;q=0.7,en;q=0.3 Content-Type application/json Host localhost Referer http:// local host/index.html User-Agent Mozilla/5.0 (Windows NT 6.1; rv:30.0) […]
当在nginx中configurationredirect时,响应包含: <html>[CRLF] <head><title>301 Moved Permanently</title></head>[CRLF] <body bgcolor="white">[CRLF] <center><h1>301 Moved Permanently</h1></center>[CRLF] <hr><center>nginx</center>[CRLF] </body>[CRLF] </html>[CRLF] 在debugging时: curl -i http://www.domain.com 我可以隐藏redirecthtml的关于nginx的信息吗? 我通过设置more_set_headers "Server: ";pipe理关于nginx的隐藏信息more_set_headers "Server: ";
我们在运行在Ubuntu 14.04上的Passenger 4.0.45和nginx 1.6.0(由Passenger安装程序安装)中运行Rails应用程序。 Passenger重载重载所有的应用程序进程。 启用乘客debugging日志后,我发现乘客日志中的“不能接受客户端:太多打开的文件(errno = 24)”错误。 Nginxconfiguration了“worker_rlimit_nofile 200000”。 使用cat /proc/pid/limits我可以确认nginx是否有正确的限制。 然而,我们在Passenger中运行的Rails应用程序没有得到更高的限制。 我已经添加到/etc/security/limits.conf为所有用户提供了一个上限,并且我已经session required pam_limits.so添加到/etc/pam.d/common-session和/etc/pam.d中/ common-session-noninteractive“并重新启动。 我可以跑 su appuser –shell /bin/bash –command "ulimit -n" 我得到一个很高的数字。 我终于尝试通过将下列内容添加到初始化程序来设置Rails应用程序的限制: Process.setrlimit(Process::RLIMIT_NOFILE, 65535) 结果是: Operation not permitted – setrlimit (Errno::EPERM)
有一个挑战,发现为什么结果是如此。 也许错过了一些明显的 对不起,这不是很具体。 但如果任何人有一个领域的重点,这将是非常有益的。 干杯。 负载testing 其大约5486分钟写入分钟/每秒90。 当服务器变得不堪重负时,我可以在日志中看到以下错误: 11:资源暂时不可用),同时连接到上游 在从上游读取响应报头时,上游超时(110:连接超时) 问题 运行负载testing时,请参阅以下问题: 执行更新/写入(负载testing正在进行的那个)的页面变慢,需要10 20秒来加载。 Nginx在任何页面上给出任意的404。 结果显示,在高峰期可能有10-20%的请求导致404。 我认为他们是两个不同的问题,可能无关。 在图表中我看不到任何平坦的线条,这意味着达到了极限。 Web服务器占用60%的CPU并保持稳定。 RAM看起来不错。 数据库服务器大约占CPU的20%,并保持稳定。 RAM看起来不错。 数据库连接转到1500/2000。 这看起来如果。 虽然它不是平线,这表明它没有达到极限。 networking连接限制似乎是确定的。 索引表在可能/适当的情况下。 基础设施 AWS RDS MySQL 1 x db.m3.xlarge写入操作1 x db.m3.xlarge用于读取操作的复制数据块 AWS EC2 Web服务器Linux,Nginx,PHP-FPM 6 x c3.2xlarge configuration /etc/php-fpm.d/domain.com.conf [domain.com] user = nginx group = nginx ;;;The address on which […]
我们已经build立了一个GitLab服务器 (GitLab 7.0社区版)。 它正在运行,我们的同事可以在局域网内使用它(IP地址和主机只能从局域网中看到)。 一些在这个GitLab实例上托pipe的项目应该与外部用户(不是我们公司的一部分)“共享”。 我们希望让他们访问Git仓库,以便克隆,拉和推。 GitLab服务器将停留在局域网内。 但是我们可以在我们的DMZ中设置一个服务器,这个服务器可以反向代理GitLab服务器。 然而,我们希望只能通过HTTPS访问“.git”URL(所以不能访问GitLab WUI(Web用户界面))。 我们如何在DMZ中设置“反向代理”来为外部用户(在互联网上)提供对我们在GitLab上托pipe的内部Git仓库的访问? 愿望: 只有https://*/*.git/*url应该被允许在外面; 反向代理上的HTTP基本authentication将是一个加号; 但是通过HTTPS的GitLabauthentication机制应该保留; 本地局域网用户仍然可以使用SSH进行Git操作; GitLab Web用户界面不应该从外部访问; 注意:我们在运行NGINX的DMZ中已经有了一台服务器。 如果我们可以使用这个“软件堆栈”来做反向代理,那就太好了。 注2:这个问题已经有了一个已经过期的100分的奖励,而且分数已经丢失了。 如果我得到一个解决我的问题的答案,我会打开一个赏金,并奖励它的答案。