Linux 下的 Nginx 配置

Nginx可用于服务器的反向代理和负载均衡


环境相关

操作系统 Linux (CentOS7 64bit 虚拟机启动)  本机 win10 64bit

虚拟机 VirtualBox (version 5.1.18)

远程连接工具 XShell 5 (version 5.0.0046)

服务器 Tomcat (apache-tomcat-7.0.78) × 2 

Nginx  nginx-1.13.0


步骤:

一、使用XShell 5 远程登录到虚拟机上(虚拟机 ip = 192.168.164.100)

二、利用XShell 集成的 Xftp 将 tomcat 和 nginx 上传到虚拟机中(虚拟机需要预先安装JDK)

三、tomcat配置:

a、tomcat解压到/usr/local/tomcat 目录下 tar -xvf apache-tomcat-7.0.78 -C /usr/local/tomcat

b、将tomcat服务器拷贝一份(模拟反向代理和负载均衡的需要,也可拷贝多份,或者准备多台虚拟机) cp apache-tomcat-7.0.78/ apache-tomcat-7.0.78-2

c、修改apache-tomcat-7.0.78-2服务器的配置信息(端口修改),否则同一台虚拟机下无法同时启动两台tomcat服务器 vim /usr/local/tomcat/apache-       tomcat-7.0.78-2/conf/server.xml  修改三处端口信息

     (之前为8005)

     ......

                    connectionTimeout="20000"
                redirectPort="8443" /> (之前为8080)

     ......

      (之前为8009)

d、切换到tomcat目录下 cd /usr/local/tomcat ,启动tomcat服务器 ./apache-tomcat-7.0.78/bin/startup.sh  ./apache-tomcat-7.0.78-2/bin/startup.sh

e、查看tomcat是否启动,jps 或 ps -ef | grep tomcat

[root@volatile tomcat]# jps
3121 Jps
3109 Bootstrap
3084 Bootstrap

[root@volatile tomcat]# ps -ef | grep tomcat
root      3084     1  8 10:50 pts/0    00:00:05 /usr/bin/java

-Djava.util.logging.config.file=/usr/local/tomcat/apache-tomcat-7.0.78/conf/logging.properties

-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048

-Djava.endorsed.dirs=/usr/local/tomcat/apache-tomcat-7.0.78/endorsed

-classpath /usr/local/tomcat/apache-tomcat-7.0.78/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-7.0.78/bin/tomcat-juli.jar

-Dcatalina.base=/usr/local/tomcat/apache-tomcat-7.0.78 -Dcatalina.home=/usr/local/tomcat/apache-tomcat-7.0.78

-Djava.io.tmpdir=/usr/local/tomcat/apache-tomcat-7.0.78/temp org.apache.catalina.startup.Bootstrap start


root      3109     1  8 10:50 pts/0    00:00:05 /usr/bin/java

-Djava.util.logging.config.file=/usr/local/tomcat/apache-tomcat-7.0.78-2/conf/logging.properties

-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djdk.tls.ephemeralDHKeySize=2048

-Djava.endorsed.dirs=/usr/local/tomcat/apache-tomcat-7.0.78-2/endorsed

-classpath /usr/local/tomcat/apache-tomcat-7.0.78-2/bin/bootstrap.jar:/usr/local/tomcat/apache-tomcat-7.0.78-2/bin/tomcat-juli.jar

-Dcatalina.base=/usr/local/tomcat/apache-tomcat-7.0.78-2 -Dcatalina.home=/usr/local/tomcat/apache-tomcat-7.0.78-2

-Djava.io.tmpdir=/usr/local/tomcat/apache-tomcat-7.0.78-2/temp org.apache.catalina.startup.Bootstrap start


root      3185  2032  0 10:51 pts/0    00:00:00 grep --color=auto tomcat

f、本机通过http://192.168.164.100:8080和http://192.168.164.100:9080查看是否可正常访问tomcat(这里禁止了虚拟机的防火墙,否则需要修改防火墙配置)


四、nginx配置:

nginx的配置会比tomcat复杂,因为tomcat只需要解压后即可使用,nginx需要先进行安装,安装时还需要检查依赖环境,所以需要虚拟机可以访问互联网,由于这里Linux使用的host-only的网络连接方式,需要进行部分操作方可访问外部网络。

host-only连接外部网络(VirtualBox):

a、VirtualBox会在本机的网络中新建出一个虚拟网卡用于充当虚拟机的网关,将该虚拟网卡设置为自动获取IP地址,然后将本机连接互联网的网卡为虚拟网卡设置共享,这个时候会为虚拟网卡自动分配一个指定的IP地址,可进行修改(修改为Linux的网段网关,如:Linux 192.168.164.100 则 192.168.164.1)

b、修改Linux网络配置文件 vim /etc/sysconfig/network-scripts/ifcfg-enp0s3 

bootproto=static
HWADDR=08:00:27:b2:63:05
NM_CONTROLLED=yes
ONBOOT=yes
TYPE=Ethernet
GATEWAY=192.168.164.1
IPADDR=192.168.164.100
NETMASK=255.255.255.0
UUID=d5d33b45-959d-4f17-a101-d630b316179c 

其中,IPADDR为本机IP ,GATEWAY为虚拟网卡的IP(即虚拟机网关地址),HWADDR为虚拟机的MAC地址(可通过ifconfig查询到)

vim /etc/resolv.conf 增加 nameserver 192.168.164.1(虚拟机网关地址)

c、systemctl restart network,重启网络服务,使用虚拟机ping www.baidu.com 看是否能连通外部网络

当虚拟机可以访问外部网络后,进行nginx的安装,首先将nginx解压到/usr/local/nginx目录下 tar -xvf nginx-1.13.0.tar.gz -C /usr/local/nginx,然后进入到该目录进行nginx的安装和配置

a、./nginx-1.13.0/configure -prefix=/usr/local/nginx(-prefix=/usr/local/nginx为指定检查依赖环境后nginx的安装位置

b、运行后会检查出缺少gcc、pcre、zlib环境,依次yum install gcc-c++,yum install pcre-devel,yum install zlib-devel 或者一句指令安装依赖环境

c、依赖环境检查完成后 make && make install 即可安装好nginx

d、./sbin/nginx 启动nginx服务,可通过ps -ef | grep nginx 查看nginx启动情况,然后通过本机访问http://192.168.164.100:80(nginx默认80端口)

e、修改nginx配置文件,实现反向代理和负载均衡  vim conf/nginx.conf 

   upstream moral{
        server 192.168.164.100:8080;
        server 192.168.164.100:9080;
   
    
}

#(增加处)
   
  server {
        listen       80;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
            #root   html;
            #index  index.html index.htm;
            proxy_pass http://moral;
        }

#(修改处)
        #error_page  404              /404.html;
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
   
 }

f、重启nginx服务器 ./sbin/nginx -s reload,再次通过本机访问http://192.168.164.100:80 (nginx默认端口)可发现请求会在两个tomcat服务器之间切换(可通过修改tomcat-2的index.jsp页面直观的看出nginx访问这两台tomcat服务器的切换操作)

五、关闭tomcat服务器和nginx服务器

nginx服务器关闭:

a、ps -ef | grep nginx 查找到nginx服务启动的进程号

b、kill -quit 进程号 关闭nginx服务器

tomcat服务器关闭:

a、cd /usr/local/tomcat 切换到tomcat目录

b、运行 ./apache-tomcat-7.0.78/bin/shutdown.sh和./apache-tomcat-7.0.78-2/bin/shutdown.sh关闭两台tomcat服务器

你可能感兴趣的:(Extension)