-
Notifications
You must be signed in to change notification settings - Fork 39
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
nginx入门 #165
Comments
nginx基础查看nginx版本
查看centOS上所有nginx相关内容
查看nginx支持的mime types
nginx.pid是什么是nginx运行时,控制它的一个进程。 nginx配置虚拟主机利用虚拟主机把多个不同域名的网站部署在同一台服务器上。 nginx的conf.d是什么目录?在nginx.conf文件,会通过 https://www.linode.com/docs/web-servers/nginx/how-to-configure-nginx/#server-blocks nginx杂
upstream是什么?Proxy and cache requests to load-balanced pool of servers(proxy请求和cache请求服务器负载均衡池)。 proxy_pass是什么?Sets the address of a proxied server. The address can be specified as a domain name or IP address, and a port。 server_name为_是什么意思?http://nginx.org/en/docs/http/server_names.html server {
listen 80;
server_name example.org www.example.org;
...
}
server {
listen 80;
server_name *.example.org;
...
} _是什么意思呢?这个名字没有什么特别之处,它只是无数无效域名中的一个,这些域名与任何真实的名字都没有交集。其他无效的名称,如“——”和“!”@#”同样可以使用。 |
nginx常用查看nginx配置
启动nginx
查看nginx服务是否正常
nginx服务相关
nginx 白名单、黑名单
nginx只允许某台机器访问
nginx配置目录权限
nginx html文件目录
|
nginx实践为什么在conf.d目录下新建default.conf无法生效?安全组需要设置放通web服务端口。 8001是在/etc/nginx/conf.d/default.conf下配置的。
8002直接在/etc/nginx/nginx.conf配置。
[root@VM_0_11_centos conf.d]# lsof -i :80
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 11463 root 7u IPv4 3764189 0t0 TCP *:http (LISTEN)
nginx 11463 root 8u IPv6 3764190 0t0 TCP *:http (LISTEN)
[root@VM_0_11_centos conf.d]# lsof -i :8001
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 11463 root 11u IPv4 3778876 0t0 TCP *:vcom-tunnel (LISTEN)
nginx 17591 nginx 11u IPv4 3778876 0t0 TCP *:vcom-tunnel (LISTEN)
[root@VM_0_11_centos conf.d]# lsof -i :8002
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
nginx 11463 root 13u IPv4 3781031 0t0 TCP *:teradataordbms (LISTEN)
nginx 17591 nginx 13u IPv4 3781031 0t0 TCP *:teradataordbms (LISTEN) nginx的域名类型虚拟主机与公网解析的有什么区别?nginx域名虚拟主机,可以用来搭建内网的开发环境,配置多个域名到一台机器的不同端口,但是需要通过带端口的方式去访问。例如foo.com 80,bar.com 8081,baz.com 8082,访问foo.com可以直接访问,但是访问bar.com和baz.com时,就需要bar.com:8081和baz.com:8082了。这个需要修改本地的/etc/hosts文件,三个域名指向同一台内网机器的ip。 nginx配置公网解析,没差,只是解析到公网,可以指定端口。注意这里也需要改本地hosts。
访问方式:配置了host的机器通过http://foo.cn:8082 访问即可。 内网开发有什么办法不带端口吗?proxy。也就是反向代理。 访问crm.test.weidiango.com,会被代理到http://crm.test.weidiango.com/。 server {
listen 80;
server_name crm.test.weidiango.com;
location / {
proxy_pass http://crm.test.weidiango.com/;
}
}
server {
listen 80;
server_name fe.crm.test.weidiango.com;
location / {
root /root/www/webroot/dist;
index index.html;
}
}
server {
listen 80;
server_name index.test.weidiango.com;
location / {
proxy_pass http://index.test.weidiango.com/;
client_max_body_size 100m;
}
} 访问crm.test.weidiango.com,会被代理到http://crm.test.weidiango.com/。 http://crm.test.weidiango.com/ 和 http://index.test.weidiango.com/ ,是两个公网ip,所以在这里的配置是完全没有必要的。 // 现在的配置
192.168.0.111 crm.test.weidiango.com // 本地host,连预生产时。
crm.test.weidiango.com -> http://crm.test.weidiango.com // 代理。
192.168.0.146 crm.test.weidiango.com // 本地host,连服务端某个开发本地时
crm.test.weidiango.com:9090// 前端接口访问配置,连服务端某个开发本地时 // 更好的配置
# 192.168.0.111 crm.test.weidiango.com // 本地host,连预生产时。**注释掉**
crm.test.weidiango.com -> http://crm.test.weidiango.com // 代理。**根本不需要,可删除**
192.168.0.146 crm.test.weidiango.com // 本地host,连服务端某个开发本地时
crm.test.weidiango.com:9090// 前端接口访问配置,连服务端某个开发本地时 192.168.0.111,fe.crm.test.com(前端),192.168.0.111 crm.test.com(服务端),192.168.0.111 index.test.com(其他系统)。这些域名都指向一台内网服务器111的nginx,通过静态指向或者代理配置域名虚拟主机,达到一台机器为前端静态文件,后端服务,其他系统后端服务提供支持的效果。 如果说proxy到的是另一台内网的机器,例如 但是通过一台固定的机器去做反向代理,统一管理接口访问,也是值得推荐的。 反向代理可以保护服务器,所有的访问都是走proxy,从而并不知道具体访问了哪台机器,做到了保护服务器的效果;反向代理还可以做负载均衡和缓存等等,服务器压力平均分配。 最简单的反向代理
访问方式:foo.cn:8002,效果是这个请求最终会落到http://mainSystem.cn。 如果有其他系统服务需要访问,增加一个配置即可。
假如访问服务端接口,bar.cn:8002/foo/bar,最终会落到http://otherSystem.cn/foo/bar。 做到了反向代理的效果。 foo.cn:8002/foo/bar -> http://mainSystem.cn/foo/bar
bar.cn:8002/foo/bar -> http://otherSystem.cn/foo/bar 反向代理可以通过proxy_set_header,proxy_connect_timeout等等,对请求和响应做到控制。(传递消息的中间人,就是可以篡改消息,就是这么强。) nginx如何区分pc和mobile?除了bootstrap,media query和rem等自适应方式,pc端和移动端分开编写的话,才更适合复杂的业务逻辑。 cd /usr/share/nginx/html/html8001/
mkdir pc
touch index.html
vim index.html // <h1>PC</h1>
cd /usr/share/nginx/html/html8001/
mkdir mobile
touch index.html
vim index.html // <h1>Mobile</h1> server{
listen 8001;
server_name localhost;
location / {
root /usr/share/nginx/html/html8001/pc;
if ($http_user_agent ~* '(Android|webOS|iPhone|iPod|BlackBerry)') {
root /usr/share/nginx/html/html8001/mobile;
}
index index.html;
}
} 通过http://122.51.44.78:8001/ 在电脑和手机上访问,会返回 如何开启gzip压缩?http {
gzip on;
gzip_types text/plain application/javascript text/css;
} 开启gzip压缩之后,响应头的Content-Encoding:gzip。请求头的Accept-Encoding:gzip与nginx配置无关,chrome默认是带这个请求头的。 |
https://juejin.im/post/5bd7a6046fb9a05d2c43f8c7
https://docs.nginx.com/nginx/technical-specs/
The text was updated successfully, but these errors were encountered: