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 *;
}
创建配置文件。在/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;
}
}