Ubuntu通过Nginx反向代理Jenkins

为了提高安全性,关闭了云服务器的8080端口,并通过Nginx进行反向代理,使用户可以通过80端口访问Jenkins。主要步骤包括:修改Nginx配置文件,添加反向代理规则;修改Jenkins配置,更新Jenkins URL;重启Nginx和Jenkins服务;最后验证配置并关闭8080端口的入站规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

云服务器上部署的应用多了开放的端口也多, 出于安全性考虑, 关闭服务器8080端口

修改Jenkins访问方式, 通过Nginx反向代理通过80端口访问Jenkins

修改nginx 的配置文件

sudo vim /etc/nginx/sites-available/mysite.conf

修改结果

upstream jenkins_server {
    server 127.0.0.1:8080;
}

server {
    listen 80;
    server_name www.sitven.cn;                                      # 名称
    charset utf-8;                                                  # 格式
    client_max_body_size 75M;    

   location /jenkins/ {                                             # jenkins访问路径
        proxy_http_version 1.1; ## For websocket
        proxy_set_header Upgrade $http_upgrade; ## For websocket
        proxy_set_header Connection "upgrade"; ## For websocket
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header Host $http_ho
<think>好的,我现在需要帮用户解决关于Nginx配置文件/etc/nginx/conf.d/jenkins.conf不存在的问题。首先,用户之前的问题是关于Jenkins启用CSRF防护导致Webhook被拒,现在他们可能正在按照之前的指导配置Nginx反向代理,但发现文件不存在。 用户可能对Nginx配置文件结构不太熟悉。我需要解释Nginx默认的配置结构,比如sites-available和sites-enabled,或者conf.d目录的作用。用户可能没有创建过这个文件,或者安装方式不同导致路径不同。比如,有些系统可能把配置放在/etc/nginx/nginx.conf里,或者使用include语句引入其他文件。 接下来,我应该告诉用户如何创建这个文件。需要给出具体的步骤,比如使用sudo和文本编辑器创建文件,并确保权限正确。同时,要提醒用户检查主配置文件是否包含conf.d目录,否则配置不会生效。这可能涉及到检查nginx.conf中的include指令,是否有include /etc/nginx/conf.d/*.conf;这样的行。 另外,用户可能对Nginx配置的基础知识不够了解,需要提供示例配置内容,比如反向代理的设置,包括proxy_pass和必要的header设置。同时,可能需要指导他们如何测试配置是否正确,比如运行nginx -t,然后重启服务。 还要考虑用户是否使用了不同的发行版,比如CentOS、Ubuntu等,它们的Nginx配置路径可能略有不同,但用户之前提到的是CentOS7,所以路径应该是一致的。不过还是应该确认这一点,避免混淆。 用户可能遇到的问题还有权限问题,比如使用sudo创建文件,或者SELinux设置导致Nginx无法读取配置文件。这时候可能需要提醒他们检查权限和SELinux上下文,或者暂时禁用SELinux进行测试。 最后,需要确保用户明白修改配置文件后必须重启或重载Nginx服务,否则更改不会生效。给出具体的命令,如systemctl restart nginxnginx -s reload。 总结来说,我需要逐步引导用户创建正确的配置文件,检查Nginx的主配置是否包含该目录,提供配置示例,并验证配置的正确性。同时,考虑用户可能的其他问题,如权限或SELinux,并给出相应的建议。</think>### 问题原因解析 `/etc/nginx/conf.d/jenkins.conf` 文件不存在可能有以下原因: 1. **未手动创建**:Nginx 默认不会自动生成该文件,需用户按需创建。 2. **配置路径差异**:部分系统使用 `/etc/nginx/sites-available/` 和 `/etc/nginx/sites-enabled/` 管理配置(如 Debian/Ubuntu),而 CentOS 通常默认使用 `/etc/nginx/conf.d/`。 3. **安装方式影响**:通过包管理器(`yum`)安装的 Nginx 可能默认未包含自定义配置。 --- ### 解决方案 #### 1. **手动创建配置文件** ```bash # 使用 root 权限创建文件 sudo touch /etc/nginx/conf.d/jenkins.conf sudo chmod 644 /etc/nginx/conf.d/jenkins.conf # 确保权限正确 ``` #### 2. **检查主配置文件是否包含该路径** 打开 Nginx配置文件 `/etc/nginx/nginx.conf`,确认包含以下语句: ```nginx http { # 确保包含 conf.d 目录 include /etc/nginx/conf.d/*.conf; # 若使用 sites-enabled 模式,可能包含: # include /etc/nginx/sites-enabled/*; } ``` 如果未包含 `conf.d/*.conf`,需手动添加并重启 Nginx。 --- ### 配置示例:反向代理 Jenkins 编辑 `/etc/nginx/conf.d/jenkins.conf`,写入以下内容: ```nginx server { listen 80; server_name jenkins.your-domain.com; # 替换为实际域名或IP # 重定向 HTTP 到 HTTPS(如果已启用 HTTPS) # return 301 https://$host$request_uri; location / { proxy_pass http://localhost:8080; # Jenkins 默认端口 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; # 透传 WebSocket 协议(避免 Jenkins 终端连接失败) proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } } ``` --- ### 操作验证 1. **检查语法**: ```bash sudo nginx -t # 输出应为 "syntax is ok" ``` 2. **重启 Nginx**: ```bash sudo systemctl restart nginx ``` 3. **访问测试**: 浏览器访问 `http://jenkins.your-domain.com`,应正常跳转至 Jenkins 页面。 --- ### 附录:关键路径说明 | 路径/文件 | 用途 | |---------------------------|-------------------------------| | `/etc/nginx/nginx.conf` | Nginx配置文件 | | `/etc/nginx/conf.d/` | 推荐存放自定义配置的目录 | | `/var/log/nginx/error.log` | 错误日志(调试时必查) | --- ### 扩展建议 - **启用 HTTPS**:使用 Let's Encrypt 免费证书,参考命令: ```bash sudo certbot --nginx -d jenkins.your-domain.com ``` - **权限问题**:若遇到 403 错误,检查 SELinux 状态: ```bash sudo setsebool -P httpd_can_network_connect 1 # 允许 Nginx 网络连接 ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SitVen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值