Linux系統安裝並配置nginx實現多服務同一埠

大牙有話說發表於2022-03-07

 

基本訴求是專案要實現併發,因為用了深度學習框架,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

 

 

相關文章