nginx linux端口转发配置,Centos 7 下Nginx安装及端口转发配置

安装

# 下载到当前目录

wget https://nginx.org/download/nginx-1.12.2.tar.gz

# 解压到指定目录

tar xzvf nginx-1.12.2.tar.gz -C /opt/tools/

# GCC编译器:编译c语言程序

yum install -y gcc

yum install -y gcc-c++

# PCRE库:支持rewrite模块

yum install –y pcre pcre-devel

# ZLIB库:支持gzip模块

yum install -y zlib zlib-devel

# Openssl库:支持ssl模块

yum install –y openssl openssl-devel

安装方式有两种,默认配置安装以及指定配置安装,不熟悉Linux操作的话建议直接默认安装,熟悉Linux操作的话建议使用第二种方式安装,可控性高

# 默认配置安装

./configure

# 编译

make

# 安装

make install

24a782466d25?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

安装过程截图

## 指定安装目录等配置

./configure \

--prefix=/usr/local/nginx \

--conf-path=/usr/local/nginx/conf/nginx.conf \

--pid-path=/usr/local/nginx/conf/nginx.pid \

--lock-path=/var/lock/nginx.lock \

--error-log-path=/data/log/nginx/error.log \

--http-log-path=/data/log/nginx/access.log \

--with-http_gzip_static_module \

--with-http_ssl_module \

--http-client-body-temp-path=/data/temp/nginx/client \

--http-proxy-temp-path=/data/temp/nginx/proxy \

--http-fastcgi-temp-path=/data/temp/nginx/fastcgi \

--http-uwsgi-temp-path=/data/temp/nginx/uwsgi \

--http-scgi-temp-path=/data/temp/nginx/scgi

24a782466d25?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

安装过程截图

启动、停止

cd /usr/local/nginx/sbin/

# 开启

./nginx

# 快速停止

./nginx -s stop

# 如果还在服务中则不会停止,直到服务结束

./nginx -s quit

# 重新加载配置文件

./nginx -s reload

本地端口转发

修改nginx.conf,每一个转发都是一个server配置

# 将域名this.is.a.demo.1.com.cn的所有流量转发到8080端口

# 其实真实访问地址就是将“this.is.a.demo.1.com.cn” 替换成 “http://127.0.0.1:8080”

server {

listen 80;

server_name this.is.a.demo.1.com.cn;

access_log /data/logs/nginx/demo1.log;

location / {

proxy_pass http://127.0.0.1:8080;

proxy_redirect default;

}

}

# 将域名this.is.a.demo.2.com.cn/demo的所有流量转发到8081端口

# 注意 “http://127.0.0.1:8081/demo/”最后的‘/’

server {

listen 80;

server_name this.is.a.demo.2.com.cn;

access_log /data/logs/nginx/demo2.log;

location /demo {

proxy_pass http://127.0.0.1:8081/demo/;

}

}

# HTTPS 支持

server {

listen 443;

server_name this.is.a.https.demo.com.cn;

ssl on;

ssl_certificate cert/https-demo.pem;

ssl_certificate_key cert/https-demo.key;

ssl_session_timeout 5m;

ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

ssl_prefer_server_ciphers on;

location / {

proxy_pass http://127.0.0.1:8081/https-demo/;

}

}

踩坑经历

ssl模块缺失

报错信息

nginx: [emerg] unknown directive "ssl" in /usr/local/nginx/conf/vhost/ssl.conf

原因

Nginx编译安装的时候没有安装http_ssl_module,所以不支持Https

解决方法

进入之前编译过的Nginx目录,重新编译将ssl模块加进去

./configure --with-http_ssl_module

# 此处make就可以了,千万不要make install,否则会覆盖掉之前安装的

make

# 用新编译的nginx替换原来的,最好是先将服务停掉

cp objs/nginx /usr/local/nginx/sbin/nginx

# 重新启动Nginx服务即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值