Articles of nginx

Nginx – 反向代理到远程的Worpress安装

我有一个Server-a,它只包含一个Nginx和一个正在执行的节点应用程序。 但是,我想从该服务器提供Node应用程序,该应用程序也在服务于Angular应用程序。 但是,当我导航到服务器一个/博客 ,我想做一个反向代理(内部代理)到一个不同的服务器(Server-b),其中包含一个Wordpress设置,还与一个Nginx的。 所以,我总是导航到服务器a /博客 ,服务于服务器b的内容 我已经部分使用这个configuration: proxy_buffering on; proxy_buffer_size 1k; proxy_buffers 24 4k; proxy_busy_buffers_size 8k; proxy_max_temp_file_size 2048m; proxy_temp_file_write_size 32k; location /blog/en/ { try_files $uri @proxy; } location @proxy { proxy_redirect off; proxy_set_header X-Forwarded-Host "$host"; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_pass http://server-b; } 但是会发生什么呢?如果我导航到server-a / blog / wp-admin ,我可以立即redirect到server-a / wp-admin 。 WordPress安装中的所有相关链接都必须相应地与服务器一个URL。 […]

Nginx和Apache是​​非常缓慢的作为反向代理NodeJs应用与socket.io

我在Ubuntu服务器14.04上安装了Nginx作为反向代理,将来自单个IP地址的stream量redirect到运行在不同端口上的多个NodeJ。 它也将HTTPredirect到HTTPS。 这里是nginx.conf的内容: user www-data; worker_processes 4; pid /run/nginx.pid; events { worker_connections 4096; multi_accept on; } http { ## # Basic Settings ## sendfile on; tcp_nopush on; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; # server_tokens off; # server_names_hash_bucket_size 64; # server_name_in_redirect off; include /etc/nginx/mime.types; default_type application/octet-stream; ## # Logging Settings ## # access_log /var/log/nginx/access.log; access_log […]

为维基百科设置反向代理时出现500内部错误

访问维基百科可能会在我的国家随机扰乱使用nginx 1.2.1运行Debian 7以及其他ngx_http_substitutions_filter_module 使用几个子域来为zh.m.wikipedia.org w.mydomain.tld对于zh.wikipedia.org的维基百科w.mydomain.tld代理对应的子域。 对于移动网站up.w.mydomain.tld upload.wikimedia.org 我的nginxconfiguration看起来像这样 ……. location / { proxy_pass https://zh.wikipedia.org; proxy_cookie_domain zh.wikipedia.org w.mydomain.tld; proxy_redirect https://zh.wikipedia.org/ /; proxy_redirect https://zh.m.wikipedia.org/ https://mwmymain.tld/; proxy_set_header Host "zh.wikipedia.org"; proxy_set_header Referer "https://zh.wikipedia.org$request_uri"; subs_filter_types text/css text/xml text/javascript; subs_filter zh.wikipedia.org w.mydomain.tld; subs_filter upload.wikimedia.org up.w.mydomain.tld; subs_filter zh.m.wikipedia.org mwmydomain.tld; sub_filter_once off; } location https://zh.m.wikipedia.org/{ rewrite ^/(.*) https://mwmydomain.tld/$1 permanent; } } mwdomain.tld和up.w.domain.tld的服务器configuration类似 无论如何我总是得到一个500内部服务器错误,并没有error.log信息 […]

PHP-FPM非常慢

我对nginx和php7.0-fpm有点问题。 我每秒的请求比apache + mod_phpless得多。 例如(同一台服务器) 请求的脚本在testing中是简单的回声。 //编辑: nginx conf&www.conf&php.ini http://pastebin.com/9m6yx8h4 // EDIT2: 如果是使用快速= CGI模块,而不是mod_php模块的Apache我会得到相同的结果比Nginx的+快速CGI(30r./s)。 在php-fpm中有问题吗? 问题在哪里?

Nginx重写为symfony2无法正常工作

我是一个nginx的新手,它是重写命令,我真的需要这个帮助。 我一直试图解决这一整天,但没有.. 如果用户给这个url: someurl.com/sub/1.0/healthcheck 我想重写它以指向这里的Symfonys项目文件: /var/www/sub/1.0/web/app_dev.php Symfony的url中的“健康检查”。 但是,不。 这里不对劲。 看起来它find了Symfony,但是由于它总是返回,因此url有错误: 找不到路线 即使我从url中省略“健康检查”,它仍会返回相同的错误。 (有一个索引 – “/”作为路由)。 这是当前的Nginxconfiguration: server { server_name localhost; root /var/www/sub/1.0/web; error_log /var/log/nginx/error.log; access_log /var/log/nginx/access.log; location / { root /var/www/html/; index index.html; } location /sub/1.0/ { index app_dev.php; rewrite ^/sub/1.0/ /app_dev.php last; } location ~ (app|app_dev).php { include fastcgi_params; fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_param PATH_INFO $fastcgi_path_info; […]

通配符*。本地主机与Nginx和Chrome的SSL

我试图为HTTP和HTTPS设置通配符*.localhost和Nginx代理请求到localhost:3000 。 DNSmasq用于将*.localhostparsing为127.0.0.1 。 一切工作正常的HTTP,但HTTPS连接在Google Chrome中收到以下错误: There are issues with the site's certificate chain (net::ERR_CERT_COMMON_NAME_INVALID). 该证书是我通过设置添加到Chrome的自签名证书,并使用以下命令生成: openssl req -x509 -sha256 -newkey rsa:2048 -keyout localhost.key -out localhost.crt -days 3650 -nodes Subject如下: Subject: C=AU, ST=Western Australia, L=Perth, O=Zephon, CN=*.localhost 我的Nginxconfiguration如下: server { listen 80; listen 443 ssl; server_name localhost; ssl_certificate /etc/nginx/ssl/localhost.crt; ssl_certificate_key /etc/nginx/ssl/localhost.key; location / { proxy_pass […]

通过Tomcat的内置代理使用NGINX进行反向代理有什么好处吗?

我们有一个运行在EC2实例的Tomcat上的应用程序。 我们在configuration了以下监听器的EC2前面有一个ELB: ELB port 80 –> nginx port 80 –> redirect | port 443 <–> tomcat port 8080 <— 在EC2实例中,我们运行nginx并执行反向代理,将端口80上的连接redirect到端口8080(Tomcat)。 这是configuration: http { server { listen 80 default_server; server_name _; return 301 https://$host$request_uri; } } 运行在同一台服务器上的Tomcatconfiguration为端口8080: <Connector port="8080" maxThreads="300" protocol="org.apache.coyote.http11.Http11NioProtocol" connectionTimeout="20000" /> 大多数时候,这工作正常,但是当我们的应用程序返回非HTTPSstream量时,这在less数情况下会产生问题。 在研究这个问题的时候,我发现了这篇文章 。 系统是由承包商部分configuration的,他们赞成使用在EC2实例上运行的nginx作为反向代理。 我的问题是,如果在同一台服务器上运行nginx作为反向代理,如果Tomcat可以执行相同的function,并通过安全端口redirect非安全stream量,那么在使用nginx作为反向代理的情况下是否有优势?在链接的文章)? 为什么在这种情况下使用nginx?

重写导致现有目录上的无限301redirect循环

我经历了在这里find的问题/解决scheme,尝试了很多方法(包括[L]指令),但没有什么真正的诀窍。 情况概览 Debian通过nginx运行Apache 2.2代理 目标 将所有内容redirect到/index.php并确保总是有一个斜杠。 从规则中排除以下目录: js_static 媒体 排除规则中的所有.css文件。 问题 当我打电话给www.url.com/js_static时,Apache / nginx会导致301redirect循环。 (问题也出现在跟踪斜线 – 没有区别) 当前的解决scheme nginx是这样configuration的: gzip_proxied any; rewrite ^/(.*)/$ /$1; ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:AES256+EECDH:AES256+EDH'; Apache是​​这样configuration的: RewriteEngine On RewriteCond %{SCRIPT_FILENAME} !^.+\.(css) RewriteCond %{REQUEST_URI} !^.+js_static RewriteCond %{REQUEST_URI} !^.+media RewriteRule ^(.*)$ /index.php/$1 AllowEncodedSlashes On 我没有看到问题出在哪里。 我有一个理论是nginx / apache重写的组合会产生问题,所以我摆弄的configuration,但无济于事,不幸的是。 有人可以在这里找出问题吗?

子文件夹configuration – 2个应用程序在1域

在服务器上有两个单页面应用程序( App-One和App-Two )。 要访问App-One ,请访问www.app-one.com 。 App-Two可在子文件夹中的相同域中访问: www.app-one.com/app-two 。 这两个应用程序都在服务器上的/var/www/文件夹中: App-One文件夹/var/www/www.app-one.com App-Two文件夹/var/www/app-two 问题 如果我在浏览器中inputwww.app-one.com/app-two ,它将redirect到www.app-one.com 。 如果我inputwww.app-one.com/app-two/index.html一切正常。 nginxconfiguration server { listen 80 default_server; listen [::]:80 default_server; server_name www.app-one.com app-one.com; # www rewrite if ($host !~* ^www\.) { rewrite ^(.*)$ http://www.app-one.com permanent; } # Logs access_log /var/log/nginx/www.app-one.com_access.log; error_log /var/log/nginx/www.app-one.com_error.log; # App-One index index.html; root /var/www/www.app-one.com; # […]

在NGINX上使用SSL的两个网站。 序列和redirect

我在NGINX上有两个带有SSL的网站。 什么时候 curl -I https://www.1111.com answer: https://1111.com 但当 curl -I https://www.2222.com answer: https://1111.com curl -I https://2222.com answer https://2222.com 在nginx.conf中,我尝试改变/ import * .conf的顺序,当我在1111.com之前设置2222.com>回答改变相反。 1111.conf server { listen 80; server_name 1111.com www.1111.com; return 301 https://1111.com;$request_uri; } server { listen 443 ssl http2; server_name 1111.com; root /usr/share/nginx/1111.com; index index.php; … 2222.conf是类似的 我怎么能redirect所有https:// www。*和http:// www。*在这个网站,而不是其他?