腾讯云利用NGINX部署前后端项目出现403错误

目录

一,常见的问题

二,解决方法

三,结语


一,常见的问题

403错误一般是权限不够,但是我按照网上其他教程修改成777,或者添加user root仍然报错,error.log日志中会出现以下以下警告

我自己的问题是由于nginx进程开得太多,在windows系统下,每次修改nginx.conf文件时都是直接点击nginx.exe,我前端项目就放在nginx的html文件夹下,网上有个新建app文件夹,然后把静态资源放进去,我也试了,根本不行,看到某一篇博客写的是用命令行的方式去刷新nginx服务,windows10下结束关于nginx的代码如下

taskkill /f /im nginx.exe #结束所有有关nginx进程
start nginx.exe #启动nginx服务

在linux系统下类似,命令差不多。

二,解决方法

原本打算做一个利用nginx部署到云服务器上的demo,因此就写了个简单的登录请求,前端用post请求,最开始直接部署上去发现nginx无法代理到后端提供服务的端口,在linux下我不断使用

./nginx -s reload

来刷新nginx的服务,然后疯狂出错,我就简化了下,现在本地部署nginx,代理本地的访问请求,本地提供后端服务,前端我用vue框架,最开始连转发端口都没有明白,前端的端口和后端的端口,以及nginx代理的端口之间的关系,在nginx里配置端口的时候一直出错,因为前端项目我一直在本地运行,访问请求也是用的proxy代理,后来发现用nginx就不需要前端写访问后端的ip地址,只需发送访问请求,请求后端就由nginx来做,本地的项目配置如下

前端

后端

nginx配置


#user root;
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;

	#设定通过nginx上传文件的大小
    client_max_body_size 300m;
	
    #keepalive_timeout  0;
    keepalive_timeout  65;

    server {
		autoindex on;
        listen       8099;
        server_name  localhost;
		
	add_header Access-Control-Allow-Origin *;
	add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
	add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';

        #charset koi8-r;
    }
		
    #配置节点1
    location / {
        #存放静态资源的地方,也可以放在默认目录nginx的html下 就不用写路径
	root D:\Study\vue\wendao_vue\dist;
	index  index.html index.html;		
	#单页面应用解决重定向问题
        try_files $uri $uri/ /api$uri?$args;
    }		
    location /api {
	proxy_set_header    X-Forwarded-Host    $host;
	proxy_set_header    X-Forwarded-For     $proxy_add_x_forwarded_for
	proxy_pass http://127.0.0.1:8011/liu;	
    }
   }
}

前端login请求是http://127.0.0.1:8099/api/XXX,这里的端口号就是nginx监听的端口号,然后根据端口号后面的字符串进行匹配,在location .^/?{.....}里先找到location /api{}模块。这里我写了代理地址是http://127.0.0.1:8011/liu,说明前端请求到这里就会变成http://127.0.0.1:8011/liu/login,在浏览器查看访问请求时是http://127.0.0.1:8099/api/login,实际上真正的请求是http://127.0.0.1:8011/liu/login,这就完成了跨域请求,并不用后端配置@CrossOrigin注解,并实现WebMvcConfigure接口。

三,结语

总体来说,这次利用nginx部署前端后端到云服务器上,花了我整整两天的时间才解决,解决办法就是nginx线程太多,自己并没有这方面的考虑,只是照着别人的方法修改,一个方法一个方法去试,网上方法千千万,总有一种能解决自己的问题,就是比较费时间,不过直接对nginx的配置有了更多的理解,官方文档还是比较好的参考资料。


你好,欢迎读到此处,有什么想法或者见解,欢迎道友私信,我是非酋的咸鱼乀,一个不擅长写代码的却十分热衷于做梦的人。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
部署前后端项目时,可以使用nginx作为web服务器来提供前端静态文件和反向代理后端API请求。以下是nginx部署前后端项目的步骤: 1. 首先,确保已经安装了nginx。可以使用以下命令来安装nginx: ``` cd /usr/local mkdir nginx cd nginx wget http://nginx.org/download/nginx-1.13.4.tar.gz tar -xvf nginx-1.13.4.tar.gz cd nginx-1.13.4 ./configure --prefix=/usr/local/nginx make && make install ``` 2. 配置nginx。打开nginx的配置文件`/usr/local/nginx/conf/nginx.conf`,可以使用文本编辑器进行编辑。以下是一个简单的示例配置: ``` http { server { listen 80; server_name example.com; location / { root /path/to/frontend; try_files $uri $uri/ /index.html; } location /api { proxy_pass http://backend_server; } } } ``` 上述配置中,`/path/to/frontend`是前端静态文件的路径,`http://backend_server`是后端API的地址。根据实际情况进行修改。 3. 测试配置。使用以下命令可以测试nginx的配置是否正确: ``` /usr/local/nginx/sbin/nginx -t ``` 如果配置正确,会显示"nginx: configuration file /usr/local/nginx/conf/nginx.conf syntax is ok"和"nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful"。 4. 启动nginx。使用以下命令可以启动nginx: ``` /usr/local/nginx/sbin/nginx ``` 现在,nginx已经成功部署并开始监听端口80。可以通过访问服务器的IP地址来查看nginx是否正常工作。 注意:以上步骤仅仅是一个简单的示例,实际部署时可能需要根据具体需求进行配置调整。同时,还可以进一步优化nginx的配置,例如启用gzip压缩、设置缓存等,以提高性能和安全性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [nginx搭建部署前后端项目](https://blog.csdn.net/Xyouzi/article/details/118784274)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值