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

基本诉求是项目要实现并发,因为用了深度学习框架,tornado服务无法通过以下方式多进程开启服务,

python;gutter:true; http_server.bind(port) http_server.start(n) #n为进程数</p> <pre><code> 所以,寻求其它方式实现并发。服务是通过docker镜像提供的,在容器内容将服务复制一份,起多个服务实现并发,问题是这样多个服务api相同,但端口号不同,涉及到怎样向外只提供一个端口。因此学习使用nginx进行端口转发。 配置的机器可联网,有root权限,Ubuntu系统,整体过程还算简单,但中间也有一些坑,不过通过万能的度娘都解决了,特此记录。 配置nginx: 1.安装依赖 openssl / libssl-dev / gcc-c++ </code></pre> <p>sudo apt-get install openssl sudo apt-get install libssl-devsudo apt-get install gcc-c++sudo apt-get gcc build-essentialsudo apt-get zlibsudo apt-get zlib-devel</p> <pre><code> 2.安装PCRE 下载安装包,命令行依次输入: </code></pre> <p>cd /usr/local/src/ wget http://downloads.sourceforge.net/project/pcre/pcre/8.35/pcre-8.35.tar.gz</p> <pre><code> 解压安装包,进入目录,编译安装,查看pcre版本 </code></pre> <p>tar xzvf pcre-8.35.tar.gz cd pcre-8.35 ./configure #编译若出错检查依赖安装是否缺漏 make & make install pcre-config --version</p> <pre><code> 3.安装nginx 下载安装包,命令行依次输入: 下载地址:[https://nginx.org/en/download.html](https://nginx.org/en/download.html) </code></pre> <p>cd /usr/local/src/ wget http://nginx.org/download/nginx-1.6.2.tar.gz</p> <pre><code> 解压安装包,进入目录,编译安装,启动nginx </code></pre> <p>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</p> <pre><code> 启动nginx时失败!!! ;gutter:true;
[root@party-0]#find / -type f -name *libpcre.so.* #查看libpcre.so文件位置

Linux系统安装并配置nginx实现多服务同一端口
[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            #打开配置文件

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

找到如图所示的位置,新增红框里的内容。

第一个红框:

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

Original: https://www.cnblogs.com/wwy-done/p/15953801.html
Author: 大牙有话说
Title: Linux系统安装并配置nginx实现多服务同一端口

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/806785/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球