Linux系统安装并配置nginx实现多服务同一端口

Posted 大牙有话说

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统安装并配置nginx实现多服务同一端口相关的知识,希望对你有一定的参考价值。

 

基本诉求是项目要实现并发,因为用了深度学习框架,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

 

 

以上是关于Linux系统安装并配置nginx实现多服务同一端口的主要内容,如果未能解决你的问题,请参考以下文章

Linux系统中安装Nginx并完成相关配置

Linux系统中安装Nginx并完成相关配置

linux下怎样配置nginx

Linux: 安装Nginx服务,并作为系统服务

一台linux服务器是不是可以装两个nginx服务?

Linux下Nginx安装/启动/重启/停止