Windows下Nginx安装、使用

https://www.jacksonlhj.cn/articles/2022/03/18/1647580891469.html

一、下载Nginx

下载地址:http://nginx.org/en/download.html
下载windos版的直接解压即可

二、启动Nginx的方法

一、直接打开nginx.exe,弹窗会关闭,其实已经启动,在进程中可以看到。

二、打开CMD、切换到nginx解压目录下,执行命令 nginx.exe 或者 start nginx。

三、检查是否启动成功,如果没有修改nginx.conf文件,直接打开浏览器访问http://localhost:80即可,出现以下内容即成功。
在这里插入图片描述

三、关闭Nginx

1、可以直接在进程中关闭。
2、打开CMD,切换到Nginx的目录下,执行命令nginx -s stop(快速停止nginx) 或 nginx -s quit(完整有序的停止nginx)

四、使用Nginx整合Springboot跨域实现前后端分离

使用Nginx反向代理,可以解决跨域无权和Session丢失的问题,十分方便。

一、找到nginx.conf文件
修改配置文件

worker_processes  1;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;

    sendfile        on;
    keepalive_timeout  65;

    #前端页面服务器
    server {
        #监听端口和域名
        listen       80; 
        server_name  localhost;

        #添加头部信息
        proxy_set_header Cookie $http_cookie;
        proxy_set_header X-Forwarded-Host $host;
        proxy_set_header X-Forwarded-Server $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    
        #添加拦截路径和代理地址
        location /sys/ {          
               proxy_pass http://localhost:8080/;  #注意:使用代理地址时末尾记得加上斜杠"/"。  
        }
    
        #添加拦截路径和根目录
        location / {
               root   html/fslayui;  #注意:使用"/"拦截全路径的时候记得放在最后。
               index  index.html index.htm;  #index表示首页 
        }       
    
    }
}

二、部署前端文件
可以直接将静态资源(例如前端页面)部署到Nginx的html目录。在Nginx/html目录下创建一个名为fslayui的文件夹,并添加一个页面(index.html)用于跨域访问测试,index页面内容如下:
注意:下面的url地址的IP和端口需要与你nginx.conf配置的server中nginx的域名和端口一致(例如本文配置的是localhost:80),因为你是访问的是Nginx服务器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8"/>
    <title>Page Index</title>
</head>
<body>
<h2></h2>
<p id="test"><p/>
</body>

<script src="js/jquery.js"></script>
<script>
        $.ajax({
            url: 'http://localhost:80/sys/user/login',
            type: "POST",
            success: function (data) {
                $.ajax({
                    url: 'http://localhost:80/sys/user/login',
                    type: "POST",
                    success: function (data) {
                        $("#test").html("Success:" + data);
                    }
                });
            },
            error: function (data) {
                $("#test").html("跨域失败!!");
            }
        });
</script>
</html>

三、编写Controller访问
注意:后台启动端口需要与nginx.conf中设置的location中的proxy_pass一致。

@SpringBootApplication
@RestController
@RequestMapping("/user/")
public class SpringBootNginxApplication {
    //提供验证码
    @RequestMapping("login")
    public String verifyCode(HttpServletRequest request) {
        request.getSession().setAttribute("test", "nginx");
        return request.getSession().getId() + ":" + request.getSession().getAttribute("test");
    }

    public static void main(String[] args) {
        SpringApplication.run(SpringBootNginxApplication.class, args);
    }
}

四、访问Nginx代理服务器配置的地址

http://localhost:80/index.html

五、Nginx跨域总结

Nginx VS CORS
简单来说,Nginx是间接跨域,而CORS则实现了直接跨域。Nginx的反向代理“欺诈了”浏览器,所以浏览器和服务器都认为是同源访问,所以Session不会丢失。(PS:如果发生跨域访问,服务器会每次都创建新的Session,所以才造成了前后端分离的Session丢失问题。) 至于CORS这种跨域机制的安全性和灵活性更高,但需要自己解决跨域访问Session丢失的问题,通常情况可以采用Session+Redis来实现Session共享。)

本文参考:https://www.cnblogs.com/endv/p/12655866.html
https://www.jianshu.com/p/520021853827

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值