内网/外网实现部署nginx服务

1.安装nginx的前置依赖

外网环境直接通过yum安装依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel

内网环境需要提前下载rpm或压缩包来安装
这里来通过rpm包安装,用压缩包安装总是遇见诡异的bug
在这里插入图片描述
已经整理到网盘中,可以直接下载
链接:https://pan.baidu.com/s/1byqQbl72RSzaYyHWYjeupw
提取码:1199

1.cd /user/local
2.mkdir rpmback
3.cd rpmback
4.rz
安装rpm包
5.rpm -Uvh *.rpm --nodeps --force
在这里插入图片描述

2.安装nginx并初始化

1、cd /usr/local
2、mkdir nginx
3、cd nginx
//下载tar包
4、wget http://nginx.org/download/nginx-1.20.2.tar.gz
上传nginx-1.20.2.tar.gz
//解压tar包
5、tar -xvf nginx-1.20.2.tar.gz
6、cd nginx-1.20.2
//执行命令
7、./configure
在这里插入图片描述

//执行make命令
8、make
//执行make install命令
9、make install
执行后上面命令后刷新一下当前目录。
10、cd conf

编辑nginx.conf文件,配置你的nginx,开始写个简单的接口代理吧

#user  nobody;
worker_processes  1;
 
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
 
#pid        logs/nginx.pid;
 
 
events {
    worker_connections  1024;
}
 
 
http {
    include       mime.types;
    default_type  application/octet-stream;
 
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
 
    #access_log  logs/access.log  main;
 
    sendfile        on;
    #tcp_nopush     on;
 
    #keepalive_timeout  0;
    keepalive_timeout  65;
 
    #gzip  on;
 
    server {
        listen       监听的端口;
        server_name  ip地址;
 
        #charset koi8-r;
 
        #access_log  logs/host.access.log  main;
 		
 		#浏览器键入ip端口实际访问的路径
        location / {
        		# 您的前台项目包地址
                root   /home/dist;
                try_files $uri $uri/ /index.html;
                index  index.html index.htm;
        }
 		#对后台接口的简单代理
        location /prod-api/ {
        		add_header 'Access-Control-Allow-Origin' $http_origin;
       		add_header 'Access-Control-Allow-Credentials' 'true';
       		add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
       		add_header 'Access-Control-Allow-Headers' 'Authorization';
       		add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
       		if ($request_method = 'OPTIONS') {
                	add_header 'Content-Type' 'text/plain; charset=utf-8';
                	add_header 'Content-Length' 0;
                	return 204;
			}
                proxy_set_header Host $http_host;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_set_header REMOTE-HOST $remote_addr;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_pass http://IP地址:端口/;
        }

        location /login {
			proxy_read_timeout 600s;
			proxy_set_header X-Real-IP  $remote_addr;
			proxy_set_header Host $host:$server_port;
			proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
			proxy_pass http://ip地址:端口/login;
		}
 
        #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;
        }
    }
}

3.配置服务器nginx环境变量

1、vi /etc/profile
2、添加export PATH=$PATH:/usr/local/nginx/sbin
3、保存
4、source profile
//验证环境变量是否生效
5、nginx -h

4.上传前台项目包

上传打包文件到nginx配置的路径中,/home/dist

5.启动nginx

当已经配置好nginx并上传打包文件到nginx配置前台运行地址的根目录中。
//启动nginx
1、 Nginx
//停止nginx
2、 nginx -s stop
//重启nginx
3、 nginx -s reload
//查看nginx是否运行成功
4、ps -ef | grep nginx
打开浏览器在地址栏中键入你服务器的ip地址,看能否正确返回您需要的内容。
后续每次修改前台代码后,打包后上传dist文件到/home目录下。运行nginx -s reload命令。

### 回答1: 要实现Nginx外网访问内网API,可以采用反向代理的方式。 首先,需要在内网中启动API服务器,并确保其能够在内网环境中正常访问和运行。可以使用任何喜欢的编程语言或框架来编写和部署API服务。 接下来,在位于外网服务器上安装和配置NginxNginx是一个高性能的HTTP和反向代理服务器,可以将外部请求转发到内部API服务器。 首先,需要配置Nginx的基本设置。可以在Nginx的主配置文件中定义服务器的监听端口、域名和其他相关设置。 然后,在Nginx的配置文件中定义反向代理规则,将外网请求转发到内网API服务器的相应地址和端口。可以使用下面的配置示例: ``` server { listen 80; server_name api.example.com; location / { proxy_pass http://内网API服务器的IP地址:端口号; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; } } ``` 在这个配置示例中,Nginx会监听80端口,并将来自api.example.com域名的请求转发到内网API服务器的对应地址和端口。同时,还设置了一些代理服务器的头信息,以确保内网API服务器能够正确获取客户端的信息。 最后,保存并重新加载Nginx的配置文件,使其生效。可以使用以下命令: ``` sudo nginx -s reload ``` 完成上述步骤后,就可以通过外网访问api.example.com来访问内网API了。Nginx会将外部请求转发到内网API服务器,然后将响应返回给客户端。 需要注意的是,为了确保安全性,可以考虑在Nginx中启用SSL证书,配置HTTPS访问。这样可以对外网访问内网API的通信进行加密,提高数据的安全性。 ### 回答2: Nginx 是一个高性能的开源Web服务器软件和负载均衡器,它通常用于将外部请求转发到内部服务器上的应用程序。要使用Nginx实现外网访问内网API,可以通过以下几个步骤完成。 首先,您需要在内网部署一个API服务器。这个服务器可以是运行在本地计算机上,也可以是运行在局域网中的某台服务器上。确保API服务器已经配置并可以从内部网络访问。 然后,您需要在具有公网IP的服务器上安装和配置Nginx。这台服务器可以是专门为此目的购买的,或者是您已经拥有并且可以从互联网访问的服务器。 接下来,您需要在Nginx的配置文件中添加一个代理配置,将外部请求转发到内网API服务器。在Nginx的配置文件中,您可以使用`proxy_pass`参数指定内网API服务器的IP地址和端口号,如下所示: ``` location /api { proxy_pass http://内网API服务器的IP地址:端口号; } ``` 保存并重启Nginx,使配置生效。 最后,您可以通过使用Nginx服务器的公网IP地址和端口号来访问内网API。只需在浏览器中输入`http://公网IP地址:端口号/api`即可访问。 需要注意的是,在实际部署过程中,还需要根据具体情况进行一些其他配置,例如负载均衡、安全认证等。这样才能确保外网访问内网API的安全和稳定性。 总结来说,使用Nginx实现外网访问内网API是一种常见的解决方案,它可以帮助实现外网的互通,方便外部用户访问内部的应用程序。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值