nginx安装及配置(1个小时快速部署)

1 安装及启动

1.1 rpm安装,非yum

(1) 下载:http://nginx.org/packages/centos/7/x86_64/RPMS/

wget http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.20.1-1.el7.ngx.x86_64.rpm

(2) 安装:

rpm -ivh nginx-1.20.1-1.el7.ngx.x86_64.rpm

(3) 启动:

systemctl enable nginx --now

(4) 验证:

# elinks --dump http://10.5.30.7
                               Welcome to nginx!

   If you see this page, the nginx web server is successfully installed and
   working. Further configuration is required.

   For online documentation and support please refer to [1]nginx.org.
   Commercial support is available at [2]nginx.com.

   Thank you for using nginx.

References

   Visible links
   1. http://nginx.org/
   2. http://nginx.com/

1.2 二进制源码安装

(1)下载Nginx源文件
进入nginx官网下载nginx的稳定版本,我下载的是1.20.0

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

解压:tar -zxvf nginx-1.10.0.tar.gz

tar xf nginx-1.20.1.tar.gz

(2)检查安装依赖项

执行下面的命令安装nginx的依赖库:

yum -y install gcc pcre pcre-devel zlib zlib-devel openssl openssl-devel

(3) 配置Nginx安装选项

我这里只配置安装到/opt目录下,其它选项可执行./configuration –help查看。
cd nginx安装目录,执行如下命令:

./configure --prefix=/usr/local/nginx --sbin-path=/usr/bin/nginx --with-http_ssl_module

(4) 编译并安装

make && make install

1.3 yum安装(未写)

2 命令

# 1.启动nginx
shell> nginx
# 可通过ps -ef | grep nginx查看nginx是否已启动成功
# 2.停止nginx
shell> nginx -s stop
# 3. 重新启动
shell> nginx -s reload

nginx -t -c /etc/nginx/nginx.conf  #检查命令
nginx -s reload -c /etc/nginx/nginx.conf #重置配置文件

rpm或者yum安装:

# 开启开机自动启动及启动服务
systemctl enable nginx --now  
# 开启服务
systemctl start nginx
# 关闭服务
systemctl stop nginx
# 重启服务
systemctl restart nginx

3 配置

开启方向代理,必须关闭selinux,haproxy也一样。

3.1 web标准配置

在http{}里面加下以下配置:

   server {
    listen 443;
    ssl on;
    server_name  localhost;
    ssl_certificate /etc/ssl/tls.crt;
    ssl_certificate_key /etc/ssl/tls.key;
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;
    ssl_prefer_server_ciphers on;

    
    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

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

   }

  

80端口将listen改成80, ssl on去掉。

3.2 反向代理

在http{}里面加下以下配置:

server {
        listen 80;
        server_name nexus-devops.utopacloud.com;
        location / {
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_pass http://10.186.102.104:8801;
        }
   }

3.3 反向代理+负载均衡

在http{}里面加下以下配置:

  upstream jenkins-devops {
        server 10.186.102.104:8801;
       # server 10.186.102.108:8801;
      }
  server {
        listen 80;
        server_name jenkins-devops.utopacloud.com;
        location / {
                proxy_pass http://jenkins-devops;
        }
   }
   

其他:

location /dcp-kernel-dataexchange {
                rewrite ^/dcp-kernel-dataexchange(.*) $1 break;
                proxy_pass http://serv-dcp-kernel-dataexchange;
        }

3.4 经典配置:

前端反代:

server {
        listen 443 ssl;
        listen 80;
        server_name scm.myutopa.com;
        ssl_certificate /usr/local/nginx/conf/scm/ssl/_.myutopa.com.crt;
        ssl_certificate_key /usr/local/nginx/conf/scm/ssl/_.myutopa.com.key;
        ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE';
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_stapling on;
        ssl_stapling_verify on;
        ssl_session_cache shared:SSL:10m;
        ssl_session_timeout 10m;
        location / {
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_pass http://10.186.135.137:80;
         }
        location /scm {
                proxy_set_header Host $host;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_pass http://10.186.135.111:8088;
        }
   }

后端web主页:

server {
    listen       443 ssl http2;

    server_name  mpapi.utopaliving.com;

    ssl_certificate conf.d/ssl/mp_api/mpapi.utopaliving.com_chain.crt;
    ssl_certificate_key conf.d/ssl/mp_api/mpapi.utopaliving.com_key.key;
    #ssl_trusted_certificate  conf.d/ssl/mp_api/mpapi.utopaliving.com_chain.crt;
    ssl_ciphers 'ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4:!DH:!DHE';
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_session_cache shared:SSL:10m;
    ssl_session_timeout 10m;
    add_header Strict-Transport-Security "max-age=31536000";
    resolver 223.5.5.5 223.6.6.6 valid=300s;
    resolver_timeout 10s;

    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header REMOTE-HOST $remote_addr;
    proxy_set_header X-Forwarded-Scheme  $scheme;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

    ssi on; 
    ssi_silent_errors on;
    ssi_types text/shtml;

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

    location ^~ /images/  {
        root    /usr/share/nginx/html/upload/user;
        expires 1d;
    }
    
    location ~ \.jsp$  {
        proxy_pass http://10.186.102.110:8080;
    }

    location ~ \.(js|css)?$ {
        root    /usr/share/nginx/html;
        expires 12h;
    }

    location / {
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    location /admin{
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    location /h5{
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

    #后端Api
    location /api {
        proxy_pass http://10.186.102.110:8080;
    }
}

使用上面的配置,不论浏览器请求哪个主机,都只会收到默认主机www.example.com的证书。这是由SSL协议本身的行为引起的——先建立SSL连接,再发送HTTP请求,所以nginx建立SSL连接时

3.4 四层代理例子

upstream k8s-apiserver {
       server 192.168.31.71:6443;   # Master1 APISERVER IP:PORT
       server 192.168.31.72:6443;   # Master2 APISERVER IP:PORT
    }
    
    server {
       listen 16443;  # 由于nginx与master节点复用,这个监听端口不能是6443,否则会冲突
       proxy_pass k8s-apiserver;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值