Nginx反向服务器搭建
Nginx环境搭建
下载解压Nginx源码包
可以通过已有的压缩包
这里也可以通过yum的在线下载
wget http://nginx.org/download/nginx-1.13.7.tar.gz
tar -zxf nginx-1.14.2.tar.gz -C [目标路径]
安装nginx
进入解压后的源码包内
cd nginx-1.14.2/
执行命令之前,要做一件事情,解决依赖,不然安装不了nginx
一键安装依赖包
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
开始安装nginx
执行 ./configure
以下表示成功
编译 make
安装 make install
设置配置文件
vim conf/nginx.conf
启动命令
nginx启动命令在 /usr/local/nginx/sbin/
目录下
可以拷贝到 /usr/bin/
快捷启动
./nginx
启动
指定配置文件启动
nginx -c /usr/local/nginx/conf/nginx.conf
./nginx -s stop
关闭
./nginx -s reload
重启
iptables需要开启80端口否则无法访问,
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
简单配置端口转发
进入配置文件
vim conf/nginx.conf
创建一个新的应用服务器来转发端口
server {
# 监听8090端口
listen 8090;
location / {
# 访问8090端口转发到80端口的应用服务器上
proxy_pass http://127.0.0.1:80;
}
}
重启nginx nginx -s reload
通过配置负载均衡池配置端口转发
进入配置文件
vim conf/nginx.conf
# 配置负载均衡池
upstream demo_pool{
server 127.0.0.1:80;
}
server {
listen 1234; #拦截端口
server_name demo.com; #域名配置
# access_log logs/bolg.log;
# error_log logs/bolg.error;
#将所有请求转发给dome_pool池的应用处理
location / {
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://demo_pool; #如果是ssl更改成https
}
}
访问 http://192.168.80.11:1234
server_name的匹配
server {
listen 80;
server_name www;
location / {
default_type text/html;
content_by_lua '
ngx.say("<p>www</p>")
';
}
}
server {
listen 80;
server_name www.r0cky.com;
location / {
default_type text/html;
content_by_lua '
ngx.say("<p>www.r0cky.com</p>")
';
}
}
server {
listen 80;
server_name www.r0cky.*;
location / {
default_type text/html;
content_by_lua '
ngx.say("<p>www.r0cky.*</p>")
';
}
}
server {
listen 80;
server_name ~\w+.com;
location / {
default_type text/html;
content_by_lua '
ngx.say("<p>~\w+.com</p>")
';
}
}
server {
listen 80;
server_name ~.*r0cky.com;
location / {
default_type text/html;
content_by_lua '
ngx.say("<p>~.*r0cky.com</p>")
';
}
}
不同的域名会通过请求头中的HOST字段,匹配到特定的server块,转发到对应的应用服务器中去。
hosts
192.168.80.11 www.r0cky.com
192.168.80.11 www.r0cky.org
192.168.80.11 blog.r0cky.com
192.168.80.11 r0cky.com
匹配顺序
server_name与host匹配优先级如下:
- 完全匹配
- 通配符在前的,如.test.com
- 在后的,如www.test.*
- 正则匹配,如~^.www.test.com$
如果都不匹配
- 优先选择listen配置项后有default或default_server的
- 找到匹配listen端口的第一个server块