Nexus 私有倉庫 + Nginx 反向代理部署文檔

1. 使用 Podman 部署 Nexus 3

podman run --name nexus -d \-p 8081:8081 \-v /data:/nexus-data \-v /etc/localtime:/etc/localtime \-e TZ="Asia/Shanghai" \-e INSTALL4J_ADD_VM_PARAMS="-Xms10240m -Xmx10240m -XX:MaxDirectMemorySize=4096m" \docker.io/sonatype/nexus3

說明:

  • Nexus 服務默認監聽端口:8081
  • 數據持久化目錄:/data
  • Java 啟動參數可根據宿主機內存進行調整

2. 編譯安裝 Nginx 1.22(支持 HTTPS)

# 解壓源碼
cd /opt
tar -zvxf nginx-1.22.0.tar.gz
cd nginx-1.22.0# 安裝編譯依賴
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel# 編譯并安裝
./configure --prefix=/usr/local/nginx --with-http_ssl_module
make && make install

3. 配置 Nginx 主配置文件

文件路徑:/usr/local/nginx/conf/nginx.conf

user  nobody;
worker_processes  1;error_log  logs/error.log info;
pid        logs/nginx.pid;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log  logs/access.log  main;sendfile        on;tcp_nopush      on;keepalive_timeout  65;gzip  on;# 安全 Headersadd_header X-Content-Type-Options nosniff;add_header X-Frame-Options DENY;add_header X-XSS-Protection "1; mode=block";include conf.d/*.conf;# 限制上傳體積client_max_body_size 5000m;
}

4. 創建反向代理配置 /usr/local/nginx/conf/conf.d/mirror.conf

# 定義后端 Nexus 容器
upstream backend {server 127.0.0.1:8081;
}# HTTP 配置(重定向到 HTTPS)
server {listen 80;server_name mirrors.benlai.com mirrors.benlai-io.com;return 301 https://$host$request_uri;
}# HTTPS 配置
server {listen 443 ssl;server_name mirrors.benlai.com mirrors.benlai-io.com;ssl_certificate     /usr/local/nginx/conf/ssl/benlai-io.com.crt;ssl_certificate_key /usr/local/nginx/conf/ssl/benlai-io.com.key;ssl_session_cache   shared:SSL:1m;ssl_session_timeout 5m;ssl_ciphers         HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers on;location ^~/repository/ {allow all;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;}location ^~/admin/ {allow 10.93.152.0/21;allow 10.86.160.0/21;allow 10.93.64.131;deny all;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;}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;}
}

說明:

  • 支持自動將 HTTP 請求重定向到 HTTPS
  • /repository/:公開訪問路徑
  • /admin/:僅限內網 IP 白名單,其他全部拒絕

5. 創建 SSL 證書目錄(示例使用自簽名)

mkdir -p /usr/local/nginx/conf/ssl
openssl req -x509 -nodes -days 3650 -newkey rsa:2048 \-keyout /usr/local/nginx/conf/ssl/benlai-io.com.key \-out /usr/local/nginx/conf/ssl/benlai-io.com.crt \-subj "/C=CN/ST=Beijing/L=Beijing/O=Benlai/OU=IT/CN=mirrors.benlai-io.com"

如果使用正式證書,替換上述 .crt.key 即可。


6. 啟動 Nginx 并測試配置

cd /usr/local/nginx/sbin
./nginx -t     # 測試配置語法
./nginx        # 啟動服務

如需重啟或重新加載配置:

./nginx -s reload

7. 可選:配置 systemd 啟動項

建議將 Podman Nexus 容器與 Nginx 一并加入開機啟動。

創建 /etc/systemd/system/nginx.service

[Unit]
Description=The Nginx HTTP and reverse proxy server
After=network.target[Service]
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/usr/local/nginx/sbin/nginx -s quit
PIDFile=/usr/local/nginx/logs/nginx.pid
Restart=on-failure[Install]
WantedBy=multi-user.target

啟用服務:

systemctl daemon-reexec
systemctl enable nginx
systemctl start nginx

8. 測試訪問

# 測試重定向
curl -I http://mirrors.benlai.com/repository/# 測試代理訪問
curl -k https://mirrors.benlai.com/repository/# 測試限制訪問路徑
curl -k https://mirrors.benlai.com/admin/ -H "X-Real-IP: 1.2.3.4"

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/79555.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/79555.shtml
英文地址,請注明出處:http://en.pswp.cn/web/79555.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

一.Gitee基本操作

一.初始化 1.git init初始化倉庫 git init 用于在當前目錄下初始化一個本地 Git 倉庫,讓這個目錄開始被 Git 跟蹤和管理。 生成 .git 元數據目錄,從而可以開始進行提交、回退、分支管理等操作。 2.git config user.name/user.email配置本地倉庫 # 設置…

力扣210(拓撲排序)

210. 課程表 II - 力扣(LeetCode) 這是一道拓撲排序的模板題。簡單來說,給出一個有向圖,把這個有向圖轉成線性的排序就叫拓撲排序。如果有向圖中有環就沒有辦法進行拓撲排序了。因此,拓撲排序也是圖論中判斷有向無環圖…

華為ensp實現跨vlan通信

要在網絡拓撲中實現主機192.168.1.1、192.168.1.2和192.168.2.1之間的互相通信,需要正確配置交換機(S5700)和路由器(AR3260),以確保不同網段之間的通信(即VLAN間路由)。 網絡拓撲分析…

熱部署與雙親委派

熱部署初探與雙親委派機制 一、熱部署初探 ? 熱部署就是在不重啟服務的情況下,無需重新啟動整個應用,就能對代碼、配置等進行更新并使新的更改在服務中生效。以下代碼可以打破雙親委派機制,利用類加載器的隔離實現熱部署。可分為以下三步進…

AWS SNS:解鎖高并發消息通知與系統集成的云端利器

導語 在分布式系統架構中,如何實現高效、可靠的消息通知與跨服務通信?AWS Simple Notification Service(SNS)作為全托管的發布/訂閱(Pub/Sub)服務,正在成為企業構建彈性系統的核心組件。本文深度…

驅動開發硬核特訓 · Day 30(下篇): 深入解析 lm48100q I2C 音頻編解碼器驅動模型(基于 i.MX8MP)

作者:嵌入式Jerry 視頻教程請關注 B 站:“嵌入式Jerry” 一、背景與目標 在本篇中,我們圍繞 TI 的 lm48100q 音頻編解碼器 展開,深入講解其作為 I2C 外設如何集成至 Linux 內核音頻子系統(ASoC)&#xff0…

idea寫spark程序

步驟 1:創建 Maven 項目 打開 IntelliJ IDEA,選擇 File > New > Project。選擇 Maven,勾選 Create from archetype,選擇 org.apache.maven.archetypes:maven-archetype-quickstart。填寫 GroupId(如 com.exampl…

【C語言練習】032. 編寫帶參數的函數

032. 編寫帶參數的函數 032. 編寫帶參數的函數1. 定義帶參數的函數示例1:定義一個帶參數的函數輸出結果2. 傳遞多個參數示例2:定義一個帶多個參數的函數輸出結果3. 傳遞數組作為參數示例3:定義一個帶數組參數的函數輸出結果4. 傳遞結構體作為參數示例4:定義一個帶結構體參數…

Java虛擬機的基本結構

jvm它包含以下部分 第一個:類加載系統 類加載子系統,負責類的加載。類加載器有三種類型:引導類加載器、擴展類加載器、應用程序類加載器。 第二個:運行時數據區 包含了程序計數器、Java虛擬機棧、本地方法棧、堆 、方法區。 程…

uniapp引入七魚客服微信小程序SDK

小程序引入七魚sdk 1.微信公眾平臺引入2.代碼引入3.在pagesQiyu.vue初始化企業appKey4.跳轉打開七魚客服 1.微信公眾平臺引入 賬號設置->第三方設置->添加插件->搜索 QIYUSDK ->添加 2.代碼引入 在分包中引入插件 "subPackages": [{"root":…

手撕算法(定制整理版2)

最長無重復子字符串 class Solution(object):def lengthOfLongestSubstring(self, s):""":type s: str:rtype: int"""if not s:return 0max_len 0tp []for a in s:while a in tp:del tp[0]tp.append(a)if len(tp) > max_len:max_len len(…

數字IC后端培訓教程之數字后端項目典型案例分析

今天給大家分享下最近小編幫助學員解決的幾個經典數字IC后端項目問題。希望能夠對大家的學習和工作有所幫助。 數字IC后端項目典型問題之后端實戰項目問題記錄(2025.04.24) 數字IC后端設計實現培訓教程(整理版) Q1: 老師好&…

window 顯示驅動開發-將虛擬地址映射到內存段(二)

在將虛擬地址映射到段的一部分之前,視頻內存管理器調用顯示微型端口驅動程序的 DxgkDdiAcquireSwizzlingRange 函數,以便驅動程序可以設置用于訪問可能重排的分配位的光圈。 驅動程序既不能將偏移量更改為訪問分配的 PCI 光圈,也不能更改分配…

Termius ssh連接服務器 vim打開的文件無法復制問題

你的問題是: ? 在 Termius (macOS) SSH 連接到 VMware Ubuntu,使用 vim 打開 .cpp 文件時,可以復制文本; ? 但在 Windows 10 上 SSH 到 VMware 的 Red Hat 6.4 時,復制操作無效。 ? 🎯 初步分析 復制…

楊校老師項目之基于SSM與JSP的鮮花銷售系統-【成品設計含文檔】

基于SSMJSP鮮花商城系統 隨著電子商務的快速發展,鮮花在線銷售已成為一種重要的消費模式。本文設計并實現了一個基于JSP技術的鮮花銷售管理系統,采用B/S架構,使用SSM框架進行開發,并結合Maven進行項目依賴管理。系統分為前臺用戶模…

集成學習——Bagging,Boosting

一.什么是集成學習 集成學習的基本思想是通過結合多個基學習器的預測結果,來提高模型的泛化能力和穩定性。這些基學習器可以是相同類型的算法,也可以是不同類型的算法。 當基學習器之間具有一定的差異性時,它們在面對不同的樣本子集或特征子…

【筆試訓練】給一個數組構建二叉樹|從前序遍歷與中序遍歷構建二叉樹|二叉樹中的最大路徑和

文章目錄 1.給一個數組構建二叉樹2.從前序遍歷和中序遍歷構建二叉樹3.二叉樹中的最大路徑和 1.給一個數組構建二叉樹 思路:就是借助一個隊列實現層序遍歷的思想。 先將root節點入隊列,構造左右節點后,root取出來時,將其左右孩子都…

Swift實戰:如何優雅地從二叉搜索樹中挑出最接近的K個值

文章目錄 摘要描述題解答案題解代碼分析示例測試及結果時間復雜度空間復雜度總結未來展望 摘要 在日常開發中,我們經常會遇到“在一堆數據中找出最接近某個值”的需求。尤其在搜索引擎、推薦系統或者地理坐標匹配中,這種“最近匹配”的問題非常常見。Le…

Linux512 ssh免密登錄 ssh配置回顧

下載MX 官網 參考 OK 登個tom試試 然后再計劃登個RealServer 計劃再用僅主機網卡試試 連不上 看來要通過JumpServer再聯 通過網卡訪問 被踢掉了 成功通過跳板機JumpServer登入到RealServer 方法一免密登錄 現計劃嘗試方法二 只有1個tom 我連了兩個tom 看來是根據IP劃…

編譯原理AST以Babel為例進行解讀、Webpack中自定義loader與plugin

AST樹詳解 編譯原理 主要研究如何將高級編程語言的源代碼轉換為機器能理解的目標代碼(通常是二進制代碼或中間代碼)。編譯器的底層實現通常包含多個階段,包括詞法分析、語法分析、語義分析和代碼生成。 一、AST的核心概念與作用 AST&#…