Ubuntu 16.04 -- 同时配置Nginx(转发)和frp(内网映射)和HTTPS(ca加密) - 端口转发

Ubuntu16.04下:

sudo apt -get nginx

用这条命令安装完nginx之后, nginx在该目录下:

然后配置nginx:

如下:

红圈圈住的地方多写几个可以做负载均衡. 端口转发

什么是端口转发

当我们在服务器上搭建一个图书以及一个电影的应用,其中图书应用启动了 8001 端口,电影应用启动了 8002 端口。此时如果我们可以通过

localhost:8001    //图书
localhost:8002    //电影

但我们一般访问应用的时候都是希望不加端口就访问域名,也即两个应用都通过 80 端口访问。但我们知道服务器上的一个端口只能被一个程序使用,这时候如何该怎么办呢?一个常用的方法是用 Nginx 进行端口转发。Nginx 的实现原理是:用 Nginx 监听 80 端口,当有 HTTP 请求到来时,将 HTTP 请求的 HOST 等信息与其配置文件进行匹配并转发给对应的应用。例如当用户访问 book.douban.com 时,Nginx 从配置文件中知道这个是图书应用的 HTTP 请求,于是将此请求转发给 8001 端口的应用处理。当用户访问 movie.douban.com 时,Nginx 从配置文件中知道这个是电影应用的 HTTP 请求,于是将此请求转发给 8002 端口的应用处理。一个简单的 Nginx 配置文件(部分)如下面所示:

#配置负载均衡池
#Demo1负载均衡池
upstream book_pool{
    server 127.0.0.1:8001;
}
#Demo2负载均衡池
upstream movie_pool{
    server 127.0.0.1:8002;
}

#Demo1端口转发
server {
    listen       80;
    server_name  book.chanshuyi.com;
    access_log logs/book.log;
    error_log logs/book.error;

    #将所有请求转发给demo_pool池的应用处理
    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://book_pool;
    }
}
#Demo2端口转发
server {
    listen       80;
    server_name  movie.chanshuyi.com;
    access_log logs/movie.log;
    error_log logs/movie.error;

    #将所有请求转发给demo_pool池的应用处理
    location / {
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_pass http://movie_pool;
    }
}

上面这段配置实现了:

1、当用户访问的域名是:http://book.chanshuyi.com 时,我们自动将其请求转发给端口号为 8001 的 Tomcat 应用处理。

2、当用户访问的域名是:http://movie.chanshuyi.com 时,我们自动将其请求转发给端口号为 8002 的 Tomcat 应用处理。

上面的这种技术实现就是端口转发。端口转发指的是由软件统一监听某个域名上的某个端口(一般是80端口),当访问服务器的域名和端口符合要求时,就按照配置转发给指定的 Tomcat 服务器处理。我们常用的 Nginx 也有端口转发功能。

时间: 2024-10-11 01:01:21

Ubuntu 16.04 -- 同时配置Nginx(转发)和frp(内网映射)和HTTPS(ca加密) - 端口转发的相关文章

Ubuntu 16.04下配置nginx与nodejs以及服务的部署

title: Ubuntu 16.04下配置nginx与nodejs以及服务的部署 date: 2019-05-05 22:45:49 tags: Linux --- 第一步:安装nginx sudo apt-get update sudo apt-get install nginx 如果遇到依赖问题,尝试执行sudo apt-get -f install命令 第二步:配置nginx 首先备份原先的配置文件:sudo cp /etc/nginx/sites-available/default /

Ubuntu 16.04 LTS 安装 Nginx/PHP 5.6/MySQL 5.7 (LNMP) 与Laravel

1.MySQL安装[安装 MariaDB]MariaDB是MySQL的一个分支首先,更新升级系统$ sudo apt update$ sudo apt upgrade安装MariaDB:$ sudo apt install mariadb-server启动MariaDB服务:$ sudo systemctl start mysql$ sudo systemctl enable mysql查看状态:$ sudo systemctl status mysql 为例提高MariaDB的安全,我们可以执

【转】Ubuntu 16.04安装配置TensorFlow GPU版本

之前摸爬滚打总是各种坑,今天参考这篇文章终于解决了,甚是鸡冻\(≧▽≦)/,电脑不知道怎么的,安装不了16.04,就安装15.10再升级到16.04 requirements: Ubuntu 16.04 python 2.7 Flask tensorflow GPU 版本 安装nvidia driver 经过不断踩坑的安装,终于google到了靠谱的方法,首先检查你的NVIDIA VGA card model sudo lshw -numeric -C display 可以看到你的显卡信息,比如

Ubuntu 16.04数据库配置

一 安装MySqlsudo apt-get install mysql-server mysql-client测试mysql -u root -h "127.0.0.1" -p 注释配置文件访问限制 sudo suvi /etc/mysql/mysql.conf.d/mysqld.cnf#bind-address = 127.0.0.1退出并保存:wq! MySql远程连接密码mysql -u root -pGRANT ALL PRIVILEGES ON *.* TO [email p

ubuntu 16.04环境配置

ubuntu 16: 1.源cp /etc/apt/sources.list /etc/apt/sources.list.bkpvi /etc/apt/sources.list-+{    deb http://mirrors.aliyun.com/ubuntu/ xenial main restricted universe multiverse    deb http://mirrors.aliyun.com/ubuntu/ xenial-security main restricted u

ubuntu 16.04 部署 pypy+nginx+uwsgi+django(详细)

1.nginx                                                                                                                                              安装nginx之前先安装python的pip,千万不能用pypy的pip,会容易破坏依赖关系,很难修复, sudo apt-get install nginx 因为,是自动安装,所以nginx的配置文件

ubuntu 16.04 网络配置及ssh 连接问题

网卡配置:需要切换到root , sudo -s vim /etc/network/interfaces 具体配置: auto lo auto ens33 iface ens33 inet static address 192.168.50.104 netmask 255.255.255.0 gateway 192.168.40.200 dns-nameserver 218.85.152.99 2.安装完成后,ssh 若无法连接,需要安装下openssh-server sudo apt-get

Ubuntu 16.04 samba 配置

1.首先在Ubuntu系统安装samba服务: sudo apt-get insall samba 2.创建共享目录: 我一般直接把我的home目录整个共享.路径/home/xyp/: 当然也可以新建其他目录. 3.修改samba配置文件: 首先保存已有的配置文件: sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak 修改配置文件: 在配置文件的末尾添加如下内容: [xyp] comment = Share Folder require pas

【18/12/29】Ubuntu 16.04下配置intel opencl环境

一. 靠谱的安装教程 1. 官网教程 https://software.intel.com/en-us/articles/sdk-for-opencl-2019-gsg,打开后往下拉到[4. Production Examples]处,即可找到入口. 官网教程的链接,是从 https://blog.csdn.net/wd1603926823/article/details/79139172 中找到的: 2. 简略版的安装教程 (好像没有安装driver?相对官网的简短很多),https://ww