我有一个nginxconfiguration,一切都强制为https。 我想添加一个位置块通过http服务。 我得到一个“太多redirect”与我目前的configuration。 这是configuration # HTTP server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; server_name example.com; # redirect non-SSL to SSL location / { return 301 https://$server_name$request_uri; } location /blog { rewrite ^/blog/(.*)$ /$1 break; proxy_set_header X-Real-IP $remote_addr; proxy_set_header Host $host; proxy_pass http://remote-ip; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } #HTTPS server server{ […]
寻找一个解决scheme,根据端口号连接到各种Windows主机。 我希望能够select连接到哪台机器,而不需要实现微软的RDGWangular色。 这可能听起来有点小,但我需要的唯一原因是能够使用mstsc.exe,而不需要使用mstsc.exe上的rdgw设置configuration高级选项卡。 或者,如果我可以以编程方式创buildrdg文件与rdgw设置/凭据也将工作 – 我找不到一种方法来做到这一点。 谢谢。
我在<VirtualHost *:80>有以下redirect: RewriteRule ^/old-url$ /new-url [R=301,L] RewriteRule ^/foo$ /bar [R=301,L] … 在apache之前,我有haproxy,在80和443上进行监听,后者进行SSL终止,并且: http-request set-header X-Forwarded-Port %[dst_port] http-request set-header X-Forwarded-Proto https if { ssl_fc } 我对redirect的问题是: http://example.com/foo正确地redirect到http://example.com/bar https://example.com/foo错误地redirect到http://example.com/bar 我怎样才能确保httpredirect到http和https到https ? 请注意,我想避免不得不重写两次redirect规则。 我如何使用X-Forwarded-Proto或X-Forwarded-Portredirect到正确的scheme?
Heeey全部, 我有一个nginx反向代理与有效的SSL证书(通过让encryption完成),但我不能得到SSL的工作。 upstream backend_haakselsenkwaaksels_nl { server amaya.leonweemen.nl:9050; } server { listen 80; server_name haakselsenkwaaksels.nl; return 301 https://$server_name$request_uri; } server { listen 80; server_name www.haakselsenkwaaksels.nl; return 301 https://haakselsenkwaaksels.nl$request_uri; } server { listen 443 ssl; server_name haakselsenkwaaksels.nl; ssl_certificate /domain-certificates/haakselsenkwaaksels.nl/fullchain.pem; ssl_certificate_key /domain-certificates/haakselsenkwaaksels.nl/privkey.pem; # ssl on; ssl_session_cache builtin:1000 shared:SSL:10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4; ssl_prefer_server_ciphers on; access_log /var/log/nginx/haakselsenkwaaksels.nl.access.log; […]
我正在跟着这个DigitalOcean教程 ,介绍Salt Cloud如何工作,以及两个应用程序服务器和一个反向代理。 最后的预期结果是,您应该在反向代理背后的两台机器上运行一个纯JS应用程序,告诉您应用程序的IP地址,这将显示这两个应用程序服务器正在运行并被代理。 不过,我只能得到Nginx的欢迎页面。 下面是nginxconfiguration文件,首先是模板,然后是生成的: 模板 ### /srv/salt/nginx/files/awesome-app.conf.jin ### ################################################## ### Configuration file for Nginx to act as a ### reverse proxy for an app farm. # Define the app servers that we're in front of. upstream awesome-app { {% for server, addrs in salt['mine.get']('roles:appserver', 'network.ip_addrs', expr_form='grain').items() %} server {{ addrs[0] }}:1337; {% endfor […]
我在本地networking上运行不同服务器上的几个网站。 所有的网站都是通过一个服务器进行代理的,在这个服务器上添加HTTPS,并监控stream量。 目前,如果有人提出: curl -I subdomain.domain.tld 结果是: curl -I https://subdomain.domain.tld HTTP/1.1 200 OK Date: Fri, 13 Jan 2017 09:19:02 GMT Server: Jetty(8.yz-SNAPSHOT) Content-Type: text/html Content-Length: 2379 Last-Modified: Tue, 10 Jan 2017 11:15:29 GMT 我怎样才能“覆盖”代理服务器与另一个来自ReverseProxy的响应的响应? 例如,我希望我的输出看起来像这样(如果可能的话) curl -I https://dubdomain.domain.tld HTTP/1.1 200 OK Date: Fri, 13 Jan 2017 09:19:02 GMT Server: Apache24 (or even something else) Content-Type: […]
我有一个Apache 2.2服务器和一个现有的虚拟主机(foo.com)代理内部服务器。 我已经添加了另一个虚拟主机(bar.com),我想代理到不同的内部服务器。 我的vhost.conf文件看起来像这样(减去一些注释和匿名): # START <VirtualHost *:80> ProxyPreserveHost On ProxyPass / http://foointernal:80/ ProxyPassReverse / http://foointernal:80/ DocumentRoot "E:/Apache/htdocs/foo/" ServerName foo.com ServerAlias foo.com ServerAdmin [email protected] ErrorLog "E:/Apache/logs/foo_error.log" TransferLog "E:/Apache/logs/foo_ccess.log" </VirtualHost> <VirtualHost *:80> ProxyPreserveHost On ProxyPass / http://barinternal:80/ ProxyPassReverse / http://barinternal:80/ DocumentRoot "E:/Apache/htdocs/bar/" ServerName bar.com ServerAlias bar.com ServerAdmin [email protected] ErrorLog "E:/Apache/logs/bar_error.log" TransferLog "E:/Apache/logs/bar_access.log" </VirtualHost> # END 当我在浏览器中打开http://foo.com时,一切正常。 […]
Nginx应该很快 – 至less有人这样说。 我无法快速获得nginx。 对于基准testing,我使用多个configuration来模拟高负载。 所以我试图负载平衡单个服务器(我知道负载平衡单个服务器是无用的,但testing负载平衡器本身是有效的)。 我已经build立了一个已经优化的Apache反向代理作为参考。 我通过nginx获得80tps左右,当我尝试从同一个后端服务器得到相同的 – 没有caching的文件时,使用apache约350tps。 当然硬件/操作系统是一样的(目前的双核CPU,2G内存,Ubuntu服务器16.04)。 我尝试过更改工作人员,最大连接数,轮询方法,代理缓冲区大小,等待时间和客户端缓冲区。 我可以看到系统负载很低,一个nginx使用大约1%的CPU,连接等待5到6秒左右。 由于我想测量反向代理的性能,我不想在此testing中caching任何内容。 所以问题是:如何优化nginx作为非caching逆向代理的性能? 示例siege-command: siege -c 100 -b -r 100 -v <loadbalancer>/favicon.ico 更新:根据要求提供一些configuration。 为了保持serverfault的一致性,请回答一些关于参数的有用信息。 user www-data; worker_processes 2; pid /run/nginx.pid; #thread_pool default threads=1500 max_queue=65536; worker_rlimit_nofile 40000; events { worker_connections 768; #multi_accept on; #use epoll; } http { #aio threads=default; #proxy_buffers 32 4m; #proxy_busy_buffers_size […]
我在Ubuntu 14.04 LTS上运行Apache 2.4.7作为反向代理。 这个Apache服务器充当许多不同后端应用程序的入口点,这些应用程序可以通过<Location>块中的不同mod_proxyconfiguration来访问 我需要提供对使用WebSockets的应用程序的反向代理访问。 该应用程序是一个Java Spring应用程序,通过HTTP提供HTML和其他静态文件,然后在加载页面后使用WebSocket作为dynamic数据。 我已经使用以下configuration在Nginx后面运行应用程序: location /newapp/ { proxy_pass http://newapp.example.com:8080/; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } 不幸的是,由于需要一个在Nginx上不可用的Apacheauthentication模块,我不能在生产中使用它。 我想要做的,在伪Apache的configuration是: <Location /newapp/> if not WebSockets: ProxyPass http://newapp.example.com:8080/ ProxyPassReverse / else ProxyPass ws://newapp.example.com:8080/ ProxyPassReverse / </Location> Apache的mod_proxy_wstunnel模块让我觉得这应该是可能的。 WebSocket可以通过URL /api/socket/… ,所以我尝试使用单独的<Location>块来分隔两种types的ProxyPass : <Location /newapp/> ProxyPass http://newapp.example.com:8080/ disablereuse=on ProxyPassReverse / ProxyPassReverseCookieDomain newapp.example.com apps.example.com […]
我正在遇到我的反向代理的一些奇怪的问题。 我的设置看起来像这样: setup 现在,我的内部networking中的主机可以到达服务器srv1.my.domain.org上的localhost:3000上运行的应用程序,所以我知道configuration工作。 但只要我尝试从networking外部访问应用程序(通过gateway.my.domain.org ),我只能看到NGINXtesting页面。 我不明白为什么,因为这个configuration我已经做了多个其他的应用程序,他们正在工作。 注: server_name与物理服务器的主机名相同。 这里是configuration: gateway.my.domain.org path: /etc/nginx/conf.d/app.my.domain.org.conf upstream srv { server srv1.my.domain.org; } server { listen 443; server_name gateway.my.domain.org; ssl on; ssl_certificate /…/fullchain.pem; ssl_certificate_key /…/privkey.pem; ssl_session_cache builtin:1000 shared:SSL:10m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4; ssl_prefer_server_ciphers on; access_log /var/log/nginx/gateway.access.log; error_log /var/log/nginx/gateway.error.log; client_max_body_size 150M; location / { proxy_set_header Host $host; proxy_set_header […]