好的,所以我有一个虚拟机http://10.0.8.247:80/phppgadmin/运行phppgadmin。 我想在admin.example.com上公开phppgadmin到互联网,所以我做了 server { listen 80; server_name admin.example.com; location / { proxy_pass http://10.0.8.247:80/; } } 这和预期的一样。 去admin.example.com/phppgadmin将请求代理到10.0.8.247,我得到我想要的响应。 现在,我想要改变一点:在admin.example.com/postgres上有相同的回应。 所以我试了 server { listen 80; server_name admin.example.com; location /postgres/ { proxy_pass http://10.0.8.247:80/phppgadmin/; } } 但是这一直让我失望。 浏览器表明它试图连接到10.0.8.247,这自然不会工作,因为我不直接将虚拟机公开到互联网。 任何人都有提示? 在此先感谢,体育 ====================================== 解决scheme浮现(感谢lot,cnst!) server { listen 80; server_name admin.example.com; location /postgres/ { proxy_pass http://10.0.8.247:80/phppgadmin/; proxy_redirect default; } } 像魅力一样工作。 另请注意 […]
我想有两个proxy_pass位置和一个通用的php-fpm位置以及任何.php请求被转发到fpm-php,但任何请求/ el / …或/ gl / …去那些位置。 这是我迄今为止: server { listen *:443 ssl; ssl_certificate /etc/nginx/ssl/nginx.crt; ssl_certificate_key /etc/nginx/ssl/nginx.key; client_max_body_size 108M; access_log /var/log/nginx/access.log; root /var/www/public; index index.php; if (!-e $request_filename) { rewrite ^.*$ /index.php last; } location /es/ { proxy_pass http://<my-domain>:8200/; } location /gl/ { proxy_pass http://<my-domain>:3000/; } location / { location ~ \.php$ { fastcgi_pass <my-domain>:9000; […]
有一些类似的问题,但他们不能解决我的问题。 我使用nginx作为cdn的代理。 如果浏览器正在接受webp作为图像格式,则应该提供服务,否则为原始。 假设总是有myfilename.jpg和myfilename.jpg.webp (如果不存在的话,我有一个后备可以生成图片)。 我做这个映射: map $http_accept $webp_suffix { default ""; "~*webp" ".webp"; } 这是nginxconfiguration: server { listen 80; server_name images.cdn.de; error_page 403 404 = /-; location /- { proxy_pass http://web:8808; proxy_redirect off; 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_set_header X-Original-URI $original_uri; proxy_read_timeout 600; internal; } location / […]
我的架构设置是在NodeJS的CentOS上运行的SSO服务,端口10102和10142,我需要所有端口80的请求redirect到443外部和内部我上游一切到NodeJS的上述端口,这里是我的configuration: upstream sso1 { server localhost:10102; server localhost:10142; } server { listen [::]:80; listen 443 ssl; server_name www.site.business site.business; ssl_certificate /etc/nginx/cert.crt; ssl_certificate_key /etc/nginx/cert.key; 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; if ($scheme = http) { return 301 https://$server_name$request_uri; } location / { proxy_pass http://sso1; proxy_read_timeout 90; proxy_redirect http://sso1 https://www.site.business; proxy_set_header Host […]
大家好抱歉,如果我犯了一个小错误,但我真的迷失在这里。 我已经build立了我的Ubuntu 16.04服务器是Nginx(不在docker集装箱,在主机上运行)和WordPress(在docker集装箱)。 Docker Hub WordPress的回购:(我不能发布多于两个链接,但它的官方WordPress的回购) 经过一些configuration,我设法让nginx运行和wordpress容器。 当我通过原始IP地址和端口访问WordPress的网站时,它工作正常。 但是,当我做一个从Nginx proxy_pass到容器,我的WordPress的网站似乎已经失去了所有的CSS。 具有讽刺意味的是,页面仍然有点负载。 这里是一个例子:(超链接到一个图像) http:// [IP地址]:51080 / wp-admin / install.php http://example.com/wp-admin/install.php 网站可用 upstream example.com { server localhost:51080; } server { listen 80; server_name example.com; location / { proxy_pass http://localhost:51080; } } docker运行命令 docker run –name example.com -d -v /docker/example.com:/var/www/html wordpress / etc / hosts (我在文件中添加了以下行) [IP address] […]
我想重写一个URL使用重写。 我想插入一个URL到请求的URI但是:这是http:的一部分正在越狱,我的应用程序永远不会得到正确的URL。 如何在重写时防止转义? rewrite /(.*)url(.*) /$1http://example.com$2 break; 导致; /abc/http%3A//example.com/myfile.html 而应该是; /abc/http://example.com/myfile.html
我想代理一些请求到另一台服务器,并永远不会发送结尾的斜杠。 我已经拿出了正在工作的以下内容,但这真的是最好的方法吗? 这感觉有点像我漫长的一天,虽然也许我已经盯着它太久了… location ~ ^/proxy(?<proxy_to_path>.+[^/])/?$ { proxy_pass http://127.0.0.1:8080$proxy_to_path; }
我正在尝试为当前正在开发的节点应用程序设置Nginx代理。 我试图只允许列入白名单的IP访问主站点,但我有一个/ apipath,我希望可以通过任何IP访问。 我已经试过以不同的顺序定义位置块,嵌套等,但没有骰子,目前似乎不传递任何请求到/代理到代理 upstream node_upstream { server 127.0.0.1:3000 fail_timeout=0; } server { listen 80; listen [::]:80; server_name example.com; location /api { allow all; } location / { proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_redirect off; proxy_buffering off; proxy_pass http://node_upstream; allow 1.2.3.4; deny all; } location /public { root /path/to/static/files; } listen 443 ssl; … […]
我有几个使用LVS进行负载均衡的后端Web服务器。 这些机器上只有内部不可路由的IP。 负载均衡器是唯一具有外部IP的机器。 这个设置很好。 我想添加另一个Web服务器的图像服务,但它不会是负载平衡池的一部分。 是否有可能代理从负载平衡的Web服务器传递到图像服务器,并将响应redirect到客户端? 客户端 – >外部LB – >内部Web服务器 – >内部映像服务器 当我从等式中删除LB时,我已经获得了代理通行证的工作,但是尝试使用它时没有运气。
这是场景: 我有一个只能通过一个url访问的linux服务器(因为服务器是虚拟机中的虚拟机): url: http : //foo.bar.com 我有几个networking应用程序可以这样访问: foo.bar.com/java_app =>安装在tomcat中的java wep应用程序 foo.bar.com/webpage =>安装在apache服务器上的网页 Linux服务器有一个apache2服务器,它允许我使用几个configuration文件来创build虚拟主机来完成上一个问题: 注意:myhost => localhost ProxyPreserverHost On <VirtualHost *:80> ServerName foo.bar.com DocumentRoot /var/www/webpage JkMountCopy On SSLProxyEngine On ProxyPass /java_app http://myhost:8080/java_app ProxyPassReseverse /java_app http://myhost:8080/java_app #This uses the DocumentRoot ProxyPass /webpage http://myhost:80/ ProxyPassReseverse /webpage http://myhost:80/ </VirtualHost> 问题是我有另外一个node.js里的软件可以通过这个URL访问: https://myhost:8061. (a webpage too). 解决scheme可能是添加这些行: ProxyPass /ssl_app https://myhost:8061/ ProxyPassReseverse […]