[toc] # Nginx安装和端口转发 ## 1.下载相应的依赖,准备安装包 ```shell yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel pcre-devel ``` 上传安装包到 /usr/local/src路径下 [nginx-1.16.1.tar.gz] 下载地址http://nginx.org/download/nginx-1.16.1.tar.gz ## 2.解压安装包,配置安装模块 ```shell //解压 tar -zxvf nginx-1.16.1.tar.gz //进入解压后的文件 cd nginx-1.16.1 // 指定安装目录 ./configure --prefix=/data/work/nginx --with-stream --with-http_ssl_module ``` ![](http://dc.zjhcsoft.com:25680/mindoc/uploads/deliver/images/m_7af85e6663efc81d804c82d9cf69a458_r.png) ```shell //编译(通过gcc进行编译) make //编译安装 make install ``` ![](https://img.kancloud.cn/5b/c8/5bc87126a2b5b2d61f91f238738aa146_660x229.png) ```shell //进入安装目录,查看详细信息 cd nginx ``` ![](https://img.kancloud.cn/2a/64/2a64de566611eb8189d21654e0ec6d24_364x96.png) conf:配置文件文件夹,其中nginx.conf是核心配置文件 html:里边包含了欢迎首页(index.html)和错误页(50x.html) logs:记录日志目录 sbin:里边有nginx文件,启动文件 至此,nginx 安装完成! ### 补装模块 > 有些小伙伴安装nginx的时候`configure`配置没有安装SSL模块。当然,这些都是经常需要安装的部分,在本教程中前面的部分中已经安装了。如果缺失再按照这里的方法进行安装。 ``` ./configure --with-http_ssl_module --with-stream --prefix=/data/work/nginx ## 不要执行make install make ``` 覆盖原先nginx目录中的nginx文件。 ``` cp objs/nginx /data/work/nginx/sbin/nginx ``` ## 3.Nginx一些简单命令 ### 1.启动 ```shell #切换到sbin目录下,执行 ./nginx 简单启动,默认配置文件 最常用的方式 /data/work/nginx/sbin/nginx -c /userxxxxxxx/local/nginx/conf/nginx.conf #其中 -c 是指定配置文件,指定任意目录的配置文件 //查看 ps -ef | grep nginx ``` 启动后默认的开启服务端口是80,在浏览器直接输入IP可以出现如下图页面。如果80端口未开放的话,自行修改。 ![](http://dc.zjhcsoft.com:25680/mindoc/uploads/deliver/images/m_f6c5a2566ac2b406d81d60776e37bced_r.png) ### 2.关闭 ```shell //找出nginx进程 ps -ef | grep nginx //执行命令,pid是主进程的pid kill -QUIT 主pid //注意在安装目录sbin下 ./nginx -s reload ``` ### 3.查看版本 ```shell -v:小写,显示nginx版本 /usr/local/nginx/sbin/nginx -v -V:大写,显示nginx版本、编译器版本和配置参数 /usr/local/nginx/sbin/nginx -V ``` ## 4.配置修改与做数据库端口映射 找到/usr/local/nginx/conf路径下的nginx.conf文件修改 ![](http://dc.zjhcsoft.com:25680/mindoc/uploads/deliver/images/m_6bae76af4872e716de78487eb4b26b60_r.png) 改成你想要的端口,并重启nginx,这样之后在页面输入ip+端口就可以直接访问如上的nginx服务器成功启动页面 有个这样的场景,我想让在访问服务器3307端口的时候正好是访问数据库的3306端口,我们可以通过nginx做端口的转发。修改配置如下,看图应该就能看懂吧。 ![](http://dc.zjhcsoft.com:25680/mindoc/uploads/deliver/images/m_ef4ef771cf454f180dd82de0495e2b7d_r.png) ```shell events { worker_connections 1024; } stream { upstream mysql { server 139.196.33.93:3306; } upstream oracle { server 139.196.33.93:1521; } server { listen 3307; proxy_pass mysql; } server { listen 1525; proxy_pass oracle; } } ``` 现在数据库就可以通过其他端口连接了连接了