Nginx实现端口映射的示例代码

2025-09-20 11:50

本文主要是介绍Nginx实现端口映射的示例代码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

《Nginx实现端口映射的示例代码》本文主要介绍了Nginx实现端口映射的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...

1. 找到nginx的部署路径

[root@SH-DB-02 adi]# ps -ef | grep nginx
root      53617      1  0  2019 ?        00:00:07 nginx: master process ./nginx
nobody   1javascript76294  53617  0 12:31 ?        00:00:01 nginx: worker process
[root@SH-DB-02 adi]# 
[root@SH-DB-02 adi]# 
[root@SH-DB-02 adi]# 
[root@SH-DB-02 adi]# ls -la /proc/53617/exe
lrwxrwxrwx 1 root root 0 6月  20 14:01 /proc/53617/exe -> /opt/nginx/webserver/nginx/sbin/nginx

最终找到的nginx的路径为“ /opt/nginx/webserver/nginx/sbin/nginx”

2. 备份原来的配置文件

cd /opt/nginx/webserver/nginx/conf/
cp nginx.conf nginx20250620.txt

3. 编辑nginx.conf文件

nano nginx.conf

4. 在http块中添加新的server配置

在现有的server块(8080端口那个)后面,在http块的最后一个 } 之前添加:

server {
    listen       8083;
    server_name  本机IP;
    
    # 只代理特定路径
    location /xizangott/C2callback {
        proxy_pass http://127.0.0.1:8081;
        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_connect_timeout 60s;
        proxy_send_timeout 60s;
        proxy_read_timeout 60s;
    }
    
    # 其他请求返回404
    location / {
        return 404;
    }
}

5. 完整的nginx.conf应该是这样的:

user  nobody;
worker_processes  8;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
error_log  logs/error.log  info;
pid        logs/nginx.pid;
worker_rlimit_nofile  51200;
events {
    use epoll;
    worker_connections www.chinasem.cn 51200;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    #log_format  main  '$remote_addr - $remoDsyoIote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                '$status $body_bytes_sent "$http_referer" '
                '"$http_user_agent" $http_x_forwarded_for "$request_time"';
    Access_log  logs/access.log main;
    sendfile        on;
    tcp_nopush     on;
    keepalive_timeout  65;
    autjsoindex_exact_size off;
    autoindex_localtime on;
    autoindex on;
    gzip  on;
server {
listen       8080;
server_name  本机IP;
index index.html index.htm;
root /data/pic;
autoindex off;
if (-d $request_filename)
{
rewrite ^/(.*)([^/])$ http://$host/$1$2/ permanent;
}
location /ngx_status {
        stub_status     on;
        access_log      off;
        allow   127.0.0.1 ;
        deny  all;
        }
}

server {
    listen       8083;
    server_name  本机IP;
    
    # 只代理特定路径
    location /xizangott/C2callback {
        proxy_pass http://127.0.0.1:8081;
        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_connect_timeout 60s;
        proxy_send_timeout 60s;
        proxy_read_timeout 60s;
    }
    
    # 其他请求返回404
    location / {
        return 404;
    }
}
}

6. 保存文件并退出nano

按 Ctrl + X,然后按 Y,最后按 Enter

7. 测试配置文件语法

cd /opt/nginx/webserver/nginx/sbin/
./nginx -t

8. 重新加载nginx配置

./nginx -s reload

9. 验证配置是否生效

# 检查8083端口是否在监听
netstat -tulpn | grep :8083

# 检查nginx进程
ps -ef | grep nginx

10. 测试代理功能

# 测试目标路径
curl -I httpjs://本机ip:8083/xizangott/C2callback

# 测试其他路径(应该返回404)
curl -I http://本机ip:8083/test

11. 查看日志(如果有问题)

# 查看错误日志
tail -f /opt/nginx/webserver/nginx/logs/error.log

# 查看访问日志
tail -f /opt/nginx/webserver/nginx/logs/access.log

按照以上步骤操作即可。配置完成后,访问 http://本机IP:8083/xizangott/C2callback 就会被代理到你的8081端口的Java应用了。
这样访问http://本机ip:8083/xizangott/C2callback会映射到“http://本机ip:8081/xizangott/C2callback”

到此这篇关于Nginx实现端口映射的示例代码的文章就介绍到这了,更多相关Nginx 端口映射内容请搜索China编程(www.chinasem.cn)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程China编程(www.chinasem.cn)!

这篇关于Nginx实现端口映射的示例代码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1155946

相关文章

React 记忆缓存的三种方法实现

《React记忆缓存的三种方法实现》本文主要介绍了React记忆缓存的三种方法实现,包含React.memo、useMemo、useCallback,用于避免不必要的组件重渲染和计算,感兴趣的可以... 目录1. React.memo2. useMemo3. useCallback使用场景与注意事项在 Re

Java StringBuilder 实现原理全攻略

《JavaStringBuilder实现原理全攻略》StringBuilder是Java提供的可变字符序列类,位于java.lang包中,专门用于高效处理字符串的拼接和修改操作,本文给大家介绍Ja... 目录一、StringBuilder 基本概述核心特性二、StringBuilder 核心实现2.1 内部

Nginx屏蔽服务器名称与版本信息方式(源码级修改)

《Nginx屏蔽服务器名称与版本信息方式(源码级修改)》本文详解如何通过源码修改Nginx1.25.4,移除Server响应头中的服务类型和版本信息,以增强安全性,需重新配置、编译、安装,升级时需重复... 目录一、背景与目的二、适用版本三、操作步骤修改源码文件四、后续操作提示五、注意事项六、总结一、背景与

Android实现图片浏览功能的示例详解(附带源码)

《Android实现图片浏览功能的示例详解(附带源码)》在许多应用中,都需要展示图片并支持用户进行浏览,本文主要为大家介绍了如何通过Android实现图片浏览功能,感兴趣的小伙伴可以跟随小编一起学习一... 目录一、项目背景详细介绍二、项目需求详细介绍三、相关技术详细介绍四、实现思路详细介绍五、完整实现代码

SpringBoot AspectJ切面配合自定义注解实现权限校验的示例详解

《SpringBootAspectJ切面配合自定义注解实现权限校验的示例详解》本文章介绍了如何通过创建自定义的权限校验注解,配合AspectJ切面拦截注解实现权限校验,本文结合实例代码给大家介绍的非... 目录1. 创建权限校验注解2. 创建ASPectJ切面拦截注解校验权限3. 用法示例A. 参考文章本文

在Android中使用WebView在线查看PDF文件的方法示例

《在Android中使用WebView在线查看PDF文件的方法示例》在Android应用开发中,有时我们需要在客户端展示PDF文件,以便用户可以阅读或交互,:本文主要介绍在Android中使用We... 目录简介:1. WebView组件介绍2. 在androidManifest.XML中添加Interne

SpringBoot集成redisson实现延时队列教程

《SpringBoot集成redisson实现延时队列教程》文章介绍了使用Redisson实现延迟队列的完整步骤,包括依赖导入、Redis配置、工具类封装、业务枚举定义、执行器实现、Bean创建、消费... 目录1、先给项目导入Redisson依赖2、配置redis3、创建 RedissonConfig 配

Python的Darts库实现时间序列预测

《Python的Darts库实现时间序列预测》Darts一个集统计、机器学习与深度学习模型于一体的Python时间序列预测库,本文主要介绍了Python的Darts库实现时间序列预测,感兴趣的可以了解... 目录目录一、什么是 Darts?二、安装与基本配置安装 Darts导入基础模块三、时间序列数据结构与

Python使用FastAPI实现大文件分片上传与断点续传功能

《Python使用FastAPI实现大文件分片上传与断点续传功能》大文件直传常遇到超时、网络抖动失败、失败后只能重传的问题,分片上传+断点续传可以把大文件拆成若干小块逐个上传,并在中断后从已完成分片继... 目录一、接口设计二、服务端实现(FastAPI)2.1 运行环境2.2 目录结构建议2.3 serv

C#实现千万数据秒级导入的代码

《C#实现千万数据秒级导入的代码》在实际开发中excel导入很常见,现代社会中很容易遇到大数据处理业务,所以本文我就给大家分享一下千万数据秒级导入怎么实现,文中有详细的代码示例供大家参考,需要的朋友可... 目录前言一、数据存储二、处理逻辑优化前代码处理逻辑优化后的代码总结前言在实际开发中excel导入很