CentOS7 搭建 Nginx 服务器

Posted DarkFuture

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS7 搭建 Nginx 服务器相关的知识,希望对你有一定的参考价值。

一:Nginx 的搭建

  nginx 在服务器的应用主要是用于实现反向代理,负载均衡的功能。 这里简单的搭建 Nginx 服务器实现 nginx 对于两个 tomcat 的反向代理的功能。

  在安装 Nginx 之前, 需要安装四个依赖,

安装nginx的依赖:
gcc
  安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没有gcc环境,需要安装gcc:
  yum install gcc-c++
  yum install -y gcc

PCRE
  PCRE(Perl Compatible Regular Expressions)是一个Perl库,包括 perl 兼容的正则表达式库。nginx的http模块使用pcre来解析正则表达式,所以需要在linux上安装pcre库。
  yum install -y pcre pcre-devel
  注:pcre-devel是使用pcre开发的一个二次开发库。nginx也需要此库。

zlib
  zlib库提供了很多种压缩和解压缩的方式,nginx使用zlib对http包的内容进行gzip,所以需要在linux上安装zlib库。
  yum install -y zlib zlib-devel

openssl
  OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。
  nginx不仅支持http协议,还支持https(即在ssl协议上传输http),所以需要在linux安装openssl库。
  yum install -y openssl openssl-devel

 

  用 FTP 服务器上传 Nginx 的安装包, 解压

  tar -zxvf nginx-1.8.0.tar.gz

  然后进入解压目录, 执行编译并安装的操作: 

  ./configure
  make
  make install

  

  安装完成, 启动 nginx ,

   在/usr/local/nginx 目录下
  ./sbin/nginx

  关闭 nginx , 在/usr/local/nginx 目录下
  ./sbin/nginx -s stop

  

  Linux 下常用的查看端口的命令:

  netstat -tulnp | grep 80      // t: tcp   u: udp  l:监听的线程  n: 不转换数字  p: 线程的名称

  

  最后访问 http://localhost

安装 nginx 的过程中, 把没有遇到什么困难, 只是安装并启动 nginx, 在访问网站出现下图就算成功了, 后面的后面再进行配置。

 

   

二 : Tomcat 的安装

  用 Nginx 实现 Tomcat 的反向代理, 搭建两个 Tomcat 来模拟效果

  先用 FTP 服务器上传 Tomcat 的安装包, 并解压 (解压到了 /usr/local 下)

  

  在解压的文件夹里 bin 目录下 打开catalina.sh文件,加入  (都设置为自己解压和安装的目录)
  ---在 # OS specific support 一行下加入

1   JAVA_OPTS="-Xms512m -Xmx1024m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=1024m"
2   export TOMCAT_HOME=/usr/local/apache-tomcat-7.0.77
3   export CATALINA_HOME=/usr/local/apache-tomcat-7.0.77
4   export JRE_HOME=/usr/local/jdk1.8.0_111/jre
5   export JAVA_HOME=/usr/local/jdk1.8.0_111

  启动, 进入 bin 目录
  ./startup.sh

  在这里有一点很重要, 当 Tomcat 开启之后访问不了的时候, 不要自己在那怵着猜错在哪里, 用

1 tail -100 /usr/local/apache-tomcat-7.0.77/logs/catalina.out

  查看最近一次启动 Tomcat 时发生什么情况, 然后根据错误一个一个再解决。

  每次启动 Tomcat , 都要到 Tomcat 安装目录下执行一个命令的感觉是很不好的, 所以推荐一个把 Tomcat 设置成系统服务的方式,每次想启动时, 不管你当前目录在哪, 都可以随时开启或关闭 Tomcat

  参考:http://newthink.blog.51cto.com/872263/1775489

  tomcat 安装目录为 /usr/local/apache-tomcat-7.0.77

  增加 tomcat.pid
  在tomcat安装目录下 vi 一个 tomcat.pid 文件, 在 bin 目录下新建 setenv.sh 文件,并加入

1 #add tomcat pid
2 CATALINA_PID="/usr/local/apache-tomcat-7.0.77/tomcat.pid"
3 #add java opts
4 JAVA_OPTS="-server -XX:PermSize=256M -XX:MaxPermSize=1024m -Xms512M -Xmx1024M -XX:MaxNewSize=256m"

  增加 tomcat.service 

  在 /usr/lib/systemd/system目录下增加tomcat.service, 加入以下内容

 1 [Unit]
 2 Description=Tomcat
 3 After=syslog.target network.target remote-fs.target nss-lookup.target   [Service]
 4 Type=forking
 5 PIDFile=/usr/local/apache-tomcat-7.0.77/tomcat.pid       // 这来需要设置为自己安装的目录
 6 ExecStart=/usr/local/apache-tomcat-7.0.77/bin/startup.sh 
 7 ExecReload=/bin/kill -s HUP $MAINPID
 8 ExecStop=/bin/kill -s QUIT $MAINPID
 9 PrivateTmp=true   [Install]
10 WantedBy=multi-user.target 

  和 Tomcat 有关的一些操作:

  配置开机启动
  systemctl enable tomcat
  启动tomcat
  systemctl start tomcat
  停止tomcat
  systemctl stop tomcat
  重启tomcat
  systemctl restart tomcat

 三:Nginx 配置反向代理

最后, Nginx 和 Tomcat 都搭建完成之后, 简单的配置 Nginx ,使其代理两个 Tomcat:

  nginx 的反向代理:
  在 nginx 安装目录下 /usr/local/nginx/conf/nginx.conf 中加入代理的 tomcat 的服务

  在第一个 server 的上面加上代理的配置

1 #configure proxy server
2 upstream blank{
3   #ip_hash
4   server 192.168.191.1:8080;
5   server 192.168.191.3:8080;
6 }

然后在 server 中, 配置 nginx 所在的服务器

 1 server{
 2 listen    80;
 3 #server_name    localhost;
 4 server_name 192.168.191.3
 5 
 6 location / {
 7 proxy_pass http://blank; // (这里要和上面配置的 upstream 的名字一样)
 8 root html 9 index index.html index.htm;
10 proxy_set_header Host &host;
11 }
12 
13 }

  最简单的配置大概就是这样, 注意 每行后面的 ; 缺少的话在开启你 nginx 的时候会显示出错误, 照着行号 vi 进去配置爱文件改就行

  开启 nginx :
  在 nginx 安装目录下 执行
  ./sbin/nginx

  访问 http://192.168.191.3:80

  配置成功会出现不同的 tomcat 服务器的 sessionId

  最终的效果图:

 

  以上就是简单的配置 Nginx + Tomcat 反向代理的功能, 在 Linux 下搭建的时候花了不少的时间,总结起来的时候, 发现挺简单的事, 但是还是花费了好多时间,与君共勉吧!

 

以上是关于CentOS7 搭建 Nginx 服务器的主要内容,如果未能解决你的问题,请参考以下文章

Redhat/CentOS7-环境虚拟机简单搭建Nginx+Tomcat负载均衡集群

CentOS7 搭建 Nginx 服务器

Centos7搭建nginx+tomcat负载均衡

Centos7搭建部署Nginx+Haproxy+NFS

centos7.4 搭建nginx反向缓存代理

centos7案例实战——nginx服务器搭建详解