Nginx 笔记

                     

贡献者: addis

  • 本文处于草稿阶段。

1. http 静态网站

2. 使用 https

创建多个网站

3. 反向代理其他网站

   比如你在国内访问 github 很慢,但在美国有一个私人服务器,那么你可以用 Nginx 作为反向代理,这样你就可以访问你代理服务器的域名了。

   同样只需要在设置中添加一个 server section 即可

   如果只需要 http 代理,用

server {
   listen 80;
   server_name 公网ip或域名;

   location / {
       proxy_pass https://github.com/;
       proxy_set_header Host github.com;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
   }
}

   如果需要 https 代理,用

server {
  listen 443 ssl;
  server_name 域名;

  ssl_certificate /etc/letsencrypt/live/域名/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/域名/privkey.pem;

  location / {
    proxy_pass https://github.com/;
    proxy_set_header Host github.com;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

   尝试了对 wikipedia 也进行反向代理,但根据 wikipedia 的设置浏览器 ulr 总是会跳转回 wikipedia.org,GPT-4 建议在 location 中添加以下设置,但仍然无效。这可能超出了 nginx 的能力范围。

proxy_set_header Referer "";
proxy_redirect https://wikipedia.org/ $scheme://$host/;

# Enable URL rewriting
sub_filter_once off;
sub_filter_types *;
sub_filter 'https://wikipedia.org' '$scheme://$host';
sub_filter 'https://www.wikipedia.org' '$scheme://$host';

   注意 nginx 存在客户端单文件上传大小限制(默认不足 100M),要修改全局限制,在 http { 后面的设置中加上 client_max_body_size 10000M;

http {

        ##
        # Basic Settings
        ##

        sendfile on;
        tcp_nopush on;
        types_hash_max_size 2048;
        client_max_body_size 10000M;

4. 多个域名和网站

                     

© 小时科技 保留一切权利