RHEL/CentOS 離線安裝 Nginx rpm
source link: https://blog.darkthread.net/blog/offline-install-nginx-on-linux/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
接到指令要安裝一台 Nginx 當 Reverse Proxy。依過去幾次經驗估計是件簡單任務,應可在半小時內搞定。基本上就是照著(How to install and use Nginx on CentOS 7 / RHEL 7)的步驟,再依先前筆記在 /etc/nginx/conf.d 加入一個 my-web1.conf:
server {
listen 80;
location / {
proxy_pass http://remote-server:5000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection keep-alive;
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
有別於過去自己玩是用 CentOS,這回要安裝的 Linux 版本是 RHEL,但問題不大,CentOS 是移除 RedHat 商標的 RHEL,本質相同。但另一個限制就讓缺乏經驗的 Linux 麻瓜狠摔一跤,難度由接小孩提高成進火場救人,工時也從 30 分鐘暴增到 3 小時。受限網路政策,要裝 Nginx 的 Linux 主機無法連上網際網路,yum install nginx 一行搞定安裝的如意算盤被砸個粉碎!
第一次遇到離線安裝 rpm 挑戰,摸索一陣子才找到解法,筆記如下:
- 找一台可上網的 CentOS 或 RHEL,使用指令
sudo yum nginx -y --downloadonly --downloaddir=/tmp/nginx
yum 會將相依套件一次下載到本機指定目錄。 - 使用
tar zcvf nginx.tgz /tmp/nginx
打包上傳到目的主機解開 - 用
sudo yum localinstall nginx-1.16.1-1.el7.x86_64.rpm
即可安裝,但我遇到很麻煩的套件相依問題:安裝 nginx 前需先裝 nginx-all-modules,要裝 nginx-all-modules 則需要先裝 nginx-mod-stream,要裝 nginx-mod-stream 卻要求得先裝好 nginx。登楞! 出現迴圈,無解。 - yum 有 --exclude=packageName 、--skip-broken 兩個與相依性有關的參數可用,但實測都無法忽略缺少相依套件錯誤。
- 查到
rpm -ivh --nodeps --force nginx-1.16.1-1.el7.x86_64.rpm
可以無視依賴關係強迫安裝。參考
最後我寫了批次檔,對下載回來的每個套件都跑一次 rpm -ivh --nodeps --force,總算裝好 Nginx,感動!
折騰半天,收獲是再累積一些冷門經驗。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK