虚拟机中的一个系统就相当于一个根目录,是一台计算机 相当于一个服务器,那么阿里云服务器都能添加端口,那ubuntu也能。
而根目录的类别不同(linux,window,… ),系统不同,就是计算机的类型不同。
一台服务器可以搭建多个网站(储存信息),我们通过外网,经过端口来访问服务器中的进程信息也就是网站。每一个进程对应一个端口,我们在外网通过服务器不同的端口访问服务器,达到访问不同进程(网站)的目的。==如果没有80端口,那么外网将无法访问到服务器中的http服务(进程)。==而一个端口只能用来访问服务器中的一个进程(一个网站)。如果端口已经被外网用来访问了一个进程了,那么外网就一定不能再通过该端口,来访问服务器的其他进程了。所以OJ搭建的时候,80端口已经被外网用来访问apathe2进程了,所以在用80端口来访问OJ的话,就会出现错误。
服务器系统一旦重装所有信息消失网站也会消失。
查看Ubuntu当前所有开放端口和占用端口进程使用情况
netstat -aptn
单独查询端口使用情况
lsof -i:80 // 这里查询80端口的使用情况
实现一个服务器搭建多个网站并实现选择性访问
域名在与服务器公网IP DNS解析 后,www.域名 == 服务器公网IP
http不安全访问服务器只通过80端口访问,浏览网页服务默认的端口号都是80,因此只需输入网址即可,不用输入“:80”了。当然如果你非要访问服务器其他端口,你可以域名(或公网IP)加:端口号
,来访问。不加的话,就是默认80端口。
http服务的强大之处在于可以实现端口复用,通过端口之后根据访问进程的域名不同实现一端口多访问。
利用域名+nginx反向代理实现
工作原理:我们通过浏览器访问域名,域名等价于服务器的公网ip,直接访问域名就相当于是访问域名的80端口,即为服务器的80端口, 所有域名都是访问的服务器的80端口, 因为绑定的是公网ip。因为我们要利用nginx实现端口转发,所以我们必须让nginx占用80端口。而我们将nginx服务器占用80端口,我们在nginx的配置文件中只需要将服务器端口或目录和域名之间建立一个映射关系,利用nginx实现访问转发,到各个端口或目录下,从而达到访问服务器其他端口的效果。即实现端口复用, 一进程多个域名访问, 多写几个server块即可。
实操步骤
增加配置文件/etc/nginx/siteenabled/default的server块,每个server块代表着一个转发路径,一种映射关系。
端口映射域名的server
server {
listen 80; // 这里只能这样写不能写成default那种
server_name 域名;
location / {
proxy_pass http://公网IP:该进程(网站)占用的服务器端口。当然这个地方也可以写外网ip/home/...(+目录)实现登山
}
}
// 公网ip+端口号访问
目录映射域名的server
server {
listen 80;
server_name 域名;
location / {
root index.html文件在服务器上的绝对路径;
index index.html index.htm; // 固定的
}
}
// 公网ip+文件路径访问
配置文件格式敏感!!!!
安全访问域名绑定ssl证书
关闭端口
- 关闭服务器的端口:
- 关闭某个端口,如80端口
sudo ufw deny 80
- 关闭端口处此时的服务
查看端口是否已经打开