Nginx快速入门
- nginx是什么?
nginx是一款高性能的http和反向代理的轻量级服务器,同时也提供了IMAP/POP3/SMTP服务。
- nginx能做的事?
- 反向代理
- 负载均衡
- 动静分离
- nginx的特点?
占有内存少,并发能力强
-
nginx常用命令?
进入到nginx的安装目录 cd /usr/local/nginx/sbin
- ./nginx # 启动
- ./nginx -s stop # 强制停止
- ./nginx -s quit # 安全的停止
- ./nginx -s reload # 重新加载配置文件重启
- linux安装nginx 和nginx配置文件?
- linux安装nginx
jdk安装:Linux上安装JDK1.8
这边使用yum 安装,
systemctl start nginx
启动nginx,启动后,结构如图:启动nginx,因为nginx默认端口是80,因此可以直接访问服务器的地址即可
-
nginx配置文件
样例配置
// 从配置文件开始到 events 块之间的内容,主要会设置一些影响nginx 服务器整体运行的配置指令,主要包括配置运行 Nginx 服务器的用户(组)、允许生成的 worker process 数,进程 PID 存放路径、日志存放路径和类型以及配置文件的引入等。 worker_processes 1; // events 块涉及的指令主要影响 Nginx 服务器与用户的网络连接,常用的设置包括是否开启对多 work process 下的网络连接进行序列化,是否允许同时接收多个网络连接,选取哪种事件驱动模型来处理连接请求,每个 word process 可以同时支持的最大连接数等。 下述例子就表示每个 work process 支持的最大连接数为 1024. events { worker_connections 1024; } // http 下包括server块,server块下包含location还有就是upstream块 http { include mime.types; default_type application/octet-stream; sendfile on; keepalive_timeout 65; server { listen 80; server_name localhost; location / { root html; index index.html index.htm; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
- 实际例子配置
- 代码
user nginx; worker_processes auto; error_log /var/log/nginx/error.log notice; pid /var/run/nginx.pid; events { worker_connections 1024; } http { include /etc/nginx/mime.types; default_type application/octet-stream; log_format main 'remote_addr -remote_user [time_local] "request" ' 'statusbody_bytes_sent "http_referer" ' '"http_user_agent" "$http_x_forwarded_for"'; access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; keepalive_timeout 65; #gzip on; include /etc/nginx/conf.d/*.conf; // 只需关注这个地方即可 upstream liam { server 47.104.78.154:8080 weight=3; server 47.104.78.154:8081 weight=1; } server { listen 80; server_name 47.104.78.154; # 这是部署nginx的地址 location / { proxy_pass http://liam; } } }
说下上面干了啥,假设我们访问http://47.104.78.154/hello,那么会代理到server 47.104.78.154:8080 服务和server 47.104.78.154:8081 服务上。这两个服务的端口不一样,但是提供的服务是一样的,提供的服务很简单,看如下图:
具体代码参考:https://gitee.com/fangping94/nginx-demo
-
测试:
在 upstream 里面的8080端口,配置的权重是3,而8081的是权重是1,那么访问http://47.104.78.154/hello 4次就会有3次访问到8080 这个服务,1次访问到8081这个服务,顺带说一句,服务默认的端口是8081,只需通过java -jar .jar即可,而要启动一个一模一样的端口号不同的可以通过java -jar .jar —server.port=8080即可
运行结果如下:请求3次
请求1次
location 配置可参考:nginx之location配置
- linux安装nginx
server {
listen 70;
server_name 47.99.120.14;
location / {
root /root/dist/;
try_files uriuri/ /index.html;
index index.html index.htm;
}
location /prod-api/{
proxy_set_header Host http_host;
proxy_set_header X-Real-IPremote_addr;
proxy_set_header REMOTE-HOST remote_addr;
proxy_set_header X-Forwarded-Forproxy_add_x_forwarded_for;
proxy_pass http://47.99.120.14:8080/;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
文章评论