我是nginx的新手。 我有Apache之前的nginx,我有问题。 我似乎需要在configuration2规则: 规则1)如果我们有url“/ my_path”我们不碰它,但用户去“/ my_path.php” 规则2)如果我们有url“/my_path.php”,我们将它改为“/ my_path”,用户转到“/my_path.php”,因为我们回到规则1。 我认为这是必要的search引擎优化? 我的configuration,例如是… server { listen 8080; server_name my_apache_server; location / { proxy_pass http://my_apache_server/; } location ~^\/(.+)$ { rewrite ^\/(.+)$ /$1.php break; proxy_pass http://my_apache_server/; } location ~^\/(.+)\.php$ { proxy_redirect http://my_apache_server/$1 http://my_apache_server/error.php; } … } 但是nginx显示一个错误: nginx: [emerg] "proxy_pass" cannot have URI part in location given by regular expression, […]
我使用PHP-FPM和mod_proxy_fcgi来提供PHP文件。 该系统是快速的和完美的工作,除非我不能使用Apache的FilesMatch指令。 那么这是有道理的,因为proxypass被定义为接pipe任何PHP文件。 有没有可能使FilesMatch以某种方式工作?
我正在运行Apache,并在apache中有一个.conf文件作为site-enabled ,如下所示。 <Virtualhost blog.example.com:80> ServerName blog.example.com ServerAdmin [email protected] ProxyRequests Off ProxyPass /phpmyadmin ! ProxyPass / http://localhost:2368/ ProxyPassReverse / http://localhost:2368/ </Virtualhost> 正如你所看到的,我只需要点击blog.example.com来处理ProxyPass命令。 但是,它实际上影响所有其他域example.com , other.example.com 。 我在这里错过了什么? 如果这就是ProxyPass的工作方式,有没有办法告诉它忽略物理文件和目录? 其他网站启用(只有一个网站运行ruby,其余的遵循第一种forms): <VirtualHost other.example.com:80> ServerName other.example.com ServerAdmin [email protected] DocumentRoot /var/www/html/other ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost> <Virtualhost other2.example.com:80> ServerName other2.example.com ServerAdmin [email protected] DocumentRoot /var/www/html/rails/other2/public <Directory /var/www/html/rails/other2/public> AllowOverride all Options […]
我想要phpMyAdmin在另一个端口下运行,并通过/pma/到127.0.0.1:8081所有请求 那是我的Nginxconfiguration server { listen 80; … location /pma/ { proxy_pass http://127.0.0.1:8081/; proxy_redirect off; proxy_set_header Host $host; } location ~ \.php$ { … } } 现在,当我请求http://domain.com/pma/phpinfo.php location ~ \.php$接pipe控制,我得到了404。是否有可能总是将请求传递到http://127.0.0.1:8081何时到/pma/ ?
好吧,我不知道该怎么说,但我会尽力解释我的情况。 我有一个运行debian的家庭服务器,其中包括运行“plex media server”。 我使用子域名远程访问我的服务器到我自己的域名,我们称之为“ mydomain.com ”。 我在子域“ home.mydomain.com ”(目前只是显示一些基本的html)上访问我的服务器,并访问“ home.mydomain.com:32400/web ”上的“Plex web界面”。 我想要做的是将子域名“ plex.mydomain.com ”redirect到“ home.mydomain.com:32400/web ”,以便于访问“plex界面”。 我已经设法在一半,但我不确定如何进行,或者如果这是事实可能做到的。 截至目前,这些是我的虚拟主机: <VirtualHost *:80> ServerAdmin webmaster@localhost ServerName home.mydomain.com DocumentRoot /var/www/home.mydomain.com/public_html <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <Directory "/usr/lib/cgi-bin"> AllowOverride […]
有一些开发主机,我们正在尝试运行Apache / PHP和Node.js。 对于运行在本地端口上的节点服务,理想的简单ProxyPass应该可以工作,但由于某种原因,我需要提供本地networkingIP,localhost会给出503错误。 $ cat nodeproxy.conf <Directory /public/np1/site> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> <VirtualHost *:80> ServerName np1.local.zaptech.org DocumentRoot /public/np1/site ProxyRequests on # ProxyPass /np1/ http://localhost:1337/ <- doesn't work, 503 error # ProxyPass /np1/ http://127.0.0.1:1337/ <- doesn't work, 503 error ProxyPass /np1/ http://10.10.10.76:1337/ </VirtualHost> $ cat sysd [Unit] Description=Node.js Example Server […]
请帮我使用Apache 2.4.18。 这是与这个问题作斗争的第三天。 build筑 www.myserver.com:用于stream量redirect的前台服务器 内部服务器与本地IP 192.168.0.10包含2个文件夹与一个Web应用程序每一个 192.168.0.10/app01 192.168.0.10/app02 我想通过他们的子域来访问这些networking应用程序 app01.myserver.com和 app02.myserver.com 这是我的虚拟主机configuration文件 <VirtualHost *:80> ServerName app01.myserver.com ProxyRequests Off ProxyPreserveHost On ProxyPass / http://192.168.0.10/app01 ProxyPassReverse / http://192.168.0.10/app01 </VirtualHost> 它的工作,但部分:stream量正在redirect,但我有问题的链接。 问题 在app01.myserver.com上login后,浏览器redirect到app01.myserver.com/dashboard ,应用程序菜单上的某些链接选项会redirect到它们各自的模块,但是: 当我点击app01.myserver.com/profile时,我被redirect到app01.myserver.com/profile 然后我被redirect到app01.myserver.com/app01/profile 它正确地给了我一个404错误,因为“ app01 / profile ”不存在。 我想我需要一个重写规则,或者ProxyPass和ProxyPassReverse是不正确的。 任何帮助,将不胜感激。
在.htaccess文件中,我有这样的代理到Tomcat的Apache: RewriteRule (.*) http://localhost:8080/tomcat-app/$1 [P] 所有redirect以及HTML文件中的内部链接直接转到Tomcat应用程序,而不是Apache。 所以我会使用ProxyPassReverse等来正确翻译,但显然我不允许在.htaccess文件中使用该指令。 我真的不想把它们放到主Apacheconfiguration中,因为这意味着每当有变化时都要重新启动Apache。 这就是为什么我喜欢RewriteRole [P]:与ProxyPass不同,它可以放入.htaccess。 我能做什么来模拟.htaccess文件中的ProxyPassReverse? 或者更具体地说,不需要重新启动任何改变?
我有一个使用Spring Security进行login的Spring MVC应用程序。 我使用Apache Webserver作为代理和Tomcat。 以下是我的/etc/apache2/sites-enabled/example.com.conf文件: ServerAdmin [email protected] ServerName example.com ServerAlias www.example.com DocumentRoot /var/www/example.com/public_html ProxyPreserveHost On ProxyRequests off ProxyPass /myapp/j_spring_security_check http://XX.YY.ZZ.WW:8080/myapp/j_spring_security_check ProxyPassReverse /myapp/j_spring_security_check http://XX.YY.ZZ.WW:8080/myapp/j_spring_security_check ProxyPass /myapp http://XX.YY.ZZ.WW:8080/myapp ProxyPassReverse /myapp http://XX.YY.ZZ.WW:8080/myapp 我的问题是现在我必须访问我的网站: www.example.com/myapp 在那里我想要访问它 www.example.com 我试着玩,但login没有正常工作。 我应该如何为此设置ProxyPass和ProxyPassReverse?
如果你想通过基于位置的proxypass代理URL请求到两个不同的后端,最快和最干净的解决scheme是什么。 location /app1/ { alias /var/www/ruby/public; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; try_files $uri $uri/ @ruby; } location @ruby { proxy_pass http://127.0.0.1:3000; } location /app2/ { proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; try_files $uri $uri/ @other; } location @other { proxy_pass http://127.0.0.1:8080; } 有了这个configuration,nginx将"/app1"或“ /app2 […]