nginx配置反向代理 访问内部未开放的端口

该博客介绍了如何通过宝塔面板来配置Nginx反向代理,以实现对Jenkins服务的访问。配置主要包括在Nginx配置文件中定义服务器块,设置监听端口、域名,并引用反向代理规则文件。反向代理规则文件中详细指定了针对静态资源和所有请求的代理到本地内部端口的设置,以确保正确转发和缓存控制。

 

使用宝塔一键配置反向代理即可

 

 

实现解析

1 nginx配置文件 定义jenkins.kalun.cn 引用了 /www/server/panel/vhost/nginx/proxy/jenkins.kalun.cn/*.conf;

 

server
{
    listen 80;
    server_name jenkins.kalun.cn;
    index index.php index.html index.htm default.php default.htm default.html;
    root /www/wwwroot/jenkins.kalun.cn;
    
    #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
    #error_page 404/404.html;
    #SSL-END
    
    #ERROR-PAGE-START  错误页配置,可以注释、删除或修改
    #error_page 404 /404.html;
    #error_page 502 /502.html;
    #ERROR-PAGE-END
    
    #PHP-INFO-START  PHP引用配置,可以注释或修改
    #清理缓存规则

    location ~ /purge(/.*) {
        proxy_cache_purge cache_one $host$1$is_args$args;
        #access_log  /www/wwwlogs/jenkins.kalun.cn_purge_cache.log;
    }
	#引用反向代理规则,注释后配置的反向代理将无效
	include /www/server/panel/vhost/nginx/proxy/jenkins.kalun.cn/*.conf;

	include enable-php-00.conf;
    #PHP-INFO-END
    
    #REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
    include /www/server/panel/vhost/rewrite/jenkins.kalun.cn.conf;
    #REWRITE-END
    
    #禁止访问的文件或目录
    location ~ ^/(\.user.ini|\.htaccess|\.git|\.svn|\.project|LICENSE|README.md)
    {
        return 404;
    }
    
    #一键申请SSL证书验证目录相关设置
    location ~ \.well-known{
        allow all;
    }
    
    access_log  /www/wwwlogs/jenkins.kalun.cn.log;
    error_log  /www/wwwlogs/jenkins.kalun.cn.error.log;
}

2 文件  /www/server/panel/vhost/nginx/proxy/jenkins.kalun.cn/aaa.conf;  内容 配置内部端口 


#PROXY-START/
location  ~* \.(gif|png|jpg|css|js|woff|woff2)$
{
    proxy_pass http://127.0.0.1:6312;
    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 REMOTE-HOST $remote_addr;
    expires 12h;
}
location /
{
    proxy_pass http://127.0.0.1:6312;
    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 REMOTE-HOST $remote_addr;
    
    add_header X-Cache $upstream_cache_status;
    
    #Set Nginx Cache
    
    	add_header Cache-Control no-cache;
}

#PROXY-END/

 

3

### 如何在 Nginx配置反向代理端口 要在 Nginx配置反向代理并指定特定的端口号,可以通过 `proxy_pass` 指令来完成。以下是详细的配置方法和示例: #### 基本概念 Nginx反向代理功能允许客户端请求被转发到后端服务器,并将响应返回给客户端。通过设置不同的监听端口和服务地址,可以灵活地管理流量流向。 #### 配置文件路径 Nginx 的主要配置文件一般位于 `/etc/nginx/nginx.conf` 或者可以在 `/etc/nginx/sites-available/` 下创建独立的站点配置文件[^3]。 #### 示例配置 以下是一个完整的 Nginx 反向代理配置示例,其中指定了前端监听端口为 8080 并将请求转发至后端服务运行的自定义端口(如 9000): ```nginx server { listen 8080; # 定义前端监听的端口 server_name example.com; location / { proxy_pass http://127.0.0.1:9000; # 将请求转发到本地 IP 和指定端口 proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } ``` 在此配置中: - `listen 8080` 表明 Nginx 监听的是 8080 端口。 - `proxy_pass http://127.0.0.1:9000` 明确指出请求会被转发到 localhost 上运行的服务,该服务监听于 9000 端口[^3]。 #### 测试与验证 完成配置修改之后,需执行命令测试语法是否正确以及重新加载 Nginx 配置以使更改生效: ```bash sudo nginx -t # 测试配置文件是否有错误 sudo systemctl reload nginx # 如果无误则重载 Nginx 进程应用新配置 ``` 此过程确保了任何改动都能安全实施而不中断现有连接[^1]。 #### 负载均衡扩展 如果希望进一步提升系统的稳定性和性能,可引入多个后端节点并通过 upstream 实现简单轮询式的负载均衡机制[^1]: ```nginx upstream backend { server backend1.example.com:9000; server backend2.example.com:9000; } server { listen 8080; server_name example.com; location / { proxy_pass http://backend; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } } ``` 以上展示了如何利用 Nginx 来设定不同端口间的映射关系及其高级特性之一——负载均衡的功能[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值