具體安裝配置參考之前的文章
@
一,nginx操作的常用命令
使用nginx
操作命令的前提條件:必須進入nginx
的目錄
/usr/local/nginx/sbin
# 查看nginx版本號
./nginx -v
# 關閉nginx
./nginx -s stop
# 開啟nginx
./nginx
# 重新加載nginx
./nginx -s reload
nginx配置文件
nginx
配置文件的位置
nginx
配置文件由三部分組成
-
第一部分,全局塊
- 從配置文件開始到
events
塊之間的內容,主要會設置一些影響nginx
服務器整體運行的配置指令。 - 比如
word_processes 1
;值越大,可以支持的並發處理量也越多。
- 從配置文件開始到
-
第二部分,
events
塊events
塊設計的指令主要影響nginx
服務器與用戶的網絡連接,- 比如
worker_connections 1024
;支持的最大連接數。
-
第三部分,
http
塊nginx
服務器配置中最頻繁的部分http
塊也包括http
全局塊、server
塊。
二,nginx配置反向代理(1)
反向代理的本質目的:當window
瀏覽器訪問192.168.186.128
並且端口是80時,nginx會轉發到http://127.0.0.1:8080的地址。
首先啟動linux
虛擬機中的tomcat
(進入tomcat
的bin
目錄中,執行./startup.sh
文件開啟tomcat
)
可以訪問到
進入nginx
的配置文件中,修改server_name
為linux
本機的ip
地址。
這樣子配置以后,當window
瀏覽器訪問192.168.186.128
並且端口是80時,nginx會轉發到http://127.0.0.1:8080的地址。
配置完成,還需要重新加載nginx
才能生效
cd /usr/local/nginx/sbin 進入sbin目錄
# 執行命令重新加載
./nginx -s reload
然后就實現了nginx
反向代理。
三,nginx配置反向代理(2)
要實現的效果:使用nginx反向代理,根據訪問的路徑不同跳轉到不同的服務端口中。
准備工作:准備兩個tomcat服務器,一個8080端口,一個8081端口。
首先把剛才的tomcat進程殺掉
[root@bogon src]# ps -ef | grep tomcat
root 8298 1 0 22:36 pts/0 00:00:04 /usr/local/java/jdk1.8.0_231/bin/java -Djava.util.logging.config.file=/opt/apache-tomcat-7.0.96/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048 -Dignore.endorsed.dirs= -classpath /opt/apache-tomcat-7.0.96/bin/bootstrap.jar:/opt/apache-tomcat-7.0.96/bin/tomcat-juli.jar -Dcatalina.base=/opt/apache-tomcat-7.0.96 -Dcatalina.home=/opt/apache-tomcat-7.0.96 -Djava.io.tmpdir=/opt/apache-tomcat-7.0.96/temp org.apache.catalina.startup.Bootstrap start
root 8949 2973 0 23:17 pts/0 00:00:00 grep --color=auto tomcat
[root@bogon src]# kill 8298
[root@bogon src]# ps -ef | grep tomcat
root 8957 2973 0 23:18 pts/0 00:00:00 grep --color=auto tomcat
然后在/usr/src
目錄下新建兩個文件夾tomcat8080
和tomcat8081
,使用xftp
分別給這兩個文件夾傳入tomcat壓縮包。
如果上傳錯誤就是用命令chmod 777 文件夾名
賦予權限就可以了。
分別解壓
tar -xvf apache-tomcat-7.0.96.tar.gz
啟動8080端口的tomcat
啟動8081端口的tomcat
,解壓之后進入到tomcat
的conf
目錄中,編輯server.xml
配置文件
[root@bogon tomcat8081]# ls
apache-tomcat-7.0.96 apache-tomcat-7.0.96.tar.gz
[root@bogon tomcat8081]# cd apache-tomcat-7.0.96/
[root@bogon apache-tomcat-7.0.96]# ls
bin BUILDING.txt conf CONTRIBUTING.md lib LICENSE logs NOTICE README.md RELEASE-NOTES RUNNING.txt temp webapps work
[root@bogon apache-tomcat-7.0.96]# cd conf
[root@bogon conf]# ls
catalina.policy catalina.properties context.xml logging.properties server.xml tomcat-users.xml web.xml
[root@bogon conf]# vim server.xml
首先把這個改成8015端口
再分別改成8081端口和8019端口
然后把8081端口的tomcat也啟動起來
[root@bogon bin]# ls
bootstrap.jar catalina-tasks.xml configtest.bat digest.bat setclasspath.sh startup.bat tomcat-native.tar.gz version.bat
catalina.bat commons-daemon.jar configtest.sh digest.sh shutdown.bat startup.sh tool-wrapper.bat version.sh
catalina.sh commons-daemon-native.tar.gz daemon.sh setclasspath.bat shutdown.sh tomcat-juli.jar tool-wrapper.sh
[root@bogon bin]# ./startup.sh
Using CATALINA_BASE: /usr/src/tomcat8081/apache-tomcat-7.0.96
Using CATALINA_HOME: /usr/src/tomcat8081/apache-tomcat-7.0.96
Using CATALINA_TMPDIR: /usr/src/tomcat8081/apache-tomcat-7.0.96/temp
Using JRE_HOME: /usr/local/java/jdk1.8.0_231
Using CLASSPATH: /usr/src/tomcat8081/apache-tomcat-7.0.96/bin/bootstrap.jar:/usr/src/tomcat8081/apache-tomcat-7.0.96/bin/tomcat-juli.jar
Tomcat started.
創建文件夾和測試頁面,做測試的准備工作。
分別在兩個tomcat
的webapps
文件夾中新建文件夾;
在8080端口的tomcat
的webapps
中新建文件夾edu
,在edu
中新建html
文件<h1>8080端口</h1>
;
在8081端口的tomcat
的webapps
中新建文件夾vod
,在vod
中新建html
文件<h1>8081!!</h1>
;
然后分別在windows
瀏覽器訪問
找到nginx配置文件,進行反向代理的配置
[root@bogon vod]# cd /usr/local/nginx/conf
[root@bogon conf]# ls
fastcgi.conf fastcgi_params koi-utf mime.types nginx.conf scgi_params uwsgi_params win-utf
fastcgi.conf.default fastcgi_params.default koi-win mime.types.default nginx.conf.default scgi_params.default uwsgi_params.default
[root@bogon conf]# vim nginx.conf
添加一下配置
說明:監聽192.168.186.128:9001
地址,如果后面路徑是edu
,轉發到http://127.0.0.1:8080地址;如果后面地址vod
,則轉發到http://127.0.0.1:8081地址。
然后重新加載nginx,進到/usr/local/nginx/sbin
目錄
# 先關掉nginx
./nginx -s stop
# 再開啟nginx
./nginx
測試:在windows瀏覽器中訪問
nginx反向代理就完成了。
四,nginx配置負載均衡
實現效果:瀏覽器地址欄輸入http://192.168.186.128/edu/a.html,負載均衡效果,平均到8080端口和8081端口中。
准備工作:
- 兩台tomcat服務器,一個8080端口,一個8081端口,上面已經准備過了。
- 在兩台
tomcat
的webapps
目錄中分別都創建edu
文件夾,在edu
文件夾中新建a.html
文件 - 在nginx的配置文件中進行負載均衡的配置
負載均衡配置
在下面的位置添加以下配置。
在server{}中再加入以下規則
測試:在window瀏覽器進行訪問
刷新以下瀏覽器,會訪問8081端口的tomcat,一直刷新一直在切換。
這說明nginx把多次請求平均分攤到不同的服務器中,實現了負載均衡。
nginx負載均衡的分配服務器策略
第一種:輪詢
每個請求按時間順序逐一分配到不同的后端服務器,如果后端服務器down掉,能自動剔除。
第二種:weight權重
weight代表權重,默認是1,權重越高被分配的客戶端越多。
upstream myserver {
server 192.168.186.128:8080 weight=5;
server 192.168.186.128:8080 weight=10;
}
第三種:ip_hash
每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問要給后端服務器,可以解決session共享的問題(單點登錄會遇到這個問題)。
upstream myserver {
ip_hash;
server 192.168.186.128:8080;
server 192.168.186.128:8080 ;
}
第四種:fair(第三方)
按后端服務器的響應時間來分配請求,響應時間短的優先分配。
upstream myserver {
server 192.168.186.128:8080;
server 192.168.186.128:8080 ;
fair;
}