nginx与tomcat通信使用的端口号为

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nginx与tomcat通信使用的端口号为相关的知识,希望对你有一定的参考价值。

1.首先将tomcat改为8080端口(具体细节不再阐述,可自行百度)
2.在nginx的安装目录下 (我的目录是 /usr/local/nginx )创建一个新的文件夹 vhosts,然后在vhosts文件夹下创建一个tomcats.conf文件
tomcats.conf文件内容如下:

server
listen 80;
server_name xx.xx.xx.xx;(想要设置的访问地址)
#charset koi8-r;
#access_log logs/host.access.log main;
location /
proxy_pass http://xx.xx.xxx.xxx:8080;(现在想要设置的路径的访问地址)
root html;
index index.html index.htm;

error_page 500 502 503 504 /50x.html;
location = /50x.html
root html;
3.打开nginx安装目录下的conf下的nginx.conf文件
4.在文件底部加上

include /usr/local/nginx/vhosts/*; (包含所有虚拟机主机文件,加在最后那个大括号前面)
1
5.然后在文件中间找到

location /
proxy_pass http://xx.xx.xxx.xxx:8080; (加上这个,指定自己本机的tomcat的地址)
root html;
index index.html index.htm;

1
2
3
4
5
重启tomcat,nginx

另外补上一点,其实nginx一般是不用重启的,它可以通过与-s参数调用可执行来控制

nginx -s signal
1
其中,信号可以是下列之一:

stop — fast shutdown
quit — graceful shutdown
reload — reloading the configuration file
reopen — reopening the log files
1
2
3
4
在配置文件中所作的更改不会被应用,直到命令重新配置被发送到nginx的或重新启动。要重新加载配置,执行:

nginx -s reload
1
如果非要重新启动或停止,可采用下面的方法
从容停止
 1、查看进程号

ps -ef|grep nginx
1
2、杀死进程,注意一共有三个进程,一定要杀死后面带master的进程id

kill -QUIT xxxx
1
快速停止
1、查看进程号

ps -ef|grep nginx
1
2、杀死进程

kill -TERM 2132
1


kill -INT 2132
1
强制停止

pkill -9 nginx
1
在操作过程中遇到一个坑:
配置nginx 反向代理的时候出现了

nginx: [emerg] invalid URL prefix in /usr/local/nginx/conf/nginx.conf
参考技术A 1.首先将tomcat改为8080端口(具体细节不再阐述,可自行百度)
2.在nginx的安装目录下 (我的目录是 /usr/local/nginx )创建一个新的文件夹 vhosts,然后在vhosts文件夹下创建一个tomcats.conf文件
tomcats.conf文件内容如下:

server
listen 80;
server_name xx.xx.xx.xx;(想要设置的访问地址)
#charset koi8-r;
#access_log logs/host.access.log main;
location /
proxy_pass http://xx.xx.xxx.xxx:8080;(现在想要设置的路径的访问地址)

网络通信与TCP

网络通信与TCP

一、计算机之间如何精确的连接?

  • ip地址

    计算机通过ip地址找到对方的计算机,每台计算机的ip地址都是独一无二的

  • 端口号

    • 端口号是一个逻辑端口,我们无法直接看到,可以使用一些软件查看端口号

    • 当我们使用网络软件一打开,那么操作系统就会为网络软件分配一个随机的端口号,或者网络软件在打开的时候和系统要指定的端口号

    • 端口号由两个字节组成,取值范围在0-65535之间

    • 1024之前的端口号我们不能使用,已经被系统分配给已知的网络软件了

    • 网络软件的端口号不能重复使用

    • 常用的端口号:

      网络端口:80端口

      数据库mysql:3306

      oracle:1521

      Tomcat服务器:8080

二、TCP通信概述

  • TCP通信能实现两台计算机之间的数据交互,通信的两端要严格区分为客户端(Client)和服务端(Server)

  • 两端通信的步骤:

    1. 服务器程序启动,等待客户端连接
    2. 客户端主动连接服务器端,建立一个逻辑连接

    注意:

    • 这个连接包含一个IO对象,客户端和服务端使用IO对象进行通信
    • 通信的数据不仅仅是字符,所以IO对象是字节流对象
    • 客户端和服务端进行一个数据交互需要4个IO流对象
  • 在Java中提供了两个类用于实现TCP通信程序:

    1. 客户端:java.net.Socket类表示创建Socket对象,向服务端发出连接请求,服务端响应请求,两者建立连接开始通信
    2. 服务端:java.net.ServerSocket类表示创建ServerSocket对象,相当于开启一个服务器,并等待客户的连接

三、Socket类

  • 该类实现客户端套接字,套接字指的是两台设备之间通信的端点
  • 构造器:

  • Socket类的方法:

  • 创建一个Socket对象:
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;

public class TCPClient {
    public static void main(String[] args) throws IOException {
        //1.创建一个客户端对象Socket,构造方法绑定服务器IP地址和端口号
        Socket socket = new Socket("10.159.55.7", 8888);
        //2.使用Socket对象中的方法getOutputStream()获取网络字节输出流OutputStream对象
        OutputStream os = socket.getOutputStream();
        //3.使用网络字节输出流OutputStream对象中的方法write向服务器发送数据
        os.write("你好服务器".getBytes());
        //4.使用Socket对象中的方法getInputStream()获取网络字节输入流InputStream对象
        InputStream is = socket.getInputStream();
        //5.使用网络字节输入流InputStream对象中的方法read读取服务器回写的数据
        byte[] bytes = new byte[1024];
        int len = is.read(bytes);
        System.out.println(new String(bytes, 0, len));
        //6.释放资源
        socket.close();
    }
}

四、ServerSocket类

  • 服务器必须明确一件事,必须知道是哪个客户端请求的服务器,所以可以使用accept方法获取到请求的客户端对象Socket。成员方法:Socket accept() 侦听并接受到此套接字的连接

  • 构造方法:

  • ServerSocket类的方法:

  • 创建一个ServerSocket对象:
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class TCPServer {
    public static void main(String[] args) throws IOException {
        //1.创建服务器ServerSocket对象和系统要指定的端口号
        ServerSocket server=new ServerSocket(8888);
        //2.使用ServerSocket对象中的方法accept获取到请求的客户端对象Socket
        Socket socket=server.accept();
        //3.使用Socket对象中的方法getInputStream()获取网络字节输入流InputStream对象
        InputStream is=socket.getInputStream();
        //4.使用网络字节输入流InputStream对象中的方法read读取客户端发送的数据
        byte[] bytes=new byte[1024];
        int len=is.read(bytes);
        System.out.println(new String(bytes,0,len));
        //5.使用Socket对象中的方法getOutputStream()获取网络字节输出流OutputStream对象
        OutputStream os=socket.getOutputStream();
        //6.使用网络字节输出流OutputStream对象中的write方法给客户端回写数据
        os.write("收到".getBytes());
        //7.释放资源
        socket.close();
        server.close();
    }
}

运行:

【注意】:先运行服务器端程序,再运行客户端程序

以上是关于nginx与tomcat通信使用的端口号为的主要内容,如果未能解决你的问题,请参考以下文章

Linux下搭建一个nginx+2tomcat负载均衡环境

Linux下搭建一个nginx+2tomcat负载均衡环境(转)

怎么改tomcat的端口号?

JavaWeb学习—如何修改Tomcat的端口号

Tomcat的端口号怎么修改?

修改Tomcat服务器的端口号