我有一个非常简单的代理configuration: http { proxy_cache_path /var/www/cache levels=1:2 keys_zone=s3-images-cache:50m inactive=1M max_size=1000m; proxy_temp_path /var/www/cache/tmp; server { listen 80; server_name images.example.com; location / { proxy_cache s3-images-cache; proxy_cache_key $scheme$proxy_host$uri$is_args$args; proxy_cache_bypass $http_purge_cache; proxy_cache_valid any 1y; proxy_pass http://images-example.s3.amazonaws.com; add_header X-Cache $upstream_cache_status; proxy_intercept_errors on; error_page 404 = @no_image; } location @no_image { return 403; } } } 现在在这里跟我来: 我们要求/image.jpg。 请求被发送到/image.jpg的代理(不存在)。 后端以404响应。 调用“proxy_intercept_errors on”和“error_page […]
我有以下的nginxconfiguration: upstream toshiba15 { server toshiba15.local:80; } server { listen 443 ssl; server_name my.domain.com; ssl_certificate /etc/nginx/ssl/startssl-nginx.crt; ssl_certificate_key /etc/nginx/ssl/startssl-nginx.key; root /usr/share/nginx/html/; location /dev/ { proxy_pass http://toshiba15/; proxy_redirect http://toshiba15/ /dev/; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } 大多数情况下按预期工作,但是一个问题 – 当我在uri中指定一个不存在的子目录时,它会在代理(toshiba15)服务器的根目录中显示内容! 代理服务器有一个股票nginxconfiguration – 没有改变。 编辑 :我通过添加另一个服务器返回404,并使用正则expression式为我的server_names解决了子域问题 此外,如果我指定一个未定义的子域,它将redirect到代理服务器(my.domain.com)的根目录 谢谢!
我目前有一个这样configuration的Nginx。 location /ui/ { proxy_pass http://ui:8888/; } 这个工程,但我有问题从服务中检索一些资源,例如,一些css样式引用/styles/style.css给404。我怎样才能告诉浏览器,基地址是/ ui /并不是 / ? 可能吗? 我也testing过这个configuration没有运气: location /ui/ { proxy_pass http://ui:8888/; proxy_redirect http://$host/ /ui/; proxy_set_header Host $host; }
我有一个工作 nginxconfiguration代理从一系列源IP到服务器的所有请求。 我目前有20个源IP设置,configuration相当庞大。 为了简洁起见,我删除了其他18个街区。 我想知道是否有一个更简单的方法来做到这一点。 我需要添加100个以上的IP,configuration太大了。 一定会有更好的办法! 澄清:我需要从服务器上提供的100个随机IP地址之一发出的请求。 目标服务器将看到来自100个地址之一的代理请求。 HAProxy或其他替代scheme会更适合这种任务吗? 简化的nginxconfiguration: # nginx proxies all requests to one of these servers upstream cluster { # one server line for every server block configured below server 127.0.0.1:8000; server 127.0.0.1:8001; # 18 more… least_conn; keepalive 16; } # one server block for every source ip address configured […]
我正在尝试configurationnginx,所以我可以有两个位置。 一个用于我的节点API,另一个用于我的Jenkins CI。 http://my_ip/api应该指向我的节点服务器并且http://my_ip/jenkins应该指向我的jenkins CI 我有这个服务器块。 server { listen 80; server_name my_ip_address; location /api { proxy_pass http://127.0.0.1:1234; proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } location /jenkins { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_pass http://localhost:8080; proxy_read_timeout 90; } } 该configuration不起作用。 但是,如果我使用任何与root相匹配的位置,它就可以工作。 这工作没有问题。 […]
我在Nginx上设置了一个反向代理。 我需要它听多个端口。 然后我想要在后端服务器上find完全相同的端口。 像这样: http:// frontendserver:9000 – > http:// backendserver:9000 。 这是我认为会工作 ## server configuration server { listen 9000 ; listen 9001 ; listen 9002 ; listen 9003 ; listen 9004 ; listen 9005 ; listen 9006 ; listen 9007 ; listen 9008 ; listen 9009 ; server_name frontendserver; if ($http_x_forwarded_proto = '') { set […]
在我的公司,我们使用FTP将文件传送给某些客户。 FTP服务器是在我们局域网中的Windows Server 2012上运行的Filezilla Server。 我们在Debian Jessie的DMZ中只有一个虚拟机。 所以我的目标是将FTP请求从Debian转发到Filezilla Server,我的Debian应该像FTP的透明反向代理一样。 我认为,Apache 2.4可以做到这一点与mod_proxy_ftp(我使用mod_proxy_http与http请求,它工作正常),经过一些testing,它不起作用。 这个解决scheme是否可行? 如果是,如何configurationApache 2.4和Filezilla? (被动/主动FTP模式?) 我有点迷路了,我读了很多关于ftp-proxy,ftp.proxy,frox和rp补丁( https://serverfault.com/a/418637/140614),nginx或squid的主题,但是所有他们相当老,没有解决我的问题。 那么2016年我有什么解决scheme? 我应该考虑其他解决scheme吗 先谢谢你
我有两个容器,其中一个运行NGINX作为其他容器的反向代理。 其中一个容器正在运行Apache,启用并configuration了SSL。 我已经看到了几个configuration示例,据我所知,NGINX处理的是证书而不是Apache,而且只是通过其他所有的东西传递给一些非SSL的Apache。 现在,我宁愿让Apache处理它自己的证书,尤其是因为它使我的生活更轻松(使用dockerized letsencrypt,它从相关的Apache容器安装卷并将证书放在所有正确的位置)。 问题是,我找不到任何configurationNGINX只是透明地代理一切到Apache容器。
在nginx上次更新之后,我所有的页面都得到了: 0000 1204 0000 0000 0000 0300 0000 8000 0400 0000 0000 0500 ffff ff00 0004 0800 0000 0000 7fff 0000 0000 0807 0000 0000 0000 0000 0000 0000 01 有一个带有jails的FreeBSD / 10.2-RELEASE-p17盒子。 10.10.10.1:80:Apache / 2.4.20 – 仅作为内部networking – 通用的虚拟主机 XX.XX.XX.XX:80:nginx / 1.10.0作为代理和负载均衡器到Apache24 – 这是公共的 内部networking工作(apache)testing所有文件: curl -I –header 'Host: myserver.com' http://10.10.10.1:80/ HTTP/1.1 200 OK […]
情况 我正在运行Etherpad ,它通过nginx代理。 Etherpad使用带有Socket.io的Websockets。 我的nginxconfiguration或多或less是这一个 。 socket.io的位置块是这样的: rewrite /CustomSubDir/socket.io/(.*) /socket.io/$1 break; proxy_pass http://localhost:CustomPort/; proxy_redirect / /CustomSubDir/; proxy_cookie_path / /CustomSubDir/; # usual proxy header proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-NginX-Proxy true; # websocket proxy_set_header Accept-Encoding ""; proxy_http_version 1.1; # http://nginx.org/en/docs/http/websocket.html proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection $connection_upgrade; proxy_set_header Host $host; proxy_buffers 8 […]