10-CentOS7服务器搭建-NGINX

2018-04-23 09:58 阅读

nginx的yum源安装文档:http://nginx.org/en/linux_packages.html

安装方式

创建yum源文件

vim /etc/yum.repos.d/nginx.repo

增加以下内容

[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

执行命令:

yum install nginx
systemctl start nginx
systemctl enable nginx

配置文件

修改配置文件

vim /etc/nginx/nginx.conf

增加并发量

# 总并发量为worker_processes*worker_connections。如果使用反向代理,则一个请求消耗两个连接(连接客户端一个,连接后端tomcat一个)。
# 一般与cpu核数一致,如1个cpu、每个cpu有个4核心,则设置为4;2cpu、每个cpu有个4核心,则设置为8。
worker_processes  1;
events {
  worker_connections  20480;
}

http {

  ...
  # 原有配置无需改动,增加下面的配置
  ...

  # 同级代理不需要redirect。如根目录代理至根目录。
  proxy_redirect              off;
  # 解决获取访问域名的问题。否则该方法无法获取请求访问的域名:request.getServerName();
  proxy_set_header            Host $host;
  # 解决获取访问者IP地址的问题。
  proxy_set_header            X-Real-IP $remote_addr;
  proxy_set_header            X-Forwarded-For $proxy_add_x_forwarded_for;
  # 解决 WebSocket Proxy 问题。nginx文档:https://www.nginx.com/blog/websocket-nginx/
  proxy_set_header            Upgrade $http_upgrade;
  proxy_set_header            Connection "Upgrade";

  # 请求体最大尺寸,主要是上传文件。默认1M
  client_max_body_size        4000m;
  # 请求体缓存,超过缓存值就写入临时文件。默认16k
  client_body_buffer_size     128k;

  # 开启ssi
  ssi on;
  ssi_types text/shtml;

  # 开启gzip
  gzip            on;
  # 启用压缩的最小文件指,默认20。太小的文件有可能越压缩越大,设置为1000比较合适。
  gzip_min_length 1000;
  # 压缩级别,1-9,越大压缩的越小,但也越慢且越费CPU。默认1。设置为2一般足够了,追求更高的压缩率可以设置为5,再高意义不大。
  gzip_comp_level 2;
  # 作为代理时,无条件开启gzip。
  gzip_proxied    any;
  #gzip_proxied    expired no-cache no-store private auth;
  # 任何类型都进行压缩,避免一个个设置,容易遗漏。
  gzip_types      *;
}

整合tomcat

创建配置文件。在/etc/nginx/conf.d/目录下所有.conf结尾的文件都会被自动加载。

vim /etc/nginx/conf.d/jspxcms.conf

配置文件内容如下:

server {
  listen       80;
  server_name  www.ujcms.com;
  root         /data/tomcat/jspxcms/webapps/ROOT;
  index        index.html index.htm index.shtml;

  location / {
    # 如果uri地址对应文件或目录不存在,则使用代理转发到tomcat
    # try_files  $uri $uri/index.html $uri/index.htm @proxypass;
    # 查找目录可以利用nginx将文件重定向至目录,如访问 /foo,目录存在的话,会重定向至 /foo/
    try_files  $uri $uri/ @proxypass;
  }

  # 如使用 try_files  $uri $uri/ @proxypass; 则必须加上这项,否则可能出现首页无法访问的情况
  location = / {
    try_files  /index.html @proxypass;
  }


  location @proxypass {
    # 代理至tomcat,tomcat需监听10001端口
    proxy_pass http://localhost:10001;
  }

  # 禁止访问/WEB-INF/目录下文件
  location /WEB-INF/ {
    deny  all;
  }
}
# 将ujcms.com重定向至www.ujcms.com
server {
  listen 80;
  server_name ujcms.com;
  rewrite ^/(.*) http://www.ujcms.com/$1 permanent;
}

如没有使用restful,只代理特定的url后缀,可以使用以下配置:

server {
    listen       80;
    server_name  www.ujcms.com ujcms.com;

    if ($host = 'ujcms.com' ) {
        rewrite ^/(.*)$ http://www.ujcms.com/$1 permanent;
    }

    location ~ \.?(jsp|jspx|do|servlet)?(\;jsessionid=.*)?$ {
      proxy_pass http://localhost:10001;
    }

    location / {
        root   /home/jspxcms/webapps/ROOT;
        index  index.html index.shtml index.jspx index.do;
    }

    location /WEB-INF/ {
        deny  all;
    }
}
QQ咨询
电话
微信
微信扫码咨询