CentOS7.0 采用压缩包 安装Nginx 1.7.4和添加Tomcat为系统服务 nginx结合tomcat

CentOS7.0 采用压缩包 安装Nginx 1.7.4 
 
一、安装准备
首先由于nginx的一些模块依赖一些lib库,所以在安装nginx之前,必须先安装这些lib库,
这些依赖库主要有g++、gcc、openssl-devel、pcre-devel和zlib-devel 所以执行如下命令安装

$ yum install gcc-c++ 
$ yum install pcre pcre-devel 
$ yum install zlib zlib-devel 
$ yum install openssl openssl--devel


二、安装Nginx
安装之前,最好检查一下是否已经安装有nginx

$ find -name nginx 
如果系统已经安装了nginx,那么就先卸载

$ yum remove nginx 
首先进入/usr/local目录

$ cd /usr/local 
从官网下载最新版的nginx

$ wget http://nginx.org/download/nginx-1.7.4.tar.gz 
解压nginx压缩包

$ tar -zxvf nginx-1.7.4.tar.gz 
会产生一个nginx-1.7.4 目录,这时进入nginx-1.7.4目录

$ cd nginx-1.7.4 
接下来安装,使用--prefix参数指定nginx安装的目录,make、make install安装

$ ./configure $默认安装在/usr/local/nginx 
$ make 
$ make install

如果没有报错,顺利完成后,最好看一下nginx的安装目录

$ whereis nginx

安装完毕后,进入安装后目录(/usr/local/nginx)便可以启动或停止它了。
到此,使用CentOS安装nginx已经完成了,其实看看还是蛮简单的。

http://nginx.org/download/nginx-1.12.0.tar.gz
nginx反向代理、动静分离、负载均衡
centos 7 安装tomcat 
本身系统 已经安装了jdk
java -version
wget http://apache.fayea.com/tomcat/tomcat-8/v8.0.44/bin/apache-tomcat-8.0.44.tar.gz 
[root@localhost ~]# cd /usr/local 
[root@localhost ~]# tar -zxv -f apache-tomcat-8.0.44.tar.gz // 解压压缩包 
[root@localhost ~]# rm -rf apache-tomcat-8.0.44.tar.gz // 删除压缩包 
[root@localhost ~]# 
mkdir tomcat 
mv apache-tomcat-8.0.44/* tomcat/
tomcat/bin/startup.sh
tomcat/bin/shutdown.sh

Centos7下添加Tomcat为系统服务
因为个人感觉在centos中启动tomcat比较麻烦、要一直cd到目录下面startup.sh才可以,
所以网上找到将tomcat作为系统服务,使用systemctl直接启动方法。现将个人的设置记录如下:
1.安装tomcat ,tomcat是很早之前安装的,使用filezilla上传解压到目录OK
2.修改tomcat的catalina.sh文件,vim打开 :set number 应该是139行下面添加 
CATALINA_PID="$CATALINA_BASE/tomcat.pid" 如下图黄色箭头所示
3.然后在/usr/lib/systemd/system下面建立tomcat.service文件
tomcat.service的内容:

[Unit]

Description=Tomcat

After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/usr/local/tomcat/tomcat.pid
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID

ExecStop=/bin/kill -s QUIT $MAINPID

PrivateTmp=true

[Install]

WantedBy=multi-user.target

主要就是设置好你的 jdk路径,忘记可以使用 echo $JAVA_HOME 来查看,
设置我们上面写的tomcat.pid的路径和tomcat启动路径
4.经过上面设置应该就好了
systemctl enable tomcat 开机启动
systemctl status tomcat 查看状态
systemctl start / stop / restart tomcat 开始/停止/重启 tomcat

5.遇到的问题
如果只是配好了 tomcat.pid就启动过tomcat的话,需要在所有配置完成后 在tomcat关闭的情况下
删除 rm tomcat.pid 文件,然后使用上面的命令来启动tomcat

参考:

http://www.linuxidc.com/Linux/2013-05/84612p2.htm
http://www.cnblogs.com/feiye512/p/5633489.html

 centos下nginx+tomcat安装配置 nginx结合tomcat

http://blog.csdn.net/heirenheiren/article/details/8013905

http://blog.csdn.net/sangdongqing/article/details/52872095

http://www.cnblogs.com/ystq/articles/5919114.html

server
{
listen 80;
server_name localhost;
index index.html index.htm index.jsp;#设定访问的默认首页地址
root /home/www/web/ROOT;#设定网站的资源存放路径

#limit_conn crawler 20;

location / {
index index.html index.jsp;
}

location ~ .*.jsp$ #所有jsp的页面均交由tomcat处理
{
index index.jsp;
proxy_pass http://192.168.222.128:8080;#转向tomcat处理
}


location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$ #设定访问静态文件直接读取不经过tomcat
{
expires 30d;
}

location ~ .*.(js|css)?$
{
expires 1h;
}

#定义访问日志的写入格式
#log_format access '$remote_addr - $remote_user [$time_local] "$request" '
#'$status $body_bytes_sent "$http_referer" '
#'"$http_user_agent" $http_x_forwarded_for';
#access_log /usr/local/nginx/logs/localhost.log access;#设定访问日志的存放路径

}

#添加80端口到防火墙
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --reload
#启动nginx
/usr/local/nginx/sbin/nginx

nginx -s reload :修改配置后重新加载生效
nginx -s reopen :重新打开日志文件
nginx -t -c /path/to/nginx.conf 测试nginx配置文件是否正确

关闭nginx:
nginx -s stop :快速停止nginx
quit :完整有序的停止nginx

其他的停止nginx 方式:

ps -ef | grep nginx

kill -QUIT 主进程号 :从容停止Nginx
kill -TERM 主进程号 :快速停止Nginx
pkill -9 nginx :强制停止Nginx

启动nginx:
nginx -c /path/to/nginx.conf

平滑重启nginx:
kill -HUP 主进程

 

centos 7 以上使用压缩包 安装nginx   配置 成服务和自启动

http://www.cnblogs.com/riverdubu/p/6426852.html

centos 7 以下使用压缩包 配置nginx 成服务和自启动

http://blog.sina.com.cn/s/blog_a51d7b7a0102v0c2.html

http://blog.csdn.net/awj3584/article/details/38036539

http://blog.csdn.net/sangdongqing/article/details/52872095

location匹配命令

~ #波浪线表示执行一个正则匹配,区分大小写
~* #表示执行一个正则匹配,不区分大小写
^~ #^~表示普通字符匹配,如果该选项匹配,只匹配该选项,不匹配别的选项,一般用来匹配目录
= #进行普通字符精确匹配
@ #"@" 定义一个命名的 location,使用在内部定向时,例如 error_page, try_files

location 匹配的优先级(与location在配置文件中的顺序无关)
= 精确匹配会第一个被处理。如果发现精确匹配,nginx停止搜索其他匹配。
普通字符匹配,正则表达式规则和长的块规则将被优先和查询匹配,也就是说如果该项匹配还需去看有没有正则表达式匹配和更长的匹配。
^~ 则只匹配该规则,nginx停止搜索其他匹配,否则nginx会继续处理其他location指令。
最后匹配理带有"~"和"~*"的指令,如果找到相应的匹配,则nginx停止搜索其他匹配;当没有正则表达式或者没有正则表达式被匹配的情况下,那么匹配程度最高的逐字匹配指令会被使用。

location 优先级官方文档

Directives with the = prefix that match the query exactly. If found, searching stops.
All remaining directives with conventional strings, longest match first. If this match used the ^~ prefix, searching stops.
Regular expressions, in order of definition in the configuration file.
If #3 yielded a match, that result is used. Else the match from #2 is used.
=前缀的指令严格匹配这个查询。如果找到,停止搜索。
所有剩下的常规字符串,最长的匹配。如果这个匹配使用^〜前缀,搜索停止。
正则表达式,在配置文件中定义的顺序。
如果第3条规则产生匹配的话,结果被使用。否则,使用第2条规则的结果。

例如
location = / {
# 只匹配"/".
[ configuration A ] 
}
location / {
# 匹配任何请求,因为所有请求都是以"/"开始
# 但是更长字符匹配或者正则表达式匹配会优先匹配
[ configuration B ] 
}
location ^~ /images/ {
# 匹配任何以 /images/ 开始的请求,并停止匹配 其它location
[ configuration C ] 
}
location ~* .(gif|jpg|jpeg)$ {
# 匹配以 gif, jpg, or jpeg结尾的请求. 
# 但是所有 /images/ 目录的请求将由 [Configuration C]处理. 
[ configuration D ] 
}

location = / {
# 只匹配"/".
[ configuration A ] 
}
location / {
# 匹配任何请求,因为所有请求都是以"/"开始
# 但是更长字符匹配或者正则表达式匹配会优先匹配
[ configuration B ] 
}
location ^~ /images/ {
# 匹配任何以 /images/ 开始的请求,并停止匹配 其它location
[ configuration C ] 
}
location ~* .(gif|jpg|jpeg)$ {
# 匹配以 gif, jpg, or jpeg结尾的请求. 
# 但是所有 /images/ 目录的请求将由 [Configuration C]处理. 
[ configuration D ] 
}
请求URI例子:

/ -> 符合configuration A
/documents/document.html -> 符合configuration B
/images/1.gif -> 符合configuration C
/documents/1.jpg ->符合 configuration D
@location 例子
error_page 404 = @fetch;

location @fetch(
proxy_pass http://fetch;
)

原文地址:https://www.cnblogs.com/hanlong/p/6971086.html