欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Nginx配置

程序员文章站 2022-06-11 22:24:06
...

Nginx配置

brew install nginx # 下载 安装 Nginx
sudo nginx -t # 查看是否安装成功

运行结果:

nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful

打开nginx配置文件 nginx.conf;

1.进入nginx文件下

cd  /usr/local/etc/nginx/ 

2.编辑nginx.conf文件

vim nginx.conf 

在http模块的server部分配置

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    server {
        listen       8080;
        server_name  localhost;	
    }
    include servers/*;
   	# 3. 在这后面或者花括号后面进行配置 include sites/*.conf
   	include sites/*.conf
}

4.先看看/usr/local/etc/nginx目录下有没有文件 servers , 有进入到6步骤,没有进入5步骤

ll

5.没有就新建目录 ‘mkdir’,然后进入6步骤

mkdir servers

6.在servers下,加一个文件。文件名以’.conf’结尾。比如:xx.xx.test.conf

cd servers
touch xx.xx.test.conf

7.编辑该文件

vim xx.xx.test.conf

文件内容 需要配置的nginx内容 这部分需要自己定制(照搬没用) 敏感信息用xx表示

server {
    listen       80; # 端口号
    server_name xx.xx.test; # 目标地址
    error_log /tmp/www/logs/xx.xx.test.error.log;
    access_log /tmp/www/logs/xx.xx.test.access.log;
    index index.html index.htm index.php;

    location / {
        proxy_set_header X-Forwarded-Scheme $scheme;
        proxy_set_header X-Forwarded-IP $remote_addr;
        proxy_set_header Host $host;
        proxy_pass http://127.0.0.1:18080/www-xx-com/;
        proxy_redirect http://xx.xx.test/www-xx-com/ /;
    }

}

上述步骤完成之后:

sudo nginx -t 

报错:

"/tmp/www/logs/yunqi.aliyun.test.error.log" failed (no such file or directory)
nginx:configuration file /usr/local/etc/nginx/nginx.conf test failed

原因:

“/tmp/www/logs/yunqi.aliyun.test.error.log” failed 日志目录还没有创建

解决:

mkdir -p /tmp/www/logs/

再次:

sudo nginx -t 

# 成功
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful 

接下来,测试一下:

sudo nginx
# 如果已经跑过,则运行下面的就可以了
sudo nginx -s reload

在host文件中加上:

127.0.0.1 xx.xx.test

这样,nginx服务器就配完了

扩展 Nginx

Nginx是一个代理 http web 服务器。 (代理:就是别人不想做的事情或者做不好的事情 Nginx 可以代为处理)

HTTP指的是网络上的一些请求,连接等。

Nginx 常用作 处理高并发(负载均衡) , 静态资源(处理静态文件), 代理, 反向代理。

处理静态文件的速度快,至于为什么,有待研究。索引文件以及自动索引;打开文件描述符缓冲。

反向代理是 以代理服务器的身份接收网络上的请求,然后将请求转发给内部网络上的服务器,并从服务器上得到的结果返回给网络上请求连接的客户端,此时的代理服务器对外就表现为一个反向代理服务器。

负载均衡是 将多个请求 均衡的分配给 不同的服务器(多个实例,集群)。 关联词:分布式。

使用Nginx把源地址请求代理到目标地址上。

如果使用的是dn脚手架,可以继续往下看…

启动node代码 portal层 用于Nginx的目标地址

tnpm i 

npm run start

启动前端页面 dn脚手架 用于Nginx的源地址

dn dev -e node

dn dev e的默认参数是 dev。本地mock数据会判断环境。用于 模拟接口数据。

// request文件
if(config.env === 'dev'){
  url = '/api' + url; 
}

// server文件 mock数据需要配置  当前使用了nginx了,就不需要走这段配置了
proxy:
    rules: 
      ^/api(.*): 'https://mocks.xx.com/mock/xx/'

为了不让本地环境使用mock数据,需要做如下处理:

// config.node.jsmodule.exports = {
    env: 'node',
};

当使用dn dev -e node启动项目时,指定使用node环境(自定义),就不会使用到mock的数据了。

而是会通过 Nginx 代理到node端口提供的真正的接口数据。