Articles of nginx

了解Nginx错误日志

我有Nginx的错误日志文件,如: 2016/12/16 14:24:45 [error] 2758#0: *506 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream, client: 109.61.223.87, server: www.mydomain.fr, request: "GET /download/50/MSMxOz0jM3owLS4rZnJxLAcYExcdCQkdBRMHRQIMGhoCEB4fDQUaEhkKDwkZUwwKr+Xj9+Xa4eL81vrq/uzj/K/3+/x5qulrqiorq+prquWB2bz5A/kbz_ii_v41.exe?sign=global-rus_treid_2?static?cr=60c1ec2384?signtool=osslsigncode-2?rnd=trnt HTTP/1.1", upstream: "fastcgi://unix:/var/run/php/php7.0-fpm.sock:", host: "dlc.certainlesson.ru" host: "dlc.certainlesson.ru"是什么意思host: "dlc.certainlesson.ru" ? 或者错误日志如: 2016/12/16 15:50:45 [error] 2743#0: *85931 FastCGI sent in stderr: "PHP message: PHP Warning: require(/home/ubuntu/myapp/releases/20161216145901/vendor/composer/../guzzle/guzzle/src/Guzzle/Common/Exception/InvalidArgumentException.php): failed to open stream: No […]

ssl-cert-check没有得到允许encryption证书的正确失效date

我正在使用ssl-cert-check来跟踪我的域名证书列表。 在我的crontab中,我将它设置为静默运行,并通过电子邮件将域名过期,但是我用来debugging的命令是: ssl-cert-check -f ssldomains.txt -x 21 -i 它正确读取文件并检索整个列表的证书,但它似乎没有得到由LetsEncrypt.org颁发的证书的正确失效date 其他证书提供者似乎不受此问题的影响。 例如,2017年3月24日我浏览器中检查的证书将于2017年1月15日到期。 我正在用nginx服务。 为什么CLI工具会检索错误的失效date,我该如何纠正?

未findNginx状态页面

我试图启用我的Centos 7服务器上的Nginx状态页面。 我从EPEL存储库中安装了Nginx,Nginx使用了staus页面支持: [root@server ~]# nginx -V 2>&1 | grep -o with-http_stub_status_module with-http_stub_status_module 我已经添加了一个configuration文件/etc/nginx/conf.d/status.conf: server { listen 80; server_name localhost; location /nginx_status { stub_status on; access_log off; allow 127.0.0.1; deny all; } } 重启后,Nginx无法find状态页面: [root@server ~]# wget http://localhost/nginx_status –2017-01-06 17:02:09– http://localhost/nginx_status Resolving localhost (localhost)… ::1, 127.0.0.1 Connecting to localhost (localhost)|::1|:80… connected. HTTP request sent, awaiting […]

Prestashop 1.7在前端商店中redirect过多

试图导航到Prestashop 1.7站点的前端商店时,我总是收到ERR_TOO_MANY_REDIRECTS。 但是,当进入pipe理后端时,这是很好的。 任何的意见都将会有帮助。 网站正在运行Nginx,PHP-FPM7,MariaDB。 下面的Nginxconfiguration文件: upstream examplecoukbackend { server unix:/var/run/php-fcgi-examplecouk.sock; } server { listen 80; server_name example.co.uk; return 301 https://$server_name$request_uri; } server { listen 443 ssl; ssl_session_timeout 24h; ssl_session_cache shared:SSL:10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers ECDH+AESGCM:ECDH+AES256:ECDH+AES128:DH+3DES:RSA+3DES:AES128-SHA:!ADH:!AECDH:!MD5; ssl_prefer_server_ciphers on; ssl_certificate /etc/letsencrypt/live/example.co.uk/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.co.uk/privkey.pem; server_name example.co.uk; root /var/www/vhosts/example.co.uk/htdocs; access_log /var/www/vhosts/example.co.uk/access.log; error_log /var/www/vhosts/example.co.uk/error.log; index index.php index.html; location […]

nginx www和非www到非www https

我希望WWW和非WWWurl都能通过https访问非WWW。 我有我的NGINXconfiguration下面的块: server { listen 80 default_server; listen [::]:80 default_server; server_name example.com www.example.com; return 301 https://example.com$request_uri; } server { # SSL configuration # listen 443 ssl default_server; listen [::]:443 ssl default_server; … } 问题是,example.com的www仍然被转换为https的www.example.com,而我想剥离www。 我真的不明白我在这里失去了什么

HTTP .htpasswdrecursion地保护Nginx上的子域

我想密码保护我的开发人员子域(dev.example.com),并将主域名公之于众。 我想recursion地做到这一点,以便子域上的任何文件或文件夹将始终提示您进行login。 在Nginxconfiguration文件中,我已经添加了以下内容到我的dev.example.com服务器块(请注意,我有主和子域独立的服务器块): location ^~ / { auth_basic "Administrator Login"; auth_basic_user_file /home/path/to/.htpasswd; } 在SF上search的时候,我的印象是:标识符使得密码保护recursion,但是没有。 虽然dev.example.com特别提示我进行login,但dev.example.com/folder/不会。 我究竟做错了什么?

NGINXredirect不存在的域

可以说我有以下的域名: example.com 与这些子域名: test.example.com prod.example.com 全部只能通过HTTPS访问。 当有人inputhttps://test2.example.com或任何其他不存在的子域名时,他们将得到标准的NGINX index.html文件。 相反,我希望他们被redirect回https://example.com 。 这是我的服务器块/etc/nginx/nginx.conf样子: server { listen 443 ssl http2 default_server; listen [::]:443 ssl http2 default_server; server_name example; root /usr/share/nginx/html; index index.html ssl on; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_session_cache shared:SSL:1m; ssl_session_timeout 10m; ssl_ciphers HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; include /etc/nginx/default.d/*.conf; location / { } error_page 404 /404.html; location = /40x.html […]

如何使用Nginx提供Autodiscover.xml

我正在尝试使用Nginx提供Autodiscover.xml文件: 以下是我的configuration: 上游autodiscoverexamplecoukbackend { server unix:/var/run/php-fcgi-autodiscoverexamplecouk.sock; } 服务器{ 听80; 听443 ssl; ssl_certificate /etc/letsencrypt/live/autodiscover.example.co.uk/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/autodiscover.example.co.uk/privkey.pem; server_name autodiscover.example.co.uk; root /var/www/vhosts/autodiscover.example.co.uk/htdocs; index index.html; error_log /var/www/vhosts/autodiscover.example.co.uk/error.log; access_log /var/www/vhosts/autodiscover.example.co.uk/access.log合并; #位置^〜/ autodiscover / { #index autodiscover.php; #rewrite ^ /。* $ /autodiscover.php last; #} 位置〜* / autodiscover / { 重写^ / autodiscover / autodiscover \ .xml $ /autodiscover/autodiscover.php最后; } location = […]

如果父页面被redirect,如何在子目录中redirect页面

我在nginx上使用wordpress,并使用这个redirect了一个页面: rewrite ^/main-page/ http://www.example.com/new-main-page/ permanent; 问题是该页面有几个子页面,并且所有的子链接都被打破。 这是一个问题的例子: http://www.example.com/main-page/exists-but-is-broken/ 上面的URL不起作用,因为现在的主页是**new-main-page** 我怎样才能将所有的子页面redirect到新的URL? ^/new-main-page/something-here/ using(也许是通配符)?

带SSL上的Sails.js / Node.js和NGINX的Socket.io:坏的网关

我刚开始冒险NGINX和SSL。 使用Ubuntu 16.04。 我正在标准1337端口上运行Sails服务器,并使用SSL(使用letsencrypt)设置NGINX。 端口80被redirect到443,上游到达Sails。 我也有一个在8080上监听的Tomcat服务器,并使用NGINX以相同的方式redirect。 一切工作正常:我可以浏览器上浏览器的两个服务器上没有特殊的端口。 我已经build立了socket.io只使用websockets协议(没有轮询)。 这是在服务器和浏览器客户端上设置的。 但是,socket.io(sails.io)抛出一个502错误没有浏览器。 (投票也出错了) 这里是我的NGINX站点 – 可用于Sails服务器: upstream sails { server 127.0.0.1:1337 fail_timeout=0; } server { listen 80; listen [::]:80; server_name mysails.server.com; return 301 https://$server_name$request_uri; } server { listen 443; listen [::]:443 ssl http2; server_name mysails.server.com; include snippets/ssl-mysails.server.conf; include snippers/ssl-params.conf; large_client_header_buffers 8 32k; location / { proxy_pass http://sails/; […]