怎么免费创建百度网站关键词分布中对seo有危害的
某俄罗斯小哥,竟靠一个服务器软件直接封神?
介绍篇
反向代理
正向代理:A想要认识C,A没有办法直接跟C聊天,所以A通过B把消息传给C。
反向代理:表面上访问百度都是访问www.baidu.com,实际上域名后面有N多具体的ip服务器。
区别:是否对代理有感知,有就是正向代理,没有就是反向代理。
负载均衡
我有一台服务器负载100个请求,我新增一台服务器,通过负载均衡的配置,例如轮训策略,每一台服务器承担50个请求,这种方式就称为负载均衡。
下载篇
http://nginx.org/en/download.html
Linux
第一步:下载安装包
Windows
第一步:下载安装包
第二步:解压zip文件后,文件目录如图所示
第三步:启动nginx
输入命令nginx.exe 或 双击 nginx.exe ,推荐使用命令行启动,否则可能会启动多个nginx
第四步:访问 http://localhost/。如果出现以下页面代表启动成功。
命令篇
nginx -s stop
强制关闭
D:\nginx\nginx-1.22.1>nginx -s stopD:\nginx\nginx-1.22.1>nginx -s stop
nginx: [error] CreateFile() "D:\nginx\nginx-1.22.1/logs/nginx.pid" failed (2: The system cannot find the file specified)D:\nginx\nginx-1.22.1>
nginx -s quit
柔和关闭
D:\nginx\nginx-1.22.1>nginx -s quitD:\nginx\nginx-1.22.1>nginx -s quit
nginx: [error] CreateFile() "D:\nginx\nginx-1.22.1/logs/nginx.pid" failed (2: The system cannot find the file specified)D:\nginx\nginx-1.22.1>
nginx -v
show version and exit
D:\nginx\nginx-1.22.1>nginx -v
nginx version: nginx/1.22.1
nginx -V
show version and configure options then exit
D:\nginx\nginx-1.22.1>nginx -V
nginx version: nginx/1.22.1
built by cl 16.00.30319.01 for 80x86
built with OpenSSL 1.1.1q 5 Jul 2022
TLS SNI support enabled
configure arguments: --with-cc=cl --builddir=objs.msvc8 --with-debug --prefix= --conf-path=conf/nginx.conf --pid-path=logs/nginx.pid --http-log-path=logs/access.log --error-log-path=logs/error.log --sbin-path=nginx.exe --http-client-body-temp-path=temp/client_body_temp --http-proxy-temp-path=temp/proxy_temp --http-fastcgi-temp-path=temp/fastcgi_temp --http-scgi-temp-path=temp/scgi_temp --http-uwsgi-temp-path=temp/uwsgi_temp --with-cc-opt=-DFD_SETSIZE=1024 --with-pcre=objs.msvc8/lib/pcre2-10.39 --with-zlib=objs.msvc8/lib/zlib-1.2.12 --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_stub_status_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-http_secure_link_module --with-http_slice_module --with-mail --with-stream --with-openssl=objs.msvc8/lib/openssl-1.1.1q --with-openssl-opt='no-asm no-tests -D_WIN32_WINNT=0x0501' --with-http_ssl_module --with-mail_ssl_module --with-stream_ssl_module
nginx -s reload
D:\nginx\nginx-1.22.1>nginx -s reloadD:\nginx\nginx-1.22.1>nginx -s stopD:\nginx\nginx-1.22.1>nginx -s reload
nginx: [error] CreateFile() "D:\nginx\nginx-1.22.1/logs/nginx.pid" failed (2: The system cannot find the file specified)D:\nginx\nginx-1.22.1>
nginx -s reopen
D:\nginx\nginx-1.22.1>nginx -s reopenD:\nginx\nginx-1.22.1>nginx -s stopD:\nginx\nginx-1.22.1>nginx -s reopen
nginx: [error] CreateFile() "D:\nginx\nginx-1.22.1/logs/nginx.pid" failed (2: The system cannot find the file specified)D:\nginx\nginx-1.22.1>
nginx -t
test configuration and exit
D:\nginx\nginx-1.22.1>nginx -t
nginx: the configuration file D:\nginx\nginx-1.22.1/conf/nginx.conf syntax is ok
nginx: configuration file D:\nginx\nginx-1.22.1/conf/nginx.conf test is successful
nginx -T
test configuration, dump it and exit
D:\nginx\nginx-1.22.1>nginx -T
nginx: the configuration file D:\nginx\nginx-1.22.1/conf/nginx.conf syntax is ok
nginx: configuration file D:\nginx\nginx-1.22.1/conf/nginx.conf test is successful
# configuration file D:\nginx\nginx-1.22.1/conf/nginx.conf:
nginx -?
D:\nginx\nginx-1.22.1>nginx -?
nginx version: nginx/1.22.1
Usage: nginx [-?hvVtTq] [-s signal] [-p prefix][-e filename] [-c filename] [-g directives]Options:-?,-h : this help-v : show version and exit-V : show version and configure options then exit-t : test configuration and exit-T : test configuration, dump it and exit-q : suppress non-error messages during configuration testing-s signal : send signal to a master process: stop, quit, reopen, reload-p prefix : set prefix path (default: NONE)-e filename : set error log file (default: logs/error.log)-c filename : set configuration file (default: conf/nginx.conf)-g directives : set global directives out of configuration fileD:\nginx\nginx-1.22.1>
nginx -h
等同于 nginx -?
nginx -c
指定另一个配置文件
D:\nginx\nginx-1.22.1>nginx -c conf/nginx2.conf
Tips
- 正在运行的nginx执行这样的命令时会退出。
配置文件篇
全局块
#user nobody;
worker_processes 1;#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;#pid logs/nginx.pid;
worker_processes :工作进程数,默认为1可以根据CPU处理能力适当调大。
events
events {worker_connections 1024;
}
worker_connections :每一个worker进程支持的最大连接数量,默认1024。
http
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 0;keepalive_timeout 65;#gzip on;server {listen 80;server_name localhost;#charset koi8-r;#access_log logs/host.access.log main;location / {root html;index index.html index.htm;}#error_page 404 /404.html;# redirect server error pages to the static page /50x.html#error_page 500 502 503 504 /50x.html;location = /50x.html {root html;}# proxy the PHP scripts to Apache listening on 127.0.0.1:80##location ~ \.php$ {# proxy_pass http://127.0.0.1;#}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {# root html;# fastcgi_pass 127.0.0.1:9000;# fastcgi_index index.php;# fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;# include fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {# deny all;#}}# another virtual host using mix of IP-, name-, and port-based configuration##server {# listen 8000;# listen somename:8080;# server_name somename alias another.alias;# location / {# root html;# index index.html index.htm;# }#}# HTTPS server##server {# listen 443 ssl;# server_name localhost;# ssl_certificate cert.pem;# ssl_certificate_key cert.key;# ssl_session_cache shared:SSL:1m;# ssl_session_timeout 5m;# ssl_ciphers HIGH:!aNULL:!MD5;# ssl_prefer_server_ciphers on;# location / {# root html;# index index.html index.htm;# }#}}
- include mime.types; 默认引入这个文件,可以扩展其他文件。
- default_type application/octet-stream; 默认类型
- sendfile on;
- keepalive_timeout 65; 长连接超时时间
- #gzip on; 请求压缩,相当于拿服务器的CPU资源来换请求的大小,从而提升网络传输速度。
server
- listen 80; nginx默认监听端口
- server_name localhost; nginx服务名
- #charset koi8-r;
location
mime.types
文件中的内容
types {text/html html htm shtml;text/css css;text/xml xml;image/gif gif;image/jpeg jpeg jpg;application/javascript js;application/atom+xml atom;application/rss+xml rss;
实战篇
反向代理
1 修改nginx.conf文件来实现代理www.baidu.com
location /baidu {proxy_pass https://www.baidu.com/;}
当访问 localhost:80/baidu路径的时候,nginx已经帮我们反向代理到www.baidu.com域名下。
2 新增server块来代理9001本地服务
代理前
代理后
3 通过80端口代理本地服务9001配置文件新增内容
游览器效果图
4 通过80端口代理内网ip服务效果图
nginx.conf内容
游览器效果图
负载均衡
upstream srv{server 127.0.0.1:8091 weight=1;server 127.0.0.1:8092 weight=1;}location / {root html;index index.html index.htm;proxy_pass http://srv;}