nginx常用命令及代理
- 服务器
- 三生万物
- 0
一、DOS命令
启动nginx
> start nginx
停止nginx
> nginx -s quit
快速停止
> nginx -s stop
重新加载配置启动
> nginx -s reload
检查配置文件
> nginx -t -c conf/nginx.conf
二、SHELL命令
查看nginx监听的端口是否存在
[root@localhost ~]# netstat -tlnup|grep nginx
tcp 0 0 0.0.0.0:8080 0.0.0.0:* LISTEN 8364/nginx: master
查看端口使用情况
[root@localhost ~]# netstat -ntlp | grep 80
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 11210/nginx: master
- -t : 只显示TCP端口
- -u : 只显示UDP端口
- -l : 仅显示监听套接字(能够读写与收发通讯协议(protocol)的程序)
- -p : 显示进程标识符和程序名称,每一个套接字/端口都属于一个程序
- -n : 不进行DNS轮询,显示IP(这样可以加快查询的时间)
杀死进程
[root@localhost ~]# kill 11210
三、接口代理
注意:Nginx有些端口是使用不是了的,如果总是访问失败,可以尝试改下端口
http {
server {
listen 80;
server_name xxx.com;
# 开启gzip压缩
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 5;
gzip_types text/css application/javascript image/jpeg image/jpg image/gif image/png application/x-protobuf;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
location / {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_http_version 1.1;
# 处理504超时报错,设置成600秒
proxy_connect_timeout 600;
proxy_send_timeout 600;
proxy_read_timeout 600;
proxy_pass http://127.0.0.1:3000; # 这里的端口不能与listen端口一样
# 分块传输
chunked_transfer_encoding on;
}
}
}
nginx服务配置
server {
listen 8081;
server_name localhost;
client_max_body_size 20M;
location / {
try_files $uri $uri/ /index.html;
root html/test;
index index.html index.htm;
chunked_transfer_encoding on;
}
location /api {
proxy_pass http://beta-abc.com/;
#proxy_set_header Host $host; #http1.0不支持host头部
#proxy_set_header X-Real-IP $remote_addr;
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
四、nginx站和其他站代理
server {
listen 443 ssl;
server_name a.xxx.cn;
client_max_body_size 10m;
ssl_certificate /usr/local/nginx/cert/a/4743967_a.xxx.cn.pem;
ssl_certificate_key /usr/local/nginx/cert/a/4743967_a.xxx.cn.key;
location / {
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_http_version 1.1;
proxy_pass http://127.0.0.1:3001;
}
}
server {
listen 443 ssl;
server_name b.xxx.cn;
ssl_certificate /usr/local/nginx/cert/b/4486776_b.xxx.cn.pem;
ssl_certificate_key /usr/local/nginx/cert/b/4486776_b.xxx.cn.key;
# 开启gzip压缩
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_comp_level 5;
gzip_types text/css application/javascript image/jpeg image/jpg image/gif image/png application/x-protobuf;
gzip_vary on;
gzip_disable "MSIE [1-6]\.";
location / {
root /usr/local/nginx/html/b;
index index.html index.htm;
chunked_transfer_encoding on;
}
}
五、允许跨域
location ^~ /test {
add_header 'Access-Control-Allow-Origin' '*';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'OPTION, POST, GET';
add_header 'Access-Control-Allow-Headers' 'X-Requested-With, Content-Type';
}
六、常见问题
1、nginx: [error] open() "/var/run/nginx.pid" failed (2: No such file or directory)
[root@VM_0_10_centos nginx]# sudo nginx -c /etc/nginx/nginx.conf
[root@VM_0_10_centos nginx]# nginx -s reload
七、api接口/websocket代理
location ^~ /fapi/ {
proxy_pass http://192.168.11.22:1808/; # 会把fapi替换掉
}
location ^~ /api/ {
# proxy_pass http://192.168.11.22:1809$request_uri;
proxy_pass http://192.168.11.22:1809/api/;
}
# webscoket
location /ws {
proxy_pass http://192.168.11.22:17000;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
免责申明:本站发布的内容(图片、视频和文字)以转载和分享为主,文章观点不代表本站立场,如涉及侵权请联系站长邮箱:xbc-online@qq.com进行反馈,一经查实,将立刻删除涉嫌侵权内容。