nginx解决域名代理到IP+端口的平台静态资源和接口地址问题

主要解决静态资源访问404问题,接口地址重新代理问题。

nginx 复制代码
server {
        listen 80;
        server_name youdomain;
        charset utf8;
        
        listen 443 ssl;
        ssl_certificate /usr/local/nginx/conf/cert/youdomain.pem;
        ssl_certificate_key /usr/local/nginx/conf/cert/youdomain.key;
        ssl_session_timeout 3m;##超时时间
        ssl_ciphers  HIGH:!aNULL:!MD5;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
     

        #root    /home/front/console-front/;
        #root    /home/cloud/;#https验证文件目录
        index  index.php index.html;

        location / {
                try_files $uri $uri/ /index.php;
		if (!-e $request_filename) {
          		rewrite ^/(.*) /index.html last;
            		break;
        	}
           	proxy_pass http://ip:port/;
        	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;
        }

	#在线设备检测系统
        #location ^~ /efl-prod/ {
        #   	proxy_pass http://ip:port/;
        #	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;
        #}
	#解决js css 访问不到的问题
	#location ~ .* {
   	#	proxy_pass http://ip:port;
        #   	#alias /data/front/nx-travel-front/;
   	#	proxy_set_header Host $http_host;
   	#	proxy_set_header X-Real-IP $remote_addr;
   	#	proxy_set_header X-Forw $proxy_add_x_forwarded_for;
	#}
    	# 静态资源代理 - 必须添加!!!
    	location ^~ /assets/ {
        	proxy_pass http://ip:port/assets/;
        	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;
        
        	# 静态资源缓存
        	expires 30d;
        	add_header Cache-Control "public, immutable";
    	}
    
    	location ^~ /equipManage/ {
        	proxy_pass http://ip:port/sysManage/;
        	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;
        
        	# 静态资源缓存
        	expires 30d;
        	add_header Cache-Control "public, immutable";
    	}
    
    	# 可能还有其他静态资源路径
    	location /static/ {
        	proxy_pass http://ip:port/static/;
        	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;
        	expires 30d;
    	}
    
    	# CSS文件
   	location /css/ {
        	proxy_pass http://ip:port/css/;
        	proxy_set_header Host $host;
        	# ...其他头部配置
    	}
    
    	# JS文件
    	location /js/ {
        	proxy_pass http://ip:port/js/;
        	proxy_set_header Host $host;
        	# ...其他头部配置
    	}
    
    	# 图片
    	location /images/ {
        	proxy_pass http://ip:port/images/;
        	proxy_set_header Host $host;
        	# ...其他头部配置
    	}

    	# API接口特殊处理(如果需要)
    	location ~ ^/gateway/ {
        	proxy_pass http://ip:port;
        	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;
        
        	# API接口超时设置长一些
        	proxy_connect_timeout 60s;
        	proxy_send_timeout 60s;
        	proxy_read_timeout 120s;
        
        	# 禁用API缓存
        	add_header Cache-Control "no-cache, no-store, must-revalidate";
        	add_header Pragma "no-cache";
        	add_header Expires "0";
    	}

        location = /favicon.ico {
                log_not_found off;
                access_log off;
        }
        location = /robots.txt {
                allow all;
                log_not_found off;
                access_log off;
        }
        location ~* \.(css|png|jpg|jpeg|ico)$ {
                expires max;
                log_not_found off;
        }
        location ~ /(assets|upfile|uploads|tmp|log|css|js|images|statics|demo)/.*\.(php|php5)?$ {
                #deny all;
				allow all;
        }

        location ~ /(\.svn|\.git|\.ht|\.DS) {
                deny all;
                internal;
        }
        location ~ \.php($|/) {
                 fastcgi_pass   127.0.0.1:9000;
                 fastcgi_index  index.php;
                 fastcgi_split_path_info  ^(.+\.php)(.*)$;
                 fastcgi_param  PATH_INFO $fastcgi_path_info;
                 fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param    PATH_TRANSLATED    $document_root$fastcgi_path_info;
            fastcgi_param  CI_ENV 'production';
            include        fastcgi_params;
                 #include        fastcgi.conf;
        }

        #if (!-e $request_filename) {
        #    rewrite ^/(.*)$ /index.php/$1 last;
        #    break;
        #}

        access_log  /data/nginx/logs/efl-prod.access.log;
        error_log  /data/nginx/logs/efl-prod.error.log;
    }

*********************************只要思想不滑坡,办法总比困难多*********************************

相关推荐
杨云龙UP23 分钟前
Oracle ASM磁盘组空间分配与冗余理解
linux·运维·数据库·sql·oracle
互成1 小时前
加密系统哪款最好用?2026年五款加密系统深度对比测评
运维·网络·安全
minji...1 小时前
Linux 库制作与原理(三)深入动静态链接原理
linux·运维·服务器·c++
CDN3601 小时前
游戏服稳定运行:360CDN SDK 游戏盾实测体验
运维·游戏·网络安全
bukeyiwanshui1 小时前
Linux实践
linux·运维·服务器
野指针YZZ1 小时前
TCP包 wireshark抓包分析-RK3588
网络·tcp/ip·wireshark
守望时空332 小时前
使用NetworkManager替换当前网络管理器
linux·运维
MinterFusion2 小时前
如何在开放麒麟(openKylin)下安装FTP服务器(v0.1.0)
运维·服务器·网络·vsftpd·开放麒麟·明德融创·openkylin
xlq223222 小时前
30.进程池IPC
linux·运维·服务器
Predestination王瀞潞2 小时前
5.2.1 通信->DNS域名系统协议标准(IETF RFC 1035):DNS(Domain Name System)
网络·网络协议·tcp/ip