學委之前寫過 Docker玩膩了,不妨試試用Vagrant 和 Vagrant使用筆記
最近Nginx很火(這玩意很多年了),學委16年就開始用了,這裡總結準備了一鍵安裝的方法,送給大家,學會不用花冤枉錢買更多強勁伺服器了!
跟着一步一步學習一下,文末有一鍵安裝的技巧(自動幫你源碼編譯!)
Nginx 是什麼
它是一個輕量級的高性能的 Web 伺服器 / 反向代理伺服器,同時也是一個IMAP/POP3/SMTP 代理伺服器。
反正是一個好東西來着,“伺服器中的超跑”值得耐心學習一下!主要是性能強,做個簡單站點不用花太多錢買更高配置。
小白不太清楚作用,可以把它當做一個很牛的伺服器軟體!我們可以在這個伺服器軟體内放置自己制作的漂亮頁面。
這裡展示安裝重點,然後學委最後會修改一下頁面,一起看看吧。
安裝 - 源碼編譯安裝Nginx
下面是親測可用的腳本(早在幾年前就放在學委的Github上了,現在運作還是完美的!)
儲存代碼為leixuewei.sh, 并在CentOS7運作。
systemctl stop firewalld.service
#use alibaba yum repo
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup`date '+%Y%m%d_%H%M%S'`
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache
#get netstat
yum -y install net-tools
yum -y vim
#get deps to compile python modules
yum -y install gcc automake autoconf libtool make
yum -y install gcc
yum -y install gcc-c++
mkdir /toolings/xuewei
cp /tmp/*.tar.gz /toolings/xuewei
cd /toolings/xuewei
nginx=/toolings/xuewei/nginx/nginx
#for url rewrite
if [ ! -e pcre.tar.gz ] ; then curl -k https://jaist.dl.sourceforge.net/project/pcre/pcre/8.34/pcre-8.34.tar.gz -o pcre.tar.gz ; fi
tar -zxvf pcre.tar.gz
if [ ! -e $nginx ] ; then cd pcre-8.34 && ./configure && make && make install ; fi
cd /toolings/xuewei
if [ ! -e zlib.tar.gz ] ; then curl -k https://nchc.dl.sourceforge.net/project/libpng/zlib/1.2.11/zlib-1.2.11.tar.gz -o zlib.tar.gz ; fi
tar -zxvf zlib.tar.gz
if [ ! -e $nginx ] ; then cd zlib-1.2.11/ && ./configure && make && make install ; fi
cd /toolings/xuewei
if [ ! -e openssl.tar.gz ] ; then curl -k https://www.openssl.org/source/openssl-1.0.1t.tar.gz -o openssl.tar.gz ; fi
tar -zxvf openssl.tar.gz
cd openssl-1.0.1t/
./config shared zlib --prefix=/toolings/xuewei/openssl
if [ ! -e $nginx ] ; then make && make install ; fi
cd /toolings/xuewei
if [ ! -e nginx.tar.gz ] ; then curl http://nginx.org/download/nginx-1.4.2.tar.gz -o nginx.tar.gz ; fi
tar -zxvf nginx.tar.gz
cd nginx-1.4.2/
./configure --sbin-path=/toolings/xuewei/nginx/nginx \
--conf-path=/toolings/xuewei/nginx/nginx.conf \
--pid-path=/toolings/xuewei/nginx/nginx.pid \
--with-http_ssl_module \
--with-pcre=/toolings/xuewei/pcre-8.34 \
--with-zlib=/toolings/xuewei/zlib-1.2.11 \
--with-openssl=/toolings/xuewei/openssl-1.0.1t
if [ ! -e $nginx ] ; then make && make install ; fi
ln -s $nginx /usr/bin/nginx
cd /toolings/xuewei/nginx && ls -rtla
#netstat -ano|grep 80
netstat -tulnp|grep 80
cd / && nohup /toolings/xuewei/nginx/nginx &
netstat -tulnp|grep 80|egrep -v '80[0-9]+'
echo "[雷學委溫馨提示] nginx is started"
代碼解析:
上面的代碼主要分為3步
- 檢查是否需要,否則下載下傳依賴軟體
- 一個一個編譯依賴軟體
- 編譯安裝nginx然後啟動
這就啟動了一個Web伺服器了,上面的腳本跑完效果如下:

一鍵安裝
上的代碼需要配置一台Linux虛拟機或者有一台Linux伺服器,比較麻煩。
是以建立一個目錄放置Vagrantfile,然後跑vagrant up啟動完事。
具體操作如下,完成一次操作以後都能反複用。
建立一個目錄裡面放置Vagrantfile
是以學委準備了下面的Vagrantfie。
Vagrant.configure("2") do |config|
config.vm.box = "centos/7"
config.vm.box_check_update = false
config.vm.provider "virtualbox"
$num_vms = 1
(1..$num_vms).each do |id|
config.vm.define "nginxbox#{id}" do |node|
node.vm.hostname = "nginxbox#{id}"
#node.vm.network :private_network, ip: "10.64.4.#{id}", auto_config: true
config.vm.network "forwarded_port", guest: 80, host: 80, auto_correct: true # nginx
node.vm.provider :virtualbox do |vb, override|
vb.name = "雷學委Demo的Nginxbox#{id}"
vb.gui = false
vb.memory = 2048
vb.cpus = 1
end
config.vm.provision "shell", path: "leixuewei.sh"
end
end
end
然後打開終端運作vagrant up
這樣就一鍵啟動安裝Nginx了, 做成的虛拟機還能分享給其他人呢。
其他操作(非必要操作)
如果想要加快安裝的朋友,需要學習更多Vagrant知識-> Vagrant使用筆記,然後把下面的内容加到Vagrantfile。并跟着下載下傳軟體包。
config.vm.provision "file", source: "lib/nginx-1.4.2.tar.gz", destination: "/tmp/nginx.tar.gz"
config.vm.provision "file", source: "lib/openssl-1.0.1t.tar.gz", destination: "/tmp/openssl.tar.gz"
config.vm.provision "file", source: "lib/pcre-8.34.tar.gz", destination: "/tmp/pcre.tar.gz"
config.vm.provision "file", source: "lib/zlib-1.2.11.tar.gz", destination: "/tmp/zlib.tar.gz"
config.vm.provision "file", source: "nginx.conf", destination: "/tmp/nginx.conf"
讀者可以先去下載下傳相關依賴
https://nchc.dl.sourceforge.net/project/libpng/zlib/1.2.11/zlib-1.2.11.tar.gz
https://www.openssl.org/source/openssl-1.0.1t.tar.gz
https://jaist.dl.sourceforge.net/project/pcre/pcre/8.34/pcre-8.34.tar.gz
http://nginx.org/download/nginx-1.4.2.tar.gz
非必選,下載下傳上面的包放到目前目錄的lib下面。
學點原理,然後定制頁面試試
預設安裝nginx内部如何運作?
nginx通過讀取/toolings/xuewei/nginx/nginx.conf檔案,加載内部的server子產品。
server子產品内監聽了80端口,同時影射了網站到目前目錄的html檔案夾(也就是/toolings/xuewei/nginx/html目錄),加載裡面的靜态檔案。
好了,就知道這麼多就夠了。
我們進入虛拟機(Linux主機)内的/toolings/xuewei/nginx/html目錄,找到下面的index.html. 改一下标題和歡迎内容為中文,如下:
改掉主要是:
- 修改title标簽塊,标題加了’[雷學委]’
- 修改body内的h1标簽塊的文本改為:歡迎使用Nginx
儲存重新整理浏覽器頁面,改動馬上生效哦!因為是Nginx是直接加載html目錄的靜态資源的。
重點來了:怎麼把預設網站成個人站點
很好辦,把個人網頁打包解壓到上面的html目錄,覆寫裡面的檔案包括index.html。
Nginx很輕量還支援大并發(單台萬級并發),網站加載速度直接起飛!當然,除非别人也是Nginx。
就分享這麼多,先用起來。
如果是有動态網站的,把靜态内容直接nginx處理,動态的交給像tomcat這種,性能至少翻倍提高,懂了吧!這個後面會細講。
對了,學委還有這個可以關注長期閱讀 =>雷學委趣味程式設計故事彙編
或者=> 雷學委NodeJS系列
持續學習持續開發,我是雷學委!
程式設計很有趣,關鍵是把技術搞透徹講明白。
歡迎關注,還有盡情點贊收藏!