Nginx安装及使用
一、Nginx的安装网址
二、windows下安装
1、启动方式一
直接打开nginx.exe
2、启动方式二
使用cmd命令到该目录下,输入命令nginx.exe
3、运行成功画面
4、配置监听
nginx的配置文件在conf目录下的nginx.conf,默认配置的端口号为80
当我们修改了nginx.conf时,不需要关闭后再重启,可以直接输入命令nginx -s reload即可
5、关闭nginx的两种方式
由于直接关闭cmd窗口是不能起到关闭效果,可使用两种方法关闭nginx。
(1)输入nginx命令 nginx -s stop(快速停止nginx) 或 nginx -s quit(完整有序的停止nginx)
(2)使用taskkill taskkill /f /t /im nginx.exe
三、Linux下安装
OpenSSL 安装
yum install -y openssl openssl-devel
使用默认配置,在nginx根目录下执行
./configure
make
make install
Nginx常用命令
cd /usr/local/nginx/sbin/
./nginx 启动
./nginx -s stop 停止
./nginx -s quit 安全退出
./nginx -s reload 重新加载配置文件
ps aux|grep nginx 查看nginx进程
四、后端负载均衡策略和反向代理实战
1、编辑conf/nginx.conf
weight权重越高被访问的几率越大
# 打开配置文件
vim /usr/local/nginx/conf/nginx.conf
#user nobody;
worker_processes 2;
worker_rlimit_nofile 65535;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 20480;
}
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 65;
upstream one_server {
server localhost:8088 weight=1; #weight代表权重分配
server localhost:8089 weight=2;
}
client_max_body_size 500m;
#负载均衡
server {
listen 8087;
server_name localhost;
location / {
proxy_set_header Host $host;
proxy_pass http://one_server;
}
}
#反向代理
server {
listen 9090;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html/my-ServiceName; #本地方法名字
index index.html index.htm;
}
location ^~/api/ {
rewrite ^/(.*)$ /$1 break;
proxy_set_header Host $host;
proxy_set_header x-forwarded-for $remote_addr;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://127.0.0.1:9091;
}
}
}
2、代码
/**
* @author lichangyuan
* @create 2021-09-25 21:07
*/
@RestController
public class SuccessController {
private static String serverPort;
@Value("${server.port}")
private String port;
@PostConstruct
public void setServerPort() {
this.serverPort = port;
}
@RequestMapping("/succeess")
public String success() {
String IP = null;
try {
IP = InetAddress.getLocalHost().getHostAddress();
} catch (UnknownHostException e) {
e.printStackTrace();
}
return "http://" + IP + ":" + SuccessController.serverPort;
}
}
3、测试