Linux下nginx的搭建和使用

nginx下载地址:

http://nginx.org/download

推荐下载使用最新nginx版本,漏洞少;当前演示版本为 nginx-1.17.9.tar.gz

物理机搭建nginx

方式1:

说明:由于nginx依赖于pcre和zlib,所以在安装nginx时,需要先安装pcre和zlib;为了方便起见,建议把pcre、zlib、nginx的包放到了同一个目录下。

1.pcre下载地址:

https://sourceforge.net/projects/pcre/files/pcre/

tar -zxvf pcre-8.39.tar.gz

cd pcre-8.39

./configure

make

make install

2.zlib下载地址:

http://zlib.net/

tar -xvf zlib-1.2.8.tar.gz 
cd zlib-1.2.8
./configure 
make
make install

3.nginx下载地址:

http://nginx.org/en/download.html

tar -zxvf nginx-1.17.9.tar.gz
mv nginx-1.17.9 nginx
cd nginx
./configure --sbin-path=/usr/local/nginx/sbin/nginx  --conf-path=/usr/local/nginx/conf/nginx.conf --pid-path=/usr/local/nginx/sbin/nginx.pid --with-http_ssl_module --with-pcre=../pcre-8.39 --with-zlib=../zlib-1.2.8
make
make install

方式2:

##安装工具包

yum install -y wget  

yum install -y vim-enhanced   

yum install -y make cmake gcc gcc-c++                      ##下载编译源代码时所需的包

##安装依赖包

yum install -y pcre pcre-devel

yum install -y zlib zlib-devel

yum install -y openssl openssl-devel

##下载解并压编译安装nginx

wget http://nginx.org/download/nginx-1.17.9.tar.gz

tar -xvf nginx-1.17.9.tar.gz

cd nginx-1.17.9

./configure --prefix=/usr/local/nginx

make install

##修改nginx配置

cd /usr/local/nginx/conf

cp /usr/local/nginx/conf/nginx.conf /usr/local/nginx/conf/nginx.conf.bak

> /usr/local/nginx/conf/nginx.conf

vim /usr/local/nginx/conf/nginx.conf               ##编辑配置文件;具体见后面的  nginx用途中

#nginx启动

/usr/local/nginx/sbin/nginx -t                                                               ##检测nginx默认配置文件的语法是否正确

/usr/local/nginx/sbin/nginx -t -c /usr/local/nginx/conf/nginx.conf         ##检测指定配置文件语法

/usr/local/nginx/sbin/nginx                                                                  ##启动nginx

/usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf           ##指定配置文件启动

/usr/local/nginx/sbin/nginx -s stop                                                      ##停止nginx

/usr/local/nginx/sbin/nginx -s reload                                                   ##重新加载配置

ps aux|grep nginx                                                                               ##查看nginx进程

nginx的主要用途

vi /usr/local/nginx/conf/nginx.conf

[1]反向代理

备注:

servername可填127.0.0.1代表起nginx服务的节点,也可以直接添加该节点的实际ip地址;

##将原先为 http://1xx.a.b.211:50070  的web访问页面代理为    http://nginx服务所在主机ip:50070 

##即通过访问代理地址http://nginx服务所在主机ip:50070 ,实际访问到代理之前的地址。

events {
    worker_connections  1024;
}

http {

server {
    listen 50070;
    server_name 127.0.0.1;

    location / {
        proxy_pass http://1xx.a.b.211:50070/;
        proxy_connect_timeout 5s;  
    }
}

}

[2] 负载均衡

#备注:

# upstream 表示负载服务器池,定义名字为 myserver;

#weight表示权重,即访问比例。

# fail_timeout 即 在 30s 内尝试 2 次失败即认为主机不可用 

##进行代理1xx.a.b.211:50070 以及1xx.a.b.212:50070页面。

##代理页面为:    http://1xx.a.b.224:50077

events {
    worker_connections  1024;
}

http {
upstream myserver {
server 1xx.a.b.211:50070 weight=1 max_fails=2 fail_timeout=30s; 
server 1xx.a.b.212:50070 weight=1 max_fails=2 fail_timeout=30s; 
}

server {
listen 50077; 
server_name 1xx.a.b.224;

location / {
proxy_pass http://myserver;}
}
}

容器化搭建nginx

##首先在连接外网的机器上下载nginx镜像

docker images|grep nginx                                    ##查看官方仓库的nginx镜像

docker pull nginx                                                  ##拉取最近的nginx镜像

docker save nginx:latest > nginx.tar                    ##将nginx镜像为tar包文件;并传输到目的操作的机器

##进入nginx容器化部署的机器上(一般为内网机器,无法访问外网,但连接到docker私有仓库)

docker load < nginx.tar                                                  ##将传输过来的nginx的tar镜像文件重新加载为镜像

docker tag 5a3221f0137b nginx:v1                                ##重命名该镜像;5a3221f0137b为镜像id

docker run 5a3221f0137b /bin/bash                               ##运行镜像并进入容器中,修改配置

##接下来的几个操作均在nginx容器中:

find / -name nginx                    ##找到nginx配置路径;发现为/etc/nginx

cd /etc/nginx/                                  

cat nginx.conf                          ##发现加载的配置文件/etc/nginx/conf.d/*.conf

cd /etc/nginx/conf.d/                ##进入配置文件路径

rm -rf *                                    ##清空默认的配置文件

##回到宿主机上配置好nginx.conf ,然后拷贝代理到容器中

docker cp nginx.conf b6b594628d58:/etc/nginx/conf.d/        ##拷贝代理配置到nginx容器中; b6b594628d58为nginx容器id   

docker commit b6b594628d58 nginx:v10                             ##保存该容器为新的代理镜像  

##代理文件nginx.conf内容为

cat /etc/nginx/conf.d/nginx.conf

server {
    listen       50070;
    server_name  1xx.a.b.136;

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
        proxy_pass http://1xx.a.b.206:50070/;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}

##容器化的nginx服务启停命令

/etc/init.d/nginx start/stop

总结:

1.物理机(虚拟机)和容器化的nginx配置文件路径不同,配置文件内容不同,具体配置规则可参考本文列举的例子;

物理机的nginx配置文件路径为:   /usr/local/nginx/conf/nginx.conf

容器化的nginx配置文件路径为:   /etc/nginx/conf.d/nginx.conf

2.nginx启停命令稍有区别;

物理机(虚拟机)上启停:      /usr/local/nginx/sbin/nginx

                                          /usr/local/nginx/sbin/nginx -s stop

容器化上启停:                   /etc/init.d/nginx start

                                         /etc/init.d/nginx stop

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值