Centos 安装 Nginx 反向代理 Tomcat 配置 Https

本贴最后更新于 2281 天前,其中的信息可能已经物是人非

安装 Nginx

yum install nginx

创建 log 目录

mkdir /usr/share/nginx/log

启动命令

service nginx start

关闭命令

service nginx stop

重载配置

service nginx reload

更改配置文件

nginx 配置文件在 /etc/nginx/nginx.conf

更改了配置文件后 需要重载一下配置

	########### 每个指令必须有分号结束。#################
#user administrator administrators;  #配置用户或者组,默认为nobody nobody。
#worker_processes 2;  #允许生成的进程数,默认为1
#pid /nginx/pid/nginx.pid;   #指定nginx进程运行文件存放地址
error_log log/error.log debug;  #制定日志路径,级别。这个设置可以放入全局块,http块,server块,级别以此为:debug|info|notice|warn|error|crit|alert|emerg
events {
    accept_mutex on;   #设置网路连接kulaidian序列化,防止惊群现象发生,默认为on
    multi_accept on;  #设置一个进程是否同时接受多个网络连接,默认为off
    #use epoll;      #事件驱动模型,select|poll|kqueue|epoll|resig|/dev/poll|eventport
    worker_connections  1024;    #最大连接数,默认为512
}
http {

    #开启GZIP压缩
    gzip on;
    gzip_min_length 1k;
    gzip_buffers 4 16k;
    #gzip_http_version 1.0;
    gzip_comp_level 4;
    gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/jpeg image/gif image/png;
    gzip_vary off;
    gzip_disable "MSIE [1-6]\.";

    include mime.types;   #文件扩展名与文件类型映射表
    default_type  application/octet-stream; #默认文件类型,默认为text/plain
    #access_log off; #取消服务日志
    log_format myFormat '$remote_addr–$remote_user [$time_local] $request $status $body_bytes_sent $http_referer $http_user_agent $http_x_forwarded_for'; #自定义格式
    access_log log/access.log myFormat;  #combined为日志格式的默认值
    sendfile on;   #允许sendfile方式传输文件,默认为off,可以在http块,server块,location块。
    sendfile_max_chunk 100k;  #每个进程每次调用传输数量不能大于设定的值,默认为0,即不设上限。
    keepalive_timeout 65;  #连接超时时间,默认为75s,可以在http,server,location块。

    error_page 404 https://www.baidu.com; #错误页
	# 配置拦截80端口 然后转发到https  
    server {
        listen  80;
        server_name www.example.com example.com pro.example.com;#多域名用空格隔开 这里我举例三个域名
        rewrite ^(.*)$  https://$host$1 permanent;
    }
	#监听来着prod.example.com 的请求  然后再代理向Tomcat的端口 这里我的Tomcat端口为8080
    server {
         listen 443;
         server_name prod.example.com;#监听prod的二级域名 
         ssl on;
         ssl_certificate   /usr/local/centos_x64/nginx_https/214544061980920.pem;
         ssl_certificate_key  /usr/local/centos_x64/nginx_https/214544061980920.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:8080;   #来自请求交给tomcat处理
             proxy_redirect off;
             proxy_set_header Host $host;    #后端的Web服务器可以通过X-Forwarded-For>获取用户真实IP
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
             client_max_body_size 10m;   #允许客户端请求的最大单文件字节数
             client_body_buffer_size 128k; #缓冲区代理缓冲用户端请求的最大字节数
             proxy_connect_timeout 90;   #nginx跟后端服务器连接超时时间(代理连接超时)
             proxy_read_timeout 90;      #连接成功后,后端服务器响应时间(代理接收超时)
             proxy_buffer_size 4k;       #设置代理服务器(nginx)保存用户头信息的缓冲区大小
             proxy_buffers 6 32k;        #proxy_buffers缓冲区,网页平均在32k以下的话>,这样设置
             proxy_busy_buffers_size 64k; #高负荷下缓冲大小(proxy_buffers*2)
             proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传
         }
     }
	#监听来自 www.example.com example.com 两个域名的请求 转向到静态的Html文件目录
    server {
         listen 443;
         server_name www.example.com example.com;
         ssl on;
         ssl_certificate   /usr/local/centos_x64/nginx_https/214544061980920.pem;
         ssl_certificate_key  /usr/local/centos_x64/nginx_https/214544061980920.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 / {
                 root /web/; #默认Html目录
                 index index.html index.htm;#首页文件
         }
     }
}
  • B3log

    B3log 是一个开源组织,名字来源于“Bulletin Board Blog”缩写,目标是将独立博客与论坛结合,形成一种新的网络社区体验,详细请看 B3log 构思。目前 B3log 已经开源了多款产品:SymSoloVditor思源笔记

    1063 引用 • 3453 回帖 • 203 关注
  • CentOS

    CentOS(Community Enterprise Operating System)是 Linux 发行版之一,它是来自于 Red Hat Enterprise Linux 依照开放源代码规定释出的源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定的服务器以 CentOS 替代商业版的 Red Hat Enterprise Linux 使用。两者的不同在于 CentOS 并不包含封闭源代码软件。

    238 引用 • 224 回帖
  • NGINX

    NGINX 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 NGINX 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本 0.1.0 发布于 2004 年 10 月 4 日。

    311 引用 • 546 回帖
  • Tomcat

    Tomcat 最早是由 Sun Microsystems 开发的一个 Servlet 容器,在 1999 年被捐献给 ASF(Apache Software Foundation),隶属于 Jakarta 项目,现在已经独立为一个顶级项目。Tomcat 主要实现了 JavaEE 中的 Servlet、JSP 规范,同时也提供 HTTP 服务,是市场上非常流行的 Java Web 容器。

    162 引用 • 529 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • someone

    你右边的文章目录怎么实现的?

  • someone

    自己改了代码?恶心的验证码!

  • pencilso

    markdown 语法即可 二级标题 三级标题 都能实现