账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    nginx方向代理apache 如何不让url改变
    27
    0

    由于项目需要,前端的js无法跨域,所以用了nginx来反向代理,由于都是在本地安装测试,我是windows系统。nginx监听80,apache监听8080,本地hosts 127.0.0.1 mychain.com

    nginx 配置如下

    upstream mychain.com 
    {
        server 127.0.0.1:8080;
    }
    server 
    {
        listen       80;
        server_name  mychain.com;     
        location / 
        {
            proxy_pass      http://mychain.com;
            proxy_redirect          off;
            proxy_set_header         Host $proxy_host;
            proxy_set_header        X-Real-IP $remote_addr;
            proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
            proxy_set_header         X-Scheme $scheme;
        }
    }    

    apache 配置如下

    <VirtualHost *:8080>
        ServerName mychain.com 
        ServerAlias *.mychain.com
        DocumentRoot c:/www/chain/public
        <Directory  "c:/www/chain/public">
            Options +Indexes +Includes +FollowSymLinks +MultiViews
            AllowOverride All
            Allow from all
        </Directory>
    </VirtualHost>

    可是每次访问mychain.com的时候url都会自动跳转到localhost:8080
    请问如何不让url跳转?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 愛你愛到痛徹心扉 普通会员 1楼

      要阻止Nginx的直接请求(HTTP请求)通过Apache服务器,可以使用以下方法:

      1. 使用反向代理服务器:创建一个反向代理服务器,将Nginx的请求转发到Apache服务器。反向代理服务器可以设置特定的URL或请求头部,以阻止Nginx直接访问Apache服务器。这可以通过编写自定义的HTTP代理服务器代码来实现。

      2. 使用Nginx的反向代理功能:Nginx本身就支持反向代理功能。只需在Nginx的配置文件中设置代理设置即可。例如,你可以将所有请求转发到服务器A,或者只转发特定的URL到服务器A。

      3. 使用Apache的CORS机制:Apache的CORS机制允许服务器只允许特定的URL或请求头从客户端发送。你可以通过在Apache服务器的配置文件中设置CORS规则,来阻止Nginx直接访问Apache服务器。

      4. 使用URL编码:在请求中添加特殊字符(如反斜杠、问号等)的编码,可以防止直接的URL解析。例如,如果你知道Nginx请求的URL可能包含特殊字符,可以将其编码后再发送。

      请注意,这些方法可能会导致客户端的请求更改,因为它们直接改变了客户端发送的请求。如果这不是你想要的效果,你可能需要考虑其他的方法,如使用HTTPS,或者使用专门的Nginx代理服务器。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部