基本訴求是專案要實現併發,因為用了深度學習框架,tornado服務無法通過以下方式多程式開啟服務,
http_server.bind(port) http_server.start(n) #n為程式數
所以,尋求其它方式實現併發。服務是通過docker映象提供的,在容器內容將服務複製一份,起多個服務實現併發,問題是這樣多個服務api相同,但埠號不同,涉及到怎樣向外只提供一個埠。因此學習使用nginx進行埠轉發。
配置的機器可聯網,有root許可權,Ubuntu系統,整體過程還算簡單,但中間也有一些坑,不過通過萬能的度娘都解決了,特此記錄。
配置nginx:
1.安裝依賴
openssl / libssl-dev / gcc-c++
sudo apt-get install openssl
sudo apt-get install libssl-dev
sudo apt-get install gcc-c++
sudo apt-get gcc build-essential
sudo apt-get zlib
sudo apt-get zlib-devel
2.安裝PCRE
下載安裝包,命令列依次輸入:
cd /usr/local/src/ wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz
解壓安裝包,進入目錄,編譯安裝,檢視pcre版本
tar xzvf pcre-8.35.tar.gz cd pcre-8.35 ./configure #編譯若出錯檢查依賴安裝是否缺漏 make & make install pcre-config --version
3.安裝nginx
下載安裝包,命令列依次輸入:
下載地址:https://nginx.org/en/download.html
cd /usr/local/src/
wget http://nginx.org/download/nginx-1.6.2.tar.gz
解壓安裝包,進入目錄,編譯安裝,啟動nginx
tar xzvf nginx-1.6.2.tar.gz
cd nginx-1.6.2
./configure --prefix=/usr/local/src/nginx --with-http_ssl_module --with-http_stub_status_module #編譯若出錯檢查依賴安裝是否缺漏
make & make install
進入/usr/local/src/nginx目錄,
./nginx #啟動nginx
啟動nginx時失敗!!!
[root@party-0]#find / -type f -name *libpcre.so.* #檢視libpcre.so檔案位置
[root@party-0]#ln -s /lib/x86_64-linux-gnu/libpcre.so.3.13.2 /lib/x86_64-linux-gnu/libpcre.so.1 #建立軟連結
再重新啟動就成功了。
檢視nginx是否成功啟動
[root@party-0]#ps -ef | grep nginx
4.配置nginx
cd /usr/local/src/nginx/conf #進入配置檔案目錄目錄
vim ngin.conf #開啟配置檔案
找到如圖所示的位置,新增紅框裡的內容。
第一個紅框:
upstream searchsvr{ #searchsvr 與第三個紅框中的proxy_pass後名字一致 server 10.80.33.139:8999; #ip為本地機器ip,埠是服務的埠,需要代理的埠都寫在這裡 server 10.80.33.139:7766; }
第二個紅框中,修改埠號為向外提供的唯一埠。如上,對客戶提供9000埠,代理內部服務的兩個埠8999和7766.
第三個紅框:
location /hot{ #/hot為服務的api proxy_pass http://searchsvr; #searchsvr與第一個紅框中名字對應 }
配置完成,重啟nginx
cd /usr/local/src/ngin/sbin #進入nginx目錄 ./nginx -s reload #重啟nginx
完成!
新手上車,內容若有錯誤造成誤導,歡迎留言指正~
參考網址及其它問題解決方法網址:
runoob.com NGINX安裝配置教程: https://www.runoob.com/linux/nginx-install-setup.html
nginx安裝 : https://www.cnblogs.com/smfx1314/p/10546158.html
ubuntu使用yum命令報錯解決方法: https://blog.csdn.net/liuchang__/article/details/78485568
./nginx: error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such啟動nginx失敗:https://blog.csdn.net/weixin_44297303/article/details/89505398
nginx啟動失敗 https://www.cnblogs.com/cnsanshao/p/3652510.html
https://www.cnblogs.com/achengmu/p/9093814.html
http://www.xwood.net/_site_domain_/_root/5870/5874/t_c278506.html
安裝openssl-dev報錯:https://blog.csdn.net/liujian8654562/article/details/101113461