首页 > 系统相关 >nginx改变访问应用端口以及解决css,js或表单提交访问不到的问题

nginx改变访问应用端口以及解决css,js或表单提交访问不到的问题

时间:2024-02-06 15:44:18浏览次数:28  
标签:set sub header js filter 访问 redmine proxy nginx

场景

如果原先某个网站是通过ip:8080直接访问的,现在想要加个前缀,并且去掉端口进行访问,比如ip/myapp去访问这个项目,可以通过nginx来实现这个过程。最近有个需求需要变更redmine的访问路径,从ip:8080改成ip/redmine,下面以redmine举例子。

配置过程

以ip/redmine来访问原先ip:8080的项目。

添加访问前缀路径和端口号监听

server {
    listen 80; 

	location /redmine/ {
        proxy_pass http://127.0.0.1:8080/;
        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;
	}
    
}

照上面设置完,运行nginx -s reload

css和js无法加载的问题

打开网页发现css和js都加载不了,按F12看到,对于静态资源的请求,都去请求了ip:80/+具体文件,缺少了访问路径,导致无法请求到相关的资源,那需要针对这些css和js文件,让其请求路径加上/redmine。

配置如下:

server {
    listen 80;  


	location /redmine/ {
        proxy_pass http://127.0.0.1:8080/;
        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;

        sub_filter_once off;
        sub_filter_types *;
        sub_filter_types text/css application/javascript;
        sub_filter 'src="/' 'src="/redmine/';
        sub_filter 'href="/' 'href="/redmine/';
	}
    
}

表单无法正常提交

设置结束,reload nginx,发现css和js已经能够正常访问了,但是点击登陆或者退出登录按钮,却还是请求了ip/login或者ip/logout,缺少访问路径/redmine/。

再进行修改加上对action的处理

server {
    listen 80;  


	location /redmine/ {
        proxy_pass http://127.0.0.1:8080/;
        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;

        sub_filter_once off;
        sub_filter_types *;
        sub_filter_types text/css application/javascript;
        sub_filter 'src="/' 'src="/redmine/';
        sub_filter 'href="/' 'href="/redmine/';
        sub_filter 'action="/' 'action="/myapp/';
	}
    
}

现在再进行访问已经正常了。

标签:set,sub,header,js,filter,访问,redmine,proxy,nginx
From: https://www.cnblogs.com/Johnyzh/p/18009832

相关文章

  • nginx+keepalived组成高可用集群
    注意:用keepalived将多台nginx组成高可用集群时,nginx不能用docker启动1下载keepalived:yum-yinstallkeepalived2查看网卡:ipaddr,有eth0,en33这种的就是网卡名,inet后面是ip地址,一个网卡还可以绑定多个ip地址,比如给eth0网卡添加192.168.0.150ip命令:ipaddradd192.168......
  • 使用JS来开发ProComponents的ProTable案例
    ProComponents的ProTable组件是基于React和TypeScript开发的,但也可以在JavaScript项目中使用。以下是一个使用JavaScript的ProTable示例:import{useState,useRef}from'react';import{Button}from'antd';importProTablefrom'@ant-design/pro-table&#......
  • nodejs中实现sm4加解密
    SM4是中国密码局颁布的一种分组密码算法,也称为国密SM4。它是基于对称密钥加密算法的一种分组密码算法,具有较高的安全性和较快的加密速度。SM4使用128位的密钥和128位的分组进行加密。sm-crypto是一个支持国密SM2、SM3、SM4等算法的Node.js加密库。要使用sm-crypto库......
  • DevExpress WinForms中文教程 - 如何创建可访问的WinForms应用?(二)
    为用户创建易访问的WindowsForms应用程序不仅是最佳实践的体现,还是对包容性和以用户为中心的设计承诺。在应用程序开发生命周期的早期考虑与可访问性相关的需求可以节省长期运行的时间(因为它将决定设计决策和代码实现)。一个可访问的WinForms应用程序提供了各种好处,包括:扩大......
  • Nginx错误 open() "/usr/local/nginx/proxy_temp/x/xx/xxxxxxxx" failed (13: Permiss
    问题:设置client_max_body不起作用(notwroking)发现:nginxerror.log中有 open()"/usr/local/nginx/proxy_temp/x/xx/xxxxxxxx"failed(13:Permissiondenied)whilereadingupstream解决办法:首先查看psaux|grep"nginx:workerprocess"当前nginx的用户是谁:如nginx......
  • Nginx配置TCP/UDP流量转发
    #usernobody;worker_processes1;#error_loglogs/error.log;#error_loglogs/error.lognotice;#error_loglogs/error.loginfo;#pidlogs/nginx.pid;events{worker_connections1024;}stream{log_formatmain'$remote_addr[$tim......
  • ArcgisServer屏蔽服务访问页面等安全漏洞
    1信息遍历通过ArcgisServer自身配置进行设置。本机测试通过。1.1配置步骤打开如下地址http://ip:6080/arcgis/admin/system/handlers/rest/servicesdirectory点击edit,将ServicesDirectoryEnabled的勾选去掉,保存。 1.2设置后效果 2不安全的域传送漏洞删除Arcgis......
  • 48从零开始用Rust编写nginx,搭建一个简单又好看官方网站
    wmproxywmproxy已用Rust实现http/https代理,socks5代理,反向代理,负载均衡,静态文件服务器,websocket代理,四层TCP/UDP转发,内网穿透等,会将实现过程分享出来,感兴趣的可以一起造个轮子项目地址国内:https://gitee.com/tickbh/wmproxygithub:https://github.com/tickbh/wmpro......
  • JS数组添加元素的三种方式
    JS数组添加元素的三种方式1、push()结尾添加数组.push(元素)参数描述newelement1必需。要添加到数组的第一个元素。newelement2可选。要添加到数组的第二个元素。newelementX可选。可添加多个元素。2、unshift()头部添加数组.unshift(元素)参数描述newelement1必......
  • nginx: 当HTTPS资源引入HTTP导致报错blocked:mixed-content (混合加载/Mixed Content)如
    location/{expires12h;if($request_uri~*"(php|jsp|cgi|asp|aspx)"){expires0;}proxy_passhttp://127.0.0.1:8181;proxy_set_headerHost$host;proxy_set_headerX-Real-IP$remote_addr;proxy_set_headerX-Forw......