nginx安装使用教程详解,实战

安装方式

1. docker 安装

  1. 拉取镜像 docker pull nginx

  2. 查看镜像ID docker images

  3. 运行

    • 新建本地挂载用目录,conf.d和logs目录,位置自己记住就好,如/app/nginx/conf.d和/app/nginx/logs
    • 在conf.d下新建默认配置文件default.conf,并写入监听配置
      server {
          listen      80;
          server_name  _;
          charset  utf-8;
      }
      
    • 启动docker-nginx (这里的 m_nginx 是自己取的别名,后续都会用到)
      ocker run -itd -p 80:80 -v /app/nginx/conf.d:/etc/nginx/conf.d -v /app/nginx/logs:/var/log/nginx  --name m_nginx nginx
      
    • 在浏览器中输入ip即可访问,出现下图,即成功
      nginx安装使用教程详解,实战_第1张图片
    • 部署静态网站,配置如下
      location / {
      	# 注意docker中目录挂载,挂载后,这里填写docker中地址
      	# 绝对路径,站点目录不写,则访问为 ip:port/dir
      	root /usr/share/nginx/html/;
      	index index.html;
       }
      
  4. 配置代理

    • 打开default.conf vim default.conf
    • 在server里面加入如下代码
      location / {
         proxy_pass http://ip:port;
         proxy_redirect default;
       }
      
    • 保存后重启docker nginx, docker restart m_nginx
    • 此时浏览器访问 ip即可自动转到代理的地址上,如proxy_pass为http://123.4.5.6/8080,则此时访问http://123.4.5.6的效果是一样的
    • 如果服务已经器备案,加上域名监听即可,在 listen 80下修改或增加一行server_name,如下(多个空格隔开)
      server_name  example.cn www.example.cn;
      
    • 此时即可通过域名访问(注意,通过域名使用80 http端口或443 https端口,服务器必须备案)
  5. 配置多个代理(多域名访问,如aa.example.cn 和 bb.example.cn 同时访问该服务器,aa.example.cn指向后台的8081端口服务,bb.example.cn指向后台的8082端口)

    • 在default.conf中增加多个server,如下配置后,访问域名即可
      server{
      	listen       80;
          server_name  aa.example.cn;
          charset utf-8;
      	location / {
             proxy_pass http://ip:8081;
             proxy_redirect default;
      	 }
      }
      server{
      	listen       80;
          server_name  bb.example.cn;
          charset utf-8;
      	location / {
             proxy_pass http://ip:8082;
             proxy_redirect default;
      	 }
      }
      
  6. 配置 http 强制跳转 https

    • 例如后台为tomcat等服务容器,tomcat配置了80和443,并且tomcat配置了SSL证书,此时前台通过访问,需要强制跳转到https
      • tomcat的web.xml里面可配置强制跳转
      • 通过nginx转发(用到了tomcat,实际中肯定直接配置web.xml了,这里为了讲解),default.conf中配置如下
      • 增加404防止域名污染
        server {
          listen 80;
          server_name _;
          return 404;
        }
        server {
          listen 80;
          server_name aa.example.cn;
          rewrite ^(.*)$  https://$host$1 permanent; 
        }
        server {
          listen 80;
          server_name bb.example.cn;
          rewrite ^(.*)$  https://$host$1 permanent;
        }
        
    1. 在nginx中配置SSL证书
      • 申请证书,目前阿里等个大云厂商都有申请证书都地方,如阿里证书购买链接nginx安装使用教程详解,实战_第2张图片
        或者是在 https://freessl.cn/购买也可以,方法一样
        nginx安装使用教程详解,实战_第3张图片
      • 购买都同时注意要在域名服务商处配置解析,阿里云解析地址,进入后,点击域名后面都 “解析设置”
      • 购买完成后,审核通过即可点击下载,阿里云下载页面,点击右侧下载,选择对应服务,我们选择nginx下载
        nginx安装使用教程详解,实战_第4张图片
      • 之后我们将下载都文件解压,放到服务器上,然后在default.conf中添加证书,代码如下,配置后,重启docker nginx即可
        server {
        	listen 443 ssl;
        	server_name aa.example.cn;    
        	# 必须是绝对路径 
        	ssl_certificate "/home/yushan/demontf/2076603_aa.example.cn.pem";   
        	ssl_certificate_key "/home/yushan/demontf/2076603_aa.example.cn.key";    
        
        	location / {
            			proxy_pass http://ip:8081;
            			proxy_set_header X-Real-IP $remote_addr;
            			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            			proxy_set_header Host $http_host;
            			proxy_set_header X-NginX-Proxy true;
            			proxy_redirect default;
        	}
        }
        server {
        	listen 443 ssl; # redirect to https
        	server_name bb.example.cn;
        	# 必须是绝对路径 
        	ssl_certificate "/home/yushan/demontf/2005538_bb.example.cn.pem";
        	ssl_certificate_key "/home/yushan/demontf/2005538_bb.example.cn.key";
        	
        	location / {
                      proxy_pass http://ip:8082;
                      proxy_set_header X-Real-IP $remote_addr;
                      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                      proxy_set_header Host $http_host;
                      proxy_set_header X-NginX-Proxy true;
                      proxy_redirect default;
        	}
        }
        

2. 系统直接安装(基于centos)

  1. 安装依赖
    yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
    
  2. 在/usr/local/下,下载nginx包(其它版本见nginx下载地址 https://nginx.org/download/)
    wget https://nginx.org/download/nginx-1.9.9.tar.gz
    ## 解压
    tar -zxvf nginx-1.9.9.tar.gz
    
    ##进入nginx目录
    cd nginx-1.9.9
    
    ##修改版本,隐藏版本信息(提高安全性)
    cd ./src/core
    vim nginx.h
    改动类似如下
    
    nginx安装使用教程详解,实战_第5张图片
    
    ## 配置 开启http共存模式 ssl(https) http2
    ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module
    
    # make
    make
    make install
    
    # 目录下创建logs 并赋权限
    cd /usr/local/nginx
    mkdir logs
    chmod 700 logs
    
    #启动 停止 重启
    cd /usr/local/nginx/sbin
    ./nginx           启动
    ./nginx -s stop   停止
    ./nginx -s reload 重启
    
  3. 配置nginx开机自启动
    vim /etc/rc.d/rc.local
    
    在里面添加一行 /usr/local/nginx/sbin/nginx 如下图
    nginx安装使用教程详解,实战_第6张图片
  4. 配置代理,方向代理,SSL证书,和上面docker安装环境一样
  5. nginx也可做负载均衡服务,详细配置,后续贴上。

以上。

你可能感兴趣的:(centos,linux,nginx,linux,centos,docker)