centos7.2 源码编译安装nginx,实现tcp反向代理,不中断服务新增编译模块
2017-11-09 17:45
956 查看
我们很多时候,需要将局域网内服务器集群中的某台机器的某个端口映射到外网,可以直接通过代理服务器连接到局域网内的电脑,进行操作。而nginx除了能实现http的反向代理外和负载均衡外,还能实现tcp的反向代理,做数据库的负载均衡。非常的方便简介,平时还可以作为nat网关一样来使用,棒棒的
下面讲一下如何实现nginx 的tcp反向代理,首先,直接用yum安装的nginx,是默认不安装tcp模块的,所以需要自己编译nginx源码进行 安装,从nginx 1.9版本开始,安装包内就自带了tcp模块,只需要在安装的时候,声明一下一起安装就行了。
1 . 首先,下载nginx 。官网下载: http://nginx.org/en/download.html
编译完后,在/usr/local/下会出现一个nginx文件夹,里面sbin里的nginx则为运行文件。配置文件为conf/nginx.conf 修改配置文件,添加如下内容:
保存退出,启动nginx ,然后尝试用连接 该ip的监听端口,则显示成功连接到数据库。
到此。则可以正常访问远程局域网内的数据库了。
然后,当你nginx已经正常使用中,由于新的需求常会 需要新增模块,按照下面方法,可以实现无缝新增模块,不需要关闭nginx,不中断服务。无任何影响## 首先,进入之前安装nginx的源码目录
cd /usr/local/nginx-1.12.1 ## 我的目录为这个
## 这里随意写入你要新增的模块,可以写任意多个,但是注意要包含已存在模块,避免正在使用的原服务出问题
./configure --with-stream --with-stream_ssl_module --with-http_stub_status_module --with-xxxxxx --with-xxxxx --user=nginx --group=nginx
make ## 编译
## 重点!很多网上博文说不要make install。其实不然,make install会自动将新编译好的nginx运行程序替换原程序,且不会中断服务,也不会删除任何已存在的缓存,日志等
make install
## 然后进入nginx目录,重启一下nginx即可
cd /usr/local/nginx
killall nginx && sbin/nginx
## 查看nginx模块,看看是否安装上了
sbin/nginx -V
OK,就到这里,有任何疑问或问题的,欢迎留言,看到就会回答
下面讲一下如何实现nginx 的tcp反向代理,首先,直接用yum安装的nginx,是默认不安装tcp模块的,所以需要自己编译nginx源码进行 安装,从nginx 1.9版本开始,安装包内就自带了tcp模块,只需要在安装的时候,声明一下一起安装就行了。
1 . 首先,下载nginx 。官网下载: http://nginx.org/en/download.html
wget http://nginx.org/download/nginx-1.12.1.tar.gz yum -y install gcc gcc-c++ automake pcre pcre-devel zlib zlib-devel openssl openssl-devel ## 安装一些依赖包 tar -zxvf nginx-1.12.1.tar.gz ## 解压 mv nginx-1.12.1 /usr/local/ ## 放入/usr/local/目录下,推荐,当然也可以是别的位置 cd nginx-1.12.1 ## 进入解压后的文件价 groupadd nginx ## 添加用户组 useradd nginx -g nginx -s /sbin/nologin -M ## 添加用户名 ./configure --with-stream --with-stream_ssl_module --with-http_stub_status_module --user=nginx --group=nginx ## 加入tcp模块,https模块和状态监控模块一起编译(需要什么模块根据自己的需求进行编译),并指定用户名,用户组 make && make install ## 编译 安装
编译完后,在/usr/local/下会出现一个nginx文件夹,里面sbin里的nginx则为运行文件。配置文件为conf/nginx.conf 修改配置文件,添加如下内容:
stream { ## stream模块,就跟http模块一样 server { ## 里面乐意有多个监听服务,配置监听端口和代理的ip和端口就可以进行tcp代理了。 listen 12345; proxy_pass 192.168.1.2:3306; } server { listen 12346; proxy_pass 192.168.9.1.3:3306; } ## 在tcp请求代理中,也是可以使用负载均衡的upstream的 upstream mysql{ server 192.168.9.3:3306; server 192.168.9.4:3306; } server { listen 33333; proxy_pass myqsl; } }
保存退出,启动nginx ,然后尝试用连接 该ip的监听端口,则显示成功连接到数据库。
到此。则可以正常访问远程局域网内的数据库了。
然后,当你nginx已经正常使用中,由于新的需求常会 需要新增模块,按照下面方法,可以实现无缝新增模块,不需要关闭nginx,不中断服务。无任何影响## 首先,进入之前安装nginx的源码目录
cd /usr/local/nginx-1.12.1 ## 我的目录为这个
## 这里随意写入你要新增的模块,可以写任意多个,但是注意要包含已存在模块,避免正在使用的原服务出问题
./configure --with-stream --with-stream_ssl_module --with-http_stub_status_module --with-xxxxxx --with-xxxxx --user=nginx --group=nginx
make ## 编译
## 重点!很多网上博文说不要make install。其实不然,make install会自动将新编译好的nginx运行程序替换原程序,且不会中断服务,也不会删除任何已存在的缓存,日志等
make install
## 然后进入nginx目录,重启一下nginx即可
cd /usr/local/nginx
killall nginx && sbin/nginx
## 查看nginx模块,看看是否安装上了
sbin/nginx -V
OK,就到这里,有任何疑问或问题的,欢迎留言,看到就会回答
相关文章推荐
- CentOS源码编译安装Nginx和tcp_proxy module
- CentOS 7.2源码包编译安装nginx-1.10.2
- Centos6.9实现基于源码编译安装LAMP(FPM模块方式)的wordpress应用
- CentOS7 平台 源码编译安装Heartbeat,并实现nginx的HA集群
- Centos 6.3 源码编译安装 Nginx
- CentOS 7.2 安装Nginx服务
- CentOS-6.4 源码包编译安装LNMP +Discuz开源论坛(mysql-5.6.14 +PHP-5.4.21+nginx-1.4.2)
- CentOS源码编译安装Nginx
- centos6.5源码安装和centos7.2使用yum安装httpd后,如何添加模块;以及怎么设置Cache-Control:max-age=?浏览器缓存时间
- 详解Centos7.2安装Nginx实现负载平衡
- 编译安装nginx实现反向代理、负载均衡、缓存功能
- Centos7.2 源码安装Nginx
- CentOS源码编译安装Nginx
- CentOS7.2 源码安装Nginx 1.10.2
- CentOS6.7下使用非root用户(普通用户)编译安装与配置mysql数据库并使用shell脚本定时任务方式实现mysql数据库服务随机自动启动
- centos6.5生产环境编译安装nginx-1.11.3并增加第三方模块ngx_cache_purge、nginx_upstream_check、ngx_devel_kit、lua-nginx
- Centos-Server-Mysql服务(源码编译安装)--(三)
- 编译nginx的源码安装subs_filter模块
- 在CentOS下源码编译安装nginx教程
- RHEL/CentOS服务器上源码编译安装nginx