Home php c# sql c c++ javascript python java go android git linux asp.net django .net node.js ios xcode cocoa iphone mysql tomcat mongodb bash objective-c scala visual-studio apache elasticsearch jar eclipse jquery ruby-on-rails ruby rubygems android-studio spring lua sqlite emacs ubuntu perl docker swift amazon-web-services svn html ajax xml java-ee maven intellij-idea rvm macos unix css ipad postgresql css3 json windows-server vue.js typescript oracle hibernate internet-explorer github tensorflow laravel symfony redis html5 google-app-engine nginx firefox sqlalchemy lucene erlang flask vim solr webview facebook zend-framework virtualenv nosql ide twitter safari flutter bundle phonegap centos Register | Login | Edit Tags | New Questions | 繁体 | 简体


10 questions online user: 35

0
votes
answers
8 views
+10

如何從服務器的公共IP訪問碼頭集裝箱

0

我試圖使用碼頭在服務器上部署我的網站。我有一個與centOS和碼頭安裝在它上面的液滴。當我嘗試運行一個容器(https://hub.docker.com/r/richarvey/nginx-php-fpm/)時,我期望通過我的瀏覽器使用公共IP(ipv4)訪問我的網站,但我認爲這還不夠。如何從服務器的公共IP訪問碼頭集裝箱

有什麼問題?

+0

您啓動容器時採取了哪些步驟?你能從127.0.0.1上的服務器訪問它嗎?我猜測這個端口沒有暴露在公共IP上。 – ext

沙发
0
0

您需要將容器端口發佈到主機。有關詳細信息,請參見https://docs.docker.com/engine/reference/run/#expose-incoming-ports

docker run -d -p 80:80 -p 443:443 richarvey/nginx-php-fpm 
0
votes
answers
8 views
+10

HTTPS到HTTP重定向nginx

0

問題是,我的本地nginx服務器上的ssl證書已過期,我需要幾天的時間才能獲得新的證書。 該網站通過http工作,但是,瀏覽器記住https的現金(並且有很多本地用戶)。HTTPS到HTTP重定向nginx

要解決這個問題,我必須強制將https重定向到http。我生成的自簽名證書,並添加幾行代碼:

server { 
    listen 443; 
    server_name site.com; 
    ssl on; 
    rewrite^http://$server_name$request_uri? permanent; 

    ssl_certificate /etc/ssl/site/cert.crt; 
    ssl_certificate_key /etc/ssl/site/sert.key; 
} 

server { 
    listen 80; 
    ssl off; 
    .... 
} 

通過https該網頁提供了隱私錯誤的Net :: ERR_CERT_AUTHORITY_INVALID

我知道,通過443端口瀏覽器嘗試設置安全頻道先發送http請求,所以我需要某種解決方法。

任何人都可以幫忙嗎?

沙发
0
0

這個問題已經answered

但是here你可以得到一個免費的,被廣泛接受的證書!

+0

這個答案對我來說是不可接受的,因爲我的證書是自簽名的並給出錯誤。我無法獲得免費的證書,因爲我的服務器是本地的(不通過www接受) – Leeloo

0
votes
answers
7 views
+10

在wordpress中安裝主題所需的連接信息

0

我用Nginx在Linux上安裝了WordPress,但是當我嘗試安裝主題時,它每次都要求我進行FTP連接確認。在wordpress中安裝主題所需的連接信息

沙发
0
0

我已經找到解決我的問題,首先我們需要改變所有權的權限訪問目錄

chown -R www-data:www-data your-wordpress-directory 

現在我們刪除的安全權限確認連接,使從WP-config.php文件

它直接安裝
define('FS_METHOD','direct'); 

現在,我們需要確保該文件夾設置的許可或不

sudo find /var/www/wordpress/ -type d -exec chmod 755 {} ; 
sudo find /var/www/wordpress/ -type f -exec chmod 644 {} ; 
0
votes
answers
7 views
+10

爲什麼在NGINX中重寫這個不起作用?

-1

試圖在本地服務器上添加重寫,但我卡住了。爲什麼在NGINX中重寫這個不起作用?

這就是我所擁有的。

location/{ 
     # First attempt to serve request as file, then 
     # as directory, then fall back to displaying a 404. 
     # try_files $uri $uri/ =404; 
     try_files $uri $uri/ $uri.html $uri.php?$query_string; 
    } 

    location /news/post/ { 
     rewrite ^/news/post/([a-zA-Z0-9-])?$ /news/post.php?id=$1 break; 
    } 

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 
    # 
    location ~ .php$ { 
     include snippets/fastcgi-php.conf; 
     #fastcgi_pass unix:/run/php/php7.0-fpm.sock; 
     fastcgi_pass 127.0.0.1:9000; 
     #extra 
     fastcgi_split_path_info ^(.+.php)(/.+)$; 
     #--extra 
    } 

當去/新聞/職位/它說:「您已選擇打開此文件」,並問我是否要下載一個BIN文件。

如果我去/ news/post /這是一個新聞標題,我會得到一個404 Not Found。

我在做什麼錯?

+0

堆棧溢出:爲什麼有人會投下一個問題?那有什麼意義呢? –

沙发
0
0

工程。改變了一下,需要完整的路徑。

location /news/post/ { 
     rewrite ^/news/post/(.*)$ http://www.myserver.com/news/post.php?id=$1 break; 
    } 
0
votes
answers
7 views
+10

如何在Alpine linux上添加用於nginx的Lua模塊?

0

我想在啓用Lua模塊的情況下爲nginx提供精簡的Docker鏡像。我如何基於Alpine linux創建這個?如何在Alpine linux上添加用於nginx的Lua模塊?

沙发
0
-1

你看看在泊塢樞紐

https://hub.docker.com/

,你會發現Nginx上圖像的基礎上,高山Linux的,和Lua支持

一些例子

https://hub.docker.com/r/ilagnev/alpine-nginx-lua/

https://hub.docker.com/r/firesh/nginx-lua/

看一看的Dockerfile更多細節

+0

我發現這兩個,但發現沒有兩個是最新(最後推一年前)。另外,他們缺乏關於如何啓用模塊的信息。 – Marian

+0

這個文檔是否正確? https://github.com/openresty/lua-nginx-module#installation – user2915097

板凳
0
1

這裏是一個Dockerfile

FROM alpine:3.6 

RUN apk add --no-cache nginx-mod-http-lua 

# Delete default config 
RUN rm -r /etc/nginx/conf.d && rm /etc/nginx/nginx.conf 

# Create folder for PID file 
RUN mkdir -p /run/nginx 

# Add our nginx conf 
COPY ./nginx.conf /etc/nginx/nginx.conf 

CMD ["nginx"] 

安裝nginx-mod-http-lua包也將安裝nginxluajit,等等。

nginx.conf至少應包含這樣的:

load_module /usr/lib/nginx/modules/ndk_http_module.so; 
load_module /usr/lib/nginx/modules/ngx_http_lua_module.so; 

pcre_jit on; 

events { 
    worker_connections 1024; 
} 

daemon off; 
+0

如果你沒有從默認的[nginx中刪除include/etc/nginx/modules/*。conf;'這些'load_module'的.conf](https://github.com/alpinelinux/aports/blob/954391ce7493439d12180d5c5118dee26f8ac587/main/nginx/nginx.conf#L15)。 –

+0

@Marian:我們如何在這種情況下安裝luarocks?我確實找到了luajit的包含路徑。 – Raeesaa

0
votes
answers
5 views
+10

AWS AMI上存在nginx緩存文件夾的位置?

-1

AWS AMI上存在nginx緩存文件夾的位置?我最近碰到了nginx的一些緩存問題(我知道),但令我驚訝的是我無法找到這個緩存文件來自哪裏。AWS AMI上存在nginx緩存文件夾的位置?

我用yum安裝了它:sudo yum install nginx。

謝謝!

編輯:

有些人說我沒有任何緩存,但我不知道這是怎麼然後工作。以下配置將導致給我錯誤的緩存文件:

location ~* .(js|css|jpg|jpeg|gif|png|svg|ico|pdf|html|htm)$ { 
     expires  30d; 
} 

如果我關閉此功能,我的網站會給我正確的文件。有些事情正在發生。

+0

你看看nginx配置文件,看看它配置爲存儲緩存數據的文件夾?如果您剛剛安裝了nginx(如您的問題所示),那麼它將不會配置爲在任何地方存儲任何緩存的數據。 –

+1

我認爲'expires'指令將發送到瀏覽器在用戶計算機上緩存30天,而不是在您的服務器上,因此您不必搜索該緩存文件夾。 –

+0

似乎問題出在我編輯的帖子上。所以如果這不是緩存,它是什麼? – Mike5050

沙发
0
0

檢查/ var /緩存/ niginx裁判:https://amimoto-ami.com/nginx-cache-controller-more-info/

+0

我只能在那裏看到:fontconfig,httpd,ldconfig,man,rpcbind,yum – Mike5050

板凳
0
0

你需要的,如果你不檢查這個緩存目錄下

LS的/ var /緩存/ nginx的

能夠看到任何nginx目錄,這意味着您沒有在nginx配置中設置基本緩存,因此您需要在文件中檢查或添加這部分配置。

proxy_cache_path /path/to/cache levels=1:2 keys_zone=my_cache:10m max_size=10g 
      inactive=60m use_temp_path=off; 
server { 
# ... 
location/{ 
    proxy_cache my_cache; 
    proxy_pass http://my_upstream; 
} 
} 
+0

我更新了這個問題,我明白我沒有啓用緩存,但是上面的配置怎麼能給我壞文件呢? – Mike5050

0
votes
answers
5 views
+10

NGINX + Docker Compose路由問題

0

我有一個docker撰寫文件,包含兩個微服務,我想利用URI路由來處理CORS。這裏是我撰寫的文件:NGINX + Docker Compose路由問題

version: "3.1" 
services: 
    auth-api: 
    image: xxxx/auth-api:latest 
    restart: always 
    depends_on: 
     - "user-api" 
    user-api: 
    image: xxxx/user-api:latest 
    restart: always 
nginx: 
    image: nginx 
    restart: always 
    ports: 
     - "80:80" 
    links: 
     - "auth-api" 
     - "user-api" 
    volumes: 
     - ./nginx:/etc/nginx 

我想用NGINX的路由,但我遇到了問題,用404的或者405試圖訪問該資源時的。我嘗試了幾種不同的配置,有一段時間NGINX說它在開始時找不到api端點,我認爲我的問題主要是圍繞路由配置。對於這些請求,我希望它是/auth/user

worker_processes 1; 

events { worker_connections 1024; } 

http { 

    sendfile on; 

    upstream auth-target { 
     server auth-api:8080; 
    } 

    upstream user-target { 
     server user-api:8080; 
    } 

    server { 
     listen  80; 

     location /auth { 

      proxy_pass http://auth-target; 

      proxy_redirect  off; 
      proxy_set_header Host $host; 
      proxy_set_header X-Real-IP $remote_addr; 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      proxy_set_header X-Forwarded-Host $server_name; 
     } 

     location /user { 

      proxy_pass http://user-target; 

      proxy_redirect  off; 
      proxy_set_header Host $host; 
      proxy_set_header X-Real-IP $remote_addr; 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      proxy_set_header X-Forwarded-Host $server_name; 
     } 


    } 

} 

我對NGINX很新,所以我不確定自己做的是對的。我還應該注意到,這兩個API都有8080作爲容器構建的一部分公開。

沙发
0
0

所以這是我的問題。路由工作正常,但我從我的服務中返回404。這是因爲位置路由與請求一起傳遞。所以,最後我發現了這樣的回答:

https://serverfault.com/questions/562756/how-to-remove-the-path-with-an-nginx-proxy-pass

它指向你需要一個尾隨斜線,以去除的位置,所以我的配置文件最終看上去是這樣的:

location /auth/ { 

      proxy_pass http://auth-target/; 

      proxy_redirect  off; 
      proxy_set_header Host $host; 
      proxy_set_header X-Real-IP $remote_addr; 
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; 
      proxy_set_header X-Forwarded-Host $server_name; 
     } 
0
votes
answers
5 views
+10

在Nginx服務器中設置HMVC Codeigniter

0

在Nginx服務器上設置Codeigniter HMVC。我搜索了很多,但沒有得到完美的解決方案。 任何人都有演示請分享。在Nginx服務器中設置HMVC Codeigniter

+3

你嘗試了什麼?只需使用https://www.nginx.com/resources/wiki/start/topics/recipes/codeigniter/和HMVC第三方,無需做更多 –

沙发
0
0

是的,我試過了,但沒有重寫規則HMVC使其工作。

0
votes
answers
5 views
+10

使用Robo 3T連接到遠程MongoDB

1

我試圖在Mac下使用Robomongo(或Robo 3T)來控制遠程Ubuntu & Nginx服務器中的我的mongodb。使用Robo 3T連接到遠程MongoDB

通常情況下,我需要在終端上使用ssh xxx.xx.xx.xx,並使用用戶名和密碼連接到服務器。在/etc/nginx/sites-enabled/myweb.io,有listen 443 ssl

在Robo 3T中,我試圖建立與Use SSH tunnel的連接。我嘗試了端口號44380。但它給了我一個錯誤:Error: Resource temporarily unavailable. Error when starting up SSH session: -13. (Error #35)

有誰知道如何解決這個問題?

enter image description here

+0

嘗試連接而不SSH隧道和SSH在端口22上運行(如果你沒有改變它,但你應該改變它)。 – Shubhamoy

+0

如果我沒有SSH隧道連接,我應該使用哪種方式? – SoftTimur

+0

只需取消SSH隧道並嘗試連接。 – Shubhamoy

沙发
0
1

正確的設置是

SSH

1)下,檢查User SSH tunnel,使用端口22

2)和下Connection,寫127.0.0.1:27017

0
votes
answers
4 views
+10

nginx用URL重寫部分url? mark

1

我正在爲一個網站提供nginx作爲apache的代理。 我有重寫模塊的問題。nginx用URL重寫部分url? mark

http://example.com/foo/bar/url?someparam=1&otherparam=2

我需要從

/富/酒吧/ URL?someparam = 1 & otherparam = 2

/富/酒吧/ URL2重寫?someparam = 1 & otherparam = 2

我發現它有問題,因爲它不是/foo/bar/url/someparam,但它只是文本的一部分,我需要在動態url中重寫。

我正在嘗試: rewrite ^(.*)url(.*)$ $1url2$2;但我得到了錯誤500。

我該怎麼做?

沙发
0
0

在您的rewrite語句中,新URI也與正則表達式模式匹配。這將導致以500響應結束的重定向循環。

您需要使正則表達式更加具體,以便新的URI不匹配。

另外,nginx在處理rewrite語句時使用規範化URI,該語句不包括?及其後的查詢字符串。

rewrite ^(.*)url$ $1url1; 

rewrite指令將自動附加在原有的URI任何?和查詢字符串:那麼如下的語句可以簡化。

查看this document瞭解更多。

這個URI