本文內(nèi)容: 1. nginx 簡介 2. nginx 安裝 3. nginx 簡單使用
Nginx是一個HTTP服務(wù)器,可以將服務(wù)器上的靜態(tài)文件(如HTML、圖片)通過HTTP協(xié)議展現(xiàn)給客戶端。
Nginx也是反向代理服務(wù)器。
說反向代理之前先說一下正向代理,正向代理相信很多大陸同胞都在這片神奇的土地上用過了。就是訪問國外網(wǎng)被墻了,然后找個代理服務(wù),通過該服務(wù)器訪問國外網(wǎng)站,這個是正向代理。
反向代理是 客戶端訪問代理服務(wù)器,但是代理服務(wù)器沒有用戶需要的資源,然后代理服務(wù)器偷偷訪問應(yīng)用服務(wù)器,獲取資源返回給用戶,用戶不知道代理服務(wù)器是訪問了應(yīng)用服務(wù)器,代理服務(wù)器也隱藏了應(yīng)用服務(wù)器的url。(反向代理的典型用途是將 防火墻后面的服務(wù)器提供給Internet用戶訪問)
Nginx可以通過反向代理來實(shí)現(xiàn)負(fù)載均衡。
2.1.1.添加Nginx到Y(jié)UM源
添加CentOS 7 Nginx yum資源庫,打開終端,使用以下命令:
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm2.2.2.安裝Nginx
在你的CentOS 7 服務(wù)器中使用yum命令從Nginx源服務(wù)器中獲取來安裝Nginx:
sudo yum install -y nginxNginx將完成安裝在你的CentOS 7 服務(wù)器中。
2.2.3. Nginx啟動
nginx -c nginx.conf啟動后就可以訪問 域名或者本機(jī)ip 如果出現(xiàn)下圖,說明啟動成功。
2.2.4. Nginx 停止
//查詢出nginx的pid ps -ef|grep nginx//通過kill 命令殺死 nginx kill pid注意圖中nginx的 pid 為 104972.2.5. Nginx配置信息
網(wǎng)站文件存放默認(rèn)目錄
/usr/share/nginx/html網(wǎng)站默認(rèn)站點(diǎn)配置
/etc/nginx/conf.d/default.conf自定義Nginx站點(diǎn)配置文件存放目錄
/etc/nginx/conf.d/Nginx全局配置
/etc/nginx/nginx.conf2.2.1下載鏡像,
docker pull nginx:1.92.2.2 啟動容器,
docker run -d -p 8080:80 nginx:1.9把容器內(nèi)的nginx的80端口,映射到當(dāng)前服務(wù)器的8080端口,假設(shè)當(dāng)前服務(wù)器的ip是192.168.0.100,瀏覽器輸入http://192.168.0.100:8080/,就可以看到nginx已啟動,
關(guān)于靜態(tài)資源服務(wù)器的使用這里就不做說明了。
小例子:實(shí)現(xiàn)訪問本機(jī) ip 然后代理 我的博地址 ,也就是在瀏覽器輸入本機(jī)地址,然后跳轉(zhuǎn)到我的博客。
如果是本地安裝的nginx 的話需要修改 /etc/nginx/conf.d/default.conf 配置文件
注釋原有的 location 然后替換為新的location
//注釋原有的# location / { # root /usr/share/nginx/html; # index index.html index.htm; # }//新添加的location / { PRoxy_pass http://blog.csdn.net/u012373815?viewmode=list;}然后重啟nginx ,訪問本機(jī)ip 就會代理到“http://blog.csdn.net/u012373815?viewmode=list“ 我的博客地址。
如果是docker 安裝的話,需要本地隨意目錄下新建default.conf 文件,內(nèi)容如下:
server { listen 80; server_name localhost; #charset koi8-r; #access_log /var/log/nginx/log/host.access.log main; location / { proxy_pass http://blog.csdn.net/u012373815?viewmode=list;} error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; }}然后重新啟動容器,將default.conf 文件映射到docker容器內(nèi)。 啟動命令如下:
docker run -p 8080:80 --name myNginx -v /本地路徑/default.conf:/etc/nginx/conf.d/default.conf -d nginx:1.9容器啟動后 ,訪問本機(jī)ip 就會代理到“http://blog.csdn.net/u012373815?viewmode=list“ 我的博客地址。
上面的配置只實(shí)現(xiàn)了反向代理沒有實(shí)現(xiàn)傳說中的負(fù)載均衡。所有的請求就都被反向代理到 我的博客地址去了。這樣我們反向代理的功能是實(shí)現(xiàn)了,可是就能代理到一臺服務(wù)器上哪有什么負(fù)載均衡呀?這就要用到 nginx 的 upstream 模塊了。
upstream backend { ip_hash; server backend1.example.com; server backend2.example.com; server backend3.example.com; server backend4.example.com;}location / { proxy_pass http://backend;}我們在 upstream 中指定了一組機(jī)器,并將這個組命名為 backend,這樣在 proxypass 中只要將請求轉(zhuǎn)移到 backend 這個 upstream 中我們就實(shí)現(xiàn)了在四臺機(jī)器的反向代理加負(fù)載均衡。其中的 iphash指明了我們均衡的方式是按照用戶的 ip 地址進(jìn)行分配。 要讓配置生效,我們不必重啟 nginx 只需要 reload 配置即可。
參考資料: http://blog.csdn.net/u012486840/article/details/52610320 http://www.CUoXIn.com/article/61137.htm
新聞熱點(diǎn)
疑難解答
圖片精選