最近想要擴展下後端技術知識 所以打算深入瞭解下nginx 並自己搭建一下感受一下。
希望大家也是一樣 ,自己動手試一遍 會有不同的體會。下面進入正題吧!
相信想要實際操作ngnix的 都應該有所瞭解它的基本知識。
我這裏緊緊解決關於負載均衡 爲了解決併發和前後端分離的實操。
前期準備:
centos 7.0(服務器)
nginx-1.8.0.tar.gz(nginx安裝包)
apache-tomcat-8.5.41.tar(tomcat安裝包)
fillzila(文件傳輸工具)
安裝包稍後放在百度雲 需要其他版本的自己下載
鏈接:https://pan.baidu.com/s/1UPs4D-6bwzl1_jORni2-7Q 密碼:rha9
1.將nginx-1.8.0.tar.gz通過fillzila上傳至centos服務器 並解壓
tar zxvf nginx-1.8.0.tar.gz
2.安裝nginx的依賴庫
yum install pcre
yum install pcredevel yum install zlib
yum install zlibdevel yum install openssl
3.進入解壓後的目錄進行配置(默認配置也可以)
cd nginx-1.8.0
./configure \
prefix=/usr/local/nginx \ pidpath=/var/run/nginx/nginx.pid \ lockpath=/var/lock/nginx.lock \ errorlogpath=/var/log/nginx/error.log \ httplogpath=/var/log/nginx/access.log \ withhttp_gzip_static_module \ httpclientbodytemppath=/var/temp/nginx/client \ httpproxytemppath=/var/temp/nginx/proxy \ httpfastcgitemppath=/var/temp/nginx/fastcgi \ httpuwsgitemppath=/var/temp/nginx/uwsgi \ httpscgitemppath=/var/temp/nginx/scgi \ addmodule=/usr/local/fastdfs module/src
4.安裝並編譯
make && make install
5.啓動ngnix
cd /usr/local/nginx/sbin
./nginx
此處有可能報錯:nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
原因是 你本地80端口被佔用,解決方式有兩種
1.查看本地佔用80端口的進程並殺死(個人不建議)
2.修改配置文件改端口
cd /usr/local/nginx/conf
vim nginx.conf
將端口改成其他端口 我這裏改成了90端口
修改好後從新編譯
make && make install
6.編譯成功後測試訪問 http://ip:90界面如下安裝成功
**
接下來配置tomcat
**
1.將tomcat上傳至服務器並解壓 操作如下
tar -xvf apache-tomcat-8.5.41.tar
2.tomcat解壓後的文件重命名 操作如下
mv apache-tomcat-8.5.41 tomcat1
mv apache-tomcat-8.5.41 tomcat2
3.分別對兩個tomcat的 server.xml進行端口修改
cd tomcat1/conf/
vim server.xml
作如下修改
<?xml version="1.0" encoding="UTF-8"?>
<!-- 1 默認8005改成8007 -->
<Server port="8006" shutdown="SHUTDOWN">
<!-- 2 Http默認8080 改成9082 -->
<Connector port="9081" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<!-- 3 AJP默認8009 改成8011 -->
<Connector port="8011" protocol="AJP/1.3" redirectPort="8443" />
接下來修改tomcat2的server.xml
cd tomcat2/conf/
vim server.xml
作如下修改
<?xml version="1.0" encoding="UTF-8"?>
<!-- 1 默認8005改成8007 -->
<Server port="8007" shutdown="SHUTDOWN">
<!-- 2 Http默認8080 改成9082 -->
<Connector port="9082" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
<!-- 3 AJP默認8009 改成8011 -->
<Connector port="8011" protocol="AJP/1.3" redirectPort="8443" />
4.進入相應tomcat目錄並運行
# 進入tomcat目錄
cd /相對路徑/tomcat1
# 運行tomcat
/bin/startup.sh
5.瀏覽器訪問對應http://ip:9081。 http://ip:9082測試 是否tomcat啓動成功
6.配置nginx.conf
cd /usr/local/nginx/conf
vim nginx.conf
# 按下面進行增加和編輯,完成後 :wq 保存。不會使用 vi/ vim。你應該上網搜搜。
http {
# 省略代碼....
# 增加 upstream, 名稱爲 serverlist
upstream serverlist{
server localhost:9081 weight=1; # weigh表示權重,越大訪問的機率越多
server localhost:9082 weight=1;
server localhost:9083 weight=1;
}
# 編輯
server {
listen 80;
server_name www.yourdomian.com;
location / {
# 這裏使用定義 serverlist
proxy_pass http://serverlist;
}
7.重啓nginx現在就可以通過你的域名進行訪問了。多次刷新就可以看到網站顯示是哪個tomcat的內容。